blob: b3dde50553a388d15e96c76150c0b6a8edd41554 [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
1470metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
1477 </td>
1478
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001479 <td class="entry_tags">
1480 <ul class="entry_tags">
1481 <li><a href="#tag_BC">BC</a></li>
1482 </ul>
1483 </td>
1484
1485 </tr>
1486 <tr class="entries_header">
1487 <th class="th_details" colspan="5">Details</th>
1488 </tr>
1489 <tr class="entry_cont">
1490 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001491 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1492xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1493specified coordinates.<wbr/></p>
1494<p>The coordinate system is based on the active pixel array,<wbr/>
1495with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001496(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1497<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001498bottom-right pixel in the active pixel array.<wbr/> The weight
1499should be nonnegative.<wbr/></p>
1500<p>If all regions have 0 weight,<wbr/> then no specific metering area
1501needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001502outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001503should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001504used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001505 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001507
1508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001511
1512
1513 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001514 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001515 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001518 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001519 <span class="entry_type_container">x</span>
1520
1521 <span class="entry_type_array">
1522 2
1523 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001524 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001525
1526
1527 </td> <!-- entry_type -->
1528
1529 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001530 <p>Range over which fps can be adjusted to
1531maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001532 </td>
1533
1534 <td class="entry_units">
1535 </td>
1536
1537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001538 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001539 </td>
1540
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001541 <td class="entry_tags">
1542 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001543 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001544 </ul>
1545 </td>
1546
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001547 </tr>
1548 <tr class="entries_header">
1549 <th class="th_details" colspan="5">Details</th>
1550 </tr>
1551 <tr class="entry_cont">
1552 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001553 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001554of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001555 </td>
1556 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001557
1558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001559 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1560 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001561
1562
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001563 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001564 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001565 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001566 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001567 <td class="entry_type">
1568 <span class="entry_type_name entry_type_name_enum">byte</span>
1569
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001570 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001571
1572 <ul class="entry_type_enum">
1573 <li>
1574 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001575 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001576 </li>
1577 <li>
1578 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001579 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1580by the camera device.<wbr/> The exact effect of the precapture
1581trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001582 </li>
1583 </ul>
1584
1585 </td> <!-- entry_type -->
1586
1587 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001588 <p>Whether the camera device will trigger a precapture
1589metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001590 </td>
1591
1592 <td class="entry_units">
1593 </td>
1594
1595 <td class="entry_range">
1596 </td>
1597
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001598 <td class="entry_tags">
1599 <ul class="entry_tags">
1600 <li><a href="#tag_BC">BC</a></li>
1601 </ul>
1602 </td>
1603
1604 </tr>
1605 <tr class="entries_header">
1606 <th class="th_details" colspan="5">Details</th>
1607 </tr>
1608 <tr class="entry_cont">
1609 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001610 <p>This entry is normally set to IDLE,<wbr/> or is not
1611included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001612set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001613precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001614<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001615AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1616state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001617 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001618 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001619
1620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001621 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1622 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001623
1624
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001625 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001626 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001627 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001628 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001629 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001630 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001631
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001632 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001633
1634 <ul class="entry_type_enum">
1635 <li>
1636 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001637 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1638<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1639application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001640 </li>
1641 <li>
1642 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001643 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1644<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
1645is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1646the autofocus trigger action is called.<wbr/> When that trigger
1647is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1648the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1649<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1650and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001651 </li>
1652 <li>
1653 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001654 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1655autofocus trigger action is called.<wbr/></p>
1656<p>When that trigger is activated,<wbr/> AF must transition to
1657ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1658NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1659position to default,<wbr/> and sets the AF state to
1660INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001661 </li>
1662 <li>
1663 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001664 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1665position continually to attempt to provide a
1666constantly-in-focus image stream.<wbr/></p>
1667<p>The focusing behavior should be suitable for good quality
1668video recording; typically this means slower focus
1669movement and no overshoots.<wbr/> When the AF trigger is not
1670involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1671and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1672states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1673the algorithm should immediately transition into
1674AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1675lens position until a cancel AF trigger is received.<wbr/></p>
1676<p>Once cancel is received,<wbr/> the algorithm should transition
1677back to INACTIVE and resume passive scan.<wbr/> Note that this
1678behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1679ongoing PASSIVE_<wbr/>SCAN must immediately be
1680canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001681 </li>
1682 <li>
1683 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001684 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1685position continually to attempt to provide a
1686constantly-in-focus image stream.<wbr/></p>
1687<p>The focusing behavior should be suitable for still image
1688capture; typically this means focusing as fast as
1689possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1690algorithm should start in INACTIVE state,<wbr/> and then
1691transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1692appropriate as it attempts to maintain focus.<wbr/> When the AF
1693trigger is activated,<wbr/> the algorithm should finish its
1694PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1695AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1696lens position until a cancel AF trigger is received.<wbr/></p>
1697<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1698should transition back to INACTIVE and then act as if it
1699has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001700 </li>
1701 <li>
1702 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001703 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1704trigger is ignored,<wbr/> AF state should always be
1705INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001706 </li>
1707 </ul>
1708
1709 </td> <!-- entry_type -->
1710
1711 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001712 <p>Whether AF is currently enabled,<wbr/> and what
1713mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001714 </td>
1715
1716 <td class="entry_units">
1717 </td>
1718
1719 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001720 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001721 </td>
1722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001723 <td class="entry_tags">
1724 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001725 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001726 </ul>
1727 </td>
1728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001729 </tr>
1730 <tr class="entries_header">
1731 <th class="th_details" colspan="5">Details</th>
1732 </tr>
1733 <tr class="entry_cont">
1734 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001735 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08001736<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1737the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1738in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001739 </td>
1740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001741
1742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001745
1746
1747 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001748 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001749 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001752 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001753 <span class="entry_type_container">x</span>
1754
1755 <span class="entry_type_array">
1756 5 x area_count
1757 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001758 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001759
1760
1761 </td> <!-- entry_type -->
1762
1763 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001764 <p>List of areas to use for focus
1765estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001766 </td>
1767
1768 <td class="entry_units">
1769 </td>
1770
1771 <td class="entry_range">
1772 </td>
1773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001774 <td class="entry_tags">
1775 <ul class="entry_tags">
1776 <li><a href="#tag_BC">BC</a></li>
1777 </ul>
1778 </td>
1779
1780 </tr>
1781 <tr class="entries_header">
1782 <th class="th_details" colspan="5">Details</th>
1783 </tr>
1784 <tr class="entry_cont">
1785 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001786 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1787xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1788specified coordinates.<wbr/></p>
1789<p>The coordinate system is based on the active pixel array,<wbr/>
1790with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001791(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1792<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001793bottom-right pixel in the active pixel array.<wbr/> The weight
1794should be nonnegative.<wbr/></p>
1795<p>If all regions have 0 weight,<wbr/> then no specific focus area
1796needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001797outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001798should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001799used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001800 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001802
1803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001806
1807
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001808 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001809 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001810 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001812 <td class="entry_type">
1813 <span class="entry_type_name entry_type_name_enum">byte</span>
1814
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001815 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001816
1817 <ul class="entry_type_enum">
1818 <li>
1819 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001820 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001821 </li>
1822 <li>
1823 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001824 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001825 </li>
1826 <li>
1827 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001828 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1829state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001830 </li>
1831 </ul>
1832
1833 </td> <!-- entry_type -->
1834
1835 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001836 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001837 </td>
1838
1839 <td class="entry_units">
1840 </td>
1841
1842 <td class="entry_range">
1843 </td>
1844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001845 <td class="entry_tags">
1846 <ul class="entry_tags">
1847 <li><a href="#tag_BC">BC</a></li>
1848 </ul>
1849 </td>
1850
1851 </tr>
1852 <tr class="entries_header">
1853 <th class="th_details" colspan="5">Details</th>
1854 </tr>
1855 <tr class="entry_cont">
1856 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001857 <p>This entry is normally set to IDLE,<wbr/> or is not
1858included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001859<p>When included and set to START,<wbr/> the camera device will trigger the
1860autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1861<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1862and return to its initial AF state.<wbr/></p>
1863<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001864 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001866
1867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1869 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001870
1871
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001872 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001873 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001874 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001879 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
1881 <ul class="entry_type_enum">
1882 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001883 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001884 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1885algorithm is free to update its parameters if in AUTO
1886mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001887 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001888 <li>
1889 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001890 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1891algorithm must not update the exposure and sensitivity
1892parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001893 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001894 </ul>
1895
1896 </td> <!-- entry_type -->
1897
1898 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001899 <p>Whether AWB is currently locked to its
1900latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001901 </td>
1902
1903 <td class="entry_units">
1904 </td>
1905
1906 <td class="entry_range">
1907 </td>
1908
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001909 <td class="entry_tags">
1910 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001911 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001912 </ul>
1913 </td>
1914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001915 </tr>
1916 <tr class="entries_header">
1917 <th class="th_details" colspan="5">Details</th>
1918 </tr>
1919 <tr class="entry_cont">
1920 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001921 <p>Note that AWB lock is only meaningful for AUTO
1922mode; in other modes,<wbr/> AWB is already fixed to a specific
1923setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001924 </td>
1925 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001926
1927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001928 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1929 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001930
1931
1932 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001933 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001934 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001937 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001939 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
1941 <ul class="entry_type_enum">
1942 <li>
1943 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001944 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1945the application-selected color transform matrix
1946(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1947(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1948device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001949 </li>
1950 <li>
1951 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001952 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1953the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1954and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001955 </li>
1956 <li>
1957 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001958 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1959the camera device uses incandescent light as the assumed scene
1960illumination for white balance.<wbr/> While the exact white balance
1961transforms are up to the camera device,<wbr/> they will approximately
1962match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001963 </li>
1964 <li>
1965 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001966 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1967the camera device uses fluorescent light as the assumed scene
1968illumination for white balance.<wbr/> While the exact white balance
1969transforms are up to the camera device,<wbr/> they will approximately
1970match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001971 </li>
1972 <li>
1973 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001974 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1975the camera device uses warm fluorescent light as the assumed scene
1976illumination for white balance.<wbr/> While the exact white balance
1977transforms are up to the camera device,<wbr/> they will approximately
1978match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001979 </li>
1980 <li>
1981 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001982 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1983the camera device uses daylight light as the assumed scene
1984illumination for white balance.<wbr/> While the exact white balance
1985transforms are up to the camera device,<wbr/> they will approximately
1986match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001987 </li>
1988 <li>
1989 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001990 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1991the camera device uses cloudy daylight light as the assumed scene
1992illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001993 </li>
1994 <li>
1995 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001996 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1997the camera device uses twilight light as the assumed scene
1998illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001999 </li>
2000 <li>
2001 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002002 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2003the camera device uses shade light as the assumed scene
2004illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002005 </li>
2006 </ul>
2007
2008 </td> <!-- entry_type -->
2009
2010 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002011 <p>Whether AWB is currently setting the color
2012transform fields,<wbr/> and what its illumination target
2013is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002014 </td>
2015
2016 <td class="entry_units">
2017 </td>
2018
2019 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002020 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002021 </td>
2022
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 <td class="entry_tags">
2024 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002025 <li><a href="#tag_BC">BC</a></li>
2026 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002027 </ul>
2028 </td>
2029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002030 </tr>
2031 <tr class="entries_header">
2032 <th class="th_details" colspan="5">Details</th>
2033 </tr>
2034 <tr class="entry_cont">
2035 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002036 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2037<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2038routine is enabled,<wbr/> overriding the application's selected
2039<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
2040<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2041<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2042routine is disabled.<wbr/> The applicantion manually controls the white
2043balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2044and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2045<p>When set to any other modes,<wbr/> the camera device's auto white balance
2046routine is disabled.<wbr/> The camera device uses each particular illumination
2047target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002048 </td>
2049 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002050
2051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2053 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002054
2055
2056 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002057 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002058 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002060 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002061 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <span class="entry_type_container">x</span>
2063
2064 <span class="entry_type_array">
2065 5 x area_count
2066 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002067 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002068
2069
2070 </td> <!-- entry_type -->
2071
2072 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002073 <p>List of areas to use for illuminant
2074estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002075 </td>
2076
2077 <td class="entry_units">
2078 </td>
2079
2080 <td class="entry_range">
2081 </td>
2082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002083 <td class="entry_tags">
2084 <ul class="entry_tags">
2085 <li><a href="#tag_BC">BC</a></li>
2086 </ul>
2087 </td>
2088
2089 </tr>
2090 <tr class="entries_header">
2091 <th class="th_details" colspan="5">Details</th>
2092 </tr>
2093 <tr class="entry_cont">
2094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002095 <p>Only used in AUTO mode.<wbr/></p>
2096<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2097xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
2098specified coordinates.<wbr/></p>
2099<p>The coordinate system is based on the active pixel array,<wbr/>
2100with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002101(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2102<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08002103bottom-right pixel in the active pixel array.<wbr/> The weight
2104should be nonnegative.<wbr/></p>
2105<p>If all regions have 0 weight,<wbr/> then no specific metering area
2106needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002107outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08002108should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08002109used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002110 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002112
2113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2115 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002116
2117
2118 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002119 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002120 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002121 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002122 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002123 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002125 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002126
2127 <ul class="entry_type_enum">
2128 <li>
2129 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002130 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2131categories.<wbr/> Default to preview-like
2132behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002133 </li>
2134 <li>
2135 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002136 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2137precapture trigger may be used to start off a metering
2138w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002139 </li>
2140 <li>
2141 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002142 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2143usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002144 </li>
2145 <li>
2146 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002147 <span class="entry_type_enum_notes"><p>This request is for a video recording
2148usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002149 </li>
2150 <li>
2151 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002152 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2153image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002154 </li>
2155 <li>
2156 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002157 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2158application will stream full-resolution images and
2159reprocess one or several later for a final
2160capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002161 </li>
2162 </ul>
2163
2164 </td> <!-- entry_type -->
2165
2166 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002167 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2168auto-focus,<wbr/> auto-white balance) routines about the purpose
2169of this capture,<wbr/> to help the camera device to decide optimal 3A
2170strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002171 </td>
2172
2173 <td class="entry_units">
2174 </td>
2175
2176 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002177 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002178 </td>
2179
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002180 <td class="entry_tags">
2181 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002182 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 </ul>
2184 </td>
2185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002186 </tr>
2187 <tr class="entries_header">
2188 <th class="th_details" colspan="5">Details</th>
2189 </tr>
2190 <tr class="entry_cont">
2191 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002192 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2193and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002194 </td>
2195 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002196
2197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002198 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2199 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002200
2201
2202 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002203 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002204 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002205 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002206 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002207 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002208
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002209 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002210
2211 <ul class="entry_type_enum">
2212 <li>
2213 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002214 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002215 </li>
2216 <li>
2217 <span class="entry_type_enum_name">MONO</span>
2218 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002219 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2220a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002221 </li>
2222 <li>
2223 <span class="entry_type_enum_name">NEGATIVE</span>
2224 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002225 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2226are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002227 </li>
2228 <li>
2229 <span class="entry_type_enum_name">SOLARIZE</span>
2230 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002231 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2232image is wholly or partially reversed in
2233tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002234 </li>
2235 <li>
2236 <span class="entry_type_enum_name">SEPIA</span>
2237 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002238 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2239gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002240 </li>
2241 <li>
2242 <span class="entry_type_enum_name">POSTERIZE</span>
2243 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002244 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2245discrete regions of tone rather than a continuous
2246gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002247 </li>
2248 <li>
2249 <span class="entry_type_enum_name">WHITEBOARD</span>
2250 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002251 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2252as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002253 </li>
2254 <li>
2255 <span class="entry_type_enum_name">BLACKBOARD</span>
2256 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002257 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2258as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002259 </li>
2260 <li>
2261 <span class="entry_type_enum_name">AQUA</span>
2262 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002263 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002264 </li>
2265 </ul>
2266
2267 </td> <!-- entry_type -->
2268
2269 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002270 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002271 </td>
2272
2273 <td class="entry_units">
2274 </td>
2275
2276 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002277 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002278 </td>
2279
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002280 <td class="entry_tags">
2281 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002282 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 </ul>
2284 </td>
2285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002286 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002287 <tr class="entries_header">
2288 <th class="th_details" colspan="5">Details</th>
2289 </tr>
2290 <tr class="entry_cont">
2291 <td class="entry_details" colspan="5">
2292 <p>When this mode is set,<wbr/> a color effect will be applied
2293to images produced by the camera device.<wbr/> The interpretation
2294and implementation of these color effects is left to the
2295implementor of the camera device,<wbr/> and should not be
2296depended on to be consistent (or present) across all
2297devices.<wbr/></p>
2298<p>A color effect will only be applied if
2299<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2300 </td>
2301 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002302
2303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002304 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2305 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002306
2307
2308 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002309 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002310 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002311 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002312 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002313 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002314
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002315 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002316
2317 <ul class="entry_type_enum">
2318 <li>
2319 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002320 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2321routines are disabled,<wbr/> no other settings in
2322android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002323 </li>
2324 <li>
2325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002326 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2327Manual control of capture parameters is disabled.<wbr/> All
2328controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2329effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002330 </li>
2331 <li>
2332 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002333 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2334control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2335controls; the HAL must ignore those settings while
2336USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2337scene mode).<wbr/> Other control entries are still active.<wbr/>
2338This setting can only be used if availableSceneModes !=
2339UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002340 </li>
2341 </ul>
2342
2343 </td> <!-- entry_type -->
2344
2345 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002346 <p>Overall mode of 3A control
2347routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002348 </td>
2349
2350 <td class="entry_units">
2351 </td>
2352
2353 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002354 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002355 </td>
2356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002357 <td class="entry_tags">
2358 <ul class="entry_tags">
2359 <li><a href="#tag_BC">BC</a></li>
2360 </ul>
2361 </td>
2362
2363 </tr>
2364 <tr class="entries_header">
2365 <th class="th_details" colspan="5">Details</th>
2366 </tr>
2367 <tr class="entry_cont">
2368 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002369 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002370by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002371capture parameters itself.<wbr/></p>
2372<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002373android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08002374<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002375android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002376one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002377as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002378<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002379 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002381
2382
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2384 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002385
2386
2387 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002388 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002389 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002390 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002392 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002393
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002394 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002395
2396 <ul class="entry_type_enum">
2397 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002398 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002399 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002400 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002401 </li>
2402 <li>
2403 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002404 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2405detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2406auto-exposure routines.<wbr/> If face detection statistics are
2407disabled (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
2408this should still operate correctly (but will not return
2409face detection statistics to the framework).<wbr/></p>
2410<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2411<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2412remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002413 </li>
2414 <li>
2415 <span class="entry_type_enum_name">ACTION</span>
2416 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002417 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2418Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002419 </li>
2420 <li>
2421 <span class="entry_type_enum_name">PORTRAIT</span>
2422 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002423 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002424 </li>
2425 <li>
2426 <span class="entry_type_enum_name">LANDSCAPE</span>
2427 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002428 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002429 </li>
2430 <li>
2431 <span class="entry_type_enum_name">NIGHT</span>
2432 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002433 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002434 </li>
2435 <li>
2436 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2437 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002438 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2439settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002440 </li>
2441 <li>
2442 <span class="entry_type_enum_name">THEATRE</span>
2443 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002444 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2445remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002446 </li>
2447 <li>
2448 <span class="entry_type_enum_name">BEACH</span>
2449 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002450 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002451 </li>
2452 <li>
2453 <span class="entry_type_enum_name">SNOW</span>
2454 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002455 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002456 </li>
2457 <li>
2458 <span class="entry_type_enum_name">SUNSET</span>
2459 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002460 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002461 </li>
2462 <li>
2463 <span class="entry_type_enum_name">STEADYPHOTO</span>
2464 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002465 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2466device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002467 </li>
2468 <li>
2469 <span class="entry_type_enum_name">FIREWORKS</span>
2470 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002471 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002472 </li>
2473 <li>
2474 <span class="entry_type_enum_name">SPORTS</span>
2475 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002476 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2477Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002478 </li>
2479 <li>
2480 <span class="entry_type_enum_name">PARTY</span>
2481 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002482 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2483people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002484 </li>
2485 <li>
2486 <span class="entry_type_enum_name">CANDLELIGHT</span>
2487 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002488 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2489is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002490 </li>
2491 <li>
2492 <span class="entry_type_enum_name">BARCODE</span>
2493 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002494 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2495for use by camera applications that wish to read the
2496barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002497 </li>
2498 </ul>
2499
2500 </td> <!-- entry_type -->
2501
2502 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002503 <p>A camera mode optimized for conditions typical in a particular
2504capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002505 </td>
2506
2507 <td class="entry_units">
2508 </td>
2509
2510 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002511 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002512 </td>
2513
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002514 <td class="entry_tags">
2515 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002516 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 </ul>
2518 </td>
2519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002520 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002521 <tr class="entries_header">
2522 <th class="th_details" colspan="5">Details</th>
2523 </tr>
2524 <tr class="entry_cont">
2525 <td class="entry_details" colspan="5">
2526 <p>This is the mode that that is active when
2527<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
2528these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2529<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2530<p>The interpretation and implementation of these scene modes is left
2531to the implementor of the camera device.<wbr/> Their behavior will not be
2532consistent across all devices,<wbr/> and any given device may only implement
2533a subset of these modes.<wbr/></p>
2534 </td>
2535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002536
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002537 <tr class="entries_header">
2538 <th class="th_details" colspan="5">HAL Implementation Details</th>
2539 </tr>
2540 <tr class="entry_cont">
2541 <td class="entry_details" colspan="5">
2542 <p>HAL implementations that include scene modes are expected to provide
2543the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2544<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
2545<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2546 </td>
2547 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002551
2552
2553 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002554 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002555 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002558 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002559
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002560 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002561
2562 <ul class="entry_type_enum">
2563 <li>
2564 <span class="entry_type_enum_name">OFF</span>
2565 </li>
2566 <li>
2567 <span class="entry_type_enum_name">ON</span>
2568 </li>
2569 </ul>
2570
2571 </td> <!-- entry_type -->
2572
2573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002574 <p>Whether video stabilization is
2575active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002576 </td>
2577
2578 <td class="entry_units">
2579 </td>
2580
2581 <td class="entry_range">
2582 </td>
2583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002584 <td class="entry_tags">
2585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002586 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 </ul>
2588 </td>
2589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002590 </tr>
2591 <tr class="entries_header">
2592 <th class="th_details" colspan="5">Details</th>
2593 </tr>
2594 <tr class="entry_cont">
2595 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002596 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002597<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
Igor Murashkin0b080452013-12-27 15:30:25 -08002598stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002599 </td>
2600 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002601
2602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002603 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2604 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002605
2606
2607
2608 <!-- end of kind -->
2609 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002610 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002611
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002612 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002613 <tr>
2614 <th class="th_name">Property Name</th>
2615 <th class="th_type">Type</th>
2616 <th class="th_description">Description</th>
2617 <th class="th_units">Units</th>
2618 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002619 <th class="th_tags">Tags</th>
2620 </tr>
2621 </thead>
2622
2623 <tbody>
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002635 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002636 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002639 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002640 <span class="entry_type_container">x</span>
2641
2642 <span class="entry_type_array">
2643 n
2644 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002645 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002646 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002647
2648
2649 </td> <!-- entry_type -->
2650
2651 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002652 <p>The set of auto-exposure antibanding modes that are
2653supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002654 </td>
2655
2656 <td class="entry_units">
2657 </td>
2658
2659 <td class="entry_range">
2660 </td>
2661
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002662 <td class="entry_tags">
2663 </td>
2664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002665 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002666 <tr class="entries_header">
2667 <th class="th_details" colspan="5">Details</th>
2668 </tr>
2669 <tr class="entry_cont">
2670 <td class="entry_details" colspan="5">
2671 <p>Not all of the auto-exposure anti-banding modes may be
2672supported by a given camera device.<wbr/> This field lists the
2673valid anti-banding modes that the application may request
2674for this camera device; they must include AUTO.<wbr/></p>
2675 </td>
2676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002677
2678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002679 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2680 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002681
2682
2683 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002684 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002685 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002686 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002687 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002688 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002689 <span class="entry_type_container">x</span>
2690
2691 <span class="entry_type_array">
2692 n
2693 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002694 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002695 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002696
2697
2698 </td> <!-- entry_type -->
2699
2700 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002701 <p>The set of auto-exposure modes that are supported by this
2702camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002703 </td>
2704
2705 <td class="entry_units">
2706 </td>
2707
2708 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002709 </td>
2710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002711 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002712 <ul class="entry_tags">
2713 <li><a href="#tag_BC">BC</a></li>
2714 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002715 </td>
2716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002717 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002718 <tr class="entries_header">
2719 <th class="th_details" colspan="5">Details</th>
2720 </tr>
2721 <tr class="entry_cont">
2722 <td class="entry_details" colspan="5">
2723 <p>Not all the auto-exposure modes may be supported by a
2724given camera device,<wbr/> especially if no flash unit is
2725available.<wbr/> This entry lists the valid modes for
2726<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2727<p>All camera devices support ON,<wbr/> and all camera devices with
2728flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2729ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2730<p>Full-capability camera devices always support OFF mode,<wbr/>
2731which enables application control of camera exposure time,<wbr/>
2732sensitivity,<wbr/> and frame duration.<wbr/></p>
2733 </td>
2734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002735
2736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002739
2740
2741 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002743 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002747 <span class="entry_type_container">x</span>
2748
2749 <span class="entry_type_array">
2750 2 x n
2751 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002752 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002753 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002754
2755
2756 </td> <!-- entry_type -->
2757
2758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002759 <p>List of frame rate ranges supported by the
2760AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002761 </td>
2762
2763 <td class="entry_units">
2764 </td>
2765
2766 <td class="entry_range">
2767 </td>
2768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002769 <td class="entry_tags">
2770 </td>
2771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002773
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002777
2778
2779 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002781 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002784 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002785 <span class="entry_type_container">x</span>
2786
2787 <span class="entry_type_array">
2788 2
2789 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002790 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002791
2792
2793 </td> <!-- entry_type -->
2794
2795 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002796 <p>Maximum and minimum exposure compensation
2797setting,<wbr/> in counts of
2798android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002799 </td>
2800
2801 <td class="entry_units">
2802 </td>
2803
2804 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002805 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2806size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002807 </td>
2808
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002809 <td class="entry_tags">
2810 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002811 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 </ul>
2813 </td>
2814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002815 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002816
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2819 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002820
2821
2822 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002823 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002824 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002825 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002826 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002827 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002828
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002829 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002830
2831
2832 </td> <!-- entry_type -->
2833
2834 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002835 <p>Smallest step by which exposure compensation
2836can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002837 </td>
2838
2839 <td class="entry_units">
2840 </td>
2841
2842 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002843 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002844 </td>
2845
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002846 <td class="entry_tags">
2847 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002848 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 </ul>
2850 </td>
2851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002852 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002853
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2856 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002857
2858
2859 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002860 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002861 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002862 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002863 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002864 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002865 <span class="entry_type_container">x</span>
2866
2867 <span class="entry_type_array">
2868 n
2869 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002870 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002871 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002872
2873
2874 </td> <!-- entry_type -->
2875
2876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002877 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002878selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002879 </td>
2880
2881 <td class="entry_units">
2882 </td>
2883
2884 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002885 </td>
2886
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002887 <td class="entry_tags">
2888 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002889 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 </ul>
2891 </td>
2892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002893 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002894 <tr class="entries_header">
2895 <th class="th_details" colspan="5">Details</th>
2896 </tr>
2897 <tr class="entry_cont">
2898 <td class="entry_details" colspan="5">
2899 <p>Not all the auto-focus modes may be supported by a
2900given camera device.<wbr/> This entry lists the valid modes for
2901<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2902<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2903adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>)
2904will support AUTO mode.<wbr/></p>
2905 </td>
2906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002907
2908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002911
2912
2913 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002915 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002918 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002919 <span class="entry_type_container">x</span>
2920
2921 <span class="entry_type_array">
2922 n
2923 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002924 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002925 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002926
2927
2928 </td> <!-- entry_type -->
2929
2930 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002931 <p>List containing the subset of color effects
2932specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2933this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002934 </td>
2935
2936 <td class="entry_units">
2937 </td>
2938
2939 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002940 <p>Any subset of enums from those specified in
2941<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/> OFF must be included in any subset.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002942 </td>
2943
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002944 <td class="entry_tags">
2945 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002946 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 </ul>
2948 </td>
2949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002950 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002951 <tr class="entries_header">
2952 <th class="th_details" colspan="5">Details</th>
2953 </tr>
2954 <tr class="entry_cont">
2955 <td class="entry_details" colspan="5">
2956 <p>This list contains the color effect modes that can be applied to
2957images produced by the camera device.<wbr/> Only modes that have
2958been fully implemented for the current device may be included here.<wbr/>
2959Implementations are not expected to be consistent across all devices.<wbr/>
2960If no color effect modes are available for a device,<wbr/> this should
2961simply be set to OFF.<wbr/></p>
2962<p>A color effect will only be applied if
2963<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2964 </td>
2965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002966
2967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002970
2971
2972 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002973 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002974 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002976 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002977 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002978 <span class="entry_type_container">x</span>
2979
2980 <span class="entry_type_array">
2981 n
2982 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002983 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002984 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002985
2986
2987 </td> <!-- entry_type -->
2988
2989 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002990 <p>List containing a subset of scene modes
2991specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002992 </td>
2993
2994 <td class="entry_units">
2995 </td>
2996
2997 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002998 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
2999not including DISABLED,<wbr/> or solely DISABLED if no
3000scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3001if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003002 </td>
3003
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003004 <td class="entry_tags">
3005 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003006 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 </ul>
3008 </td>
3009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003010 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003011 <tr class="entries_header">
3012 <th class="th_details" colspan="5">Details</th>
3013 </tr>
3014 <tr class="entry_cont">
3015 <td class="entry_details" colspan="5">
3016 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3017Only scene modes that have been fully implemented for the
3018camera device may be included here.<wbr/> Implementations are not expected
3019to be consistent across all devices.<wbr/> If no scene modes are supported
3020by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3021 </td>
3022 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003023
3024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003025 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3026 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003027
3028
3029 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003030 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003031 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003032 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003033 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003034 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003035 <span class="entry_type_container">x</span>
3036
3037 <span class="entry_type_array">
3038 n
3039 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003040 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003041 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003042
3043
3044 </td> <!-- entry_type -->
3045
3046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003047 <p>List of video stabilization modes that can
3048be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003049 </td>
3050
3051 <td class="entry_units">
3052 </td>
3053
3054 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003055 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003056 </td>
3057
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003058 <td class="entry_tags">
3059 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003060 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 </ul>
3062 </td>
3063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003065
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003069
3070
3071 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003072 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003073 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003076 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003077 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078
Alex Raya4251d92013-04-30 16:43:44 -07003079 <span class="entry_type_array">
3080 n
3081 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003082 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003083 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003084
3085
3086 </td> <!-- entry_type -->
3087
3088 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003089 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3090that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003091 </td>
3092
3093 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003099 <td class="entry_tags">
3100 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003101 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 </ul>
3103 </td>
3104
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003105 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003106 <tr class="entries_header">
3107 <th class="th_details" colspan="5">Details</th>
3108 </tr>
3109 <tr class="entry_cont">
3110 <td class="entry_details" colspan="5">
3111 <p>Not all the auto-white-balance modes may be supported by a
3112given camera device.<wbr/> This entry lists the valid modes for
3113<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3114<p>All camera devices will support ON mode.<wbr/></p>
3115<p>Full-capability camera devices will always support OFF mode,<wbr/>
3116which enables application control of white balance,<wbr/> by using
3117<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/></p>
3118 </td>
3119 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003120
3121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003124
3125
3126 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003127 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003128 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003131 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003134
3135
3136 </td> <!-- entry_type -->
3137
3138 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003139 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3140regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141 </td>
3142
3143 <td class="entry_units">
3144 </td>
3145
3146 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003147 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003148 </td>
3149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003150 <td class="entry_tags">
3151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003152 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003153 </ul>
3154 </td>
3155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003157
3158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003161
3162
3163 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003164 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003165 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003166 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003167 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003168 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003169 <span class="entry_type_container">x</span>
3170
3171 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003172 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003174 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003175
3176
3177 </td> <!-- entry_type -->
3178
3179 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003180 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3181settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003182 </td>
3183
3184 <td class="entry_units">
3185 </td>
3186
3187 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003188 <p>For each available scene mode,<wbr/> the list must contain three
3189entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3190<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
3191by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3192where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003193 </td>
3194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003195 <td class="entry_tags">
3196 <ul class="entry_tags">
3197 <li><a href="#tag_BC">BC</a></li>
3198 </ul>
3199 </td>
3200
3201 </tr>
3202 <tr class="entries_header">
3203 <th class="th_details" colspan="5">Details</th>
3204 </tr>
3205 <tr class="entry_cont">
3206 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003207 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3208to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
3209and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3210that scene mode.<wbr/></p>
3211<p>The order of this list matches that of availableSceneModes,<wbr/>
3212with 3 entries for each mode.<wbr/> The overrides listed
3213for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3214mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3215<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
3216used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3217is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3218overrides should be set to 0.<wbr/></p>
3219<p>For example,<wbr/> if availableSceneModes contains
3220<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3221expects sceneModeOverrides to have 9 entries formatted like:
3222<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3223ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003224 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003226
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003227 <tr class="entries_header">
3228 <th class="th_details" colspan="5">HAL Implementation Details</th>
3229 </tr>
3230 <tr class="entry_cont">
3231 <td class="entry_details" colspan="5">
3232 <p>To maintain backward compatibility,<wbr/> this list will be made available
3233in the static metadata of the camera service.<wbr/> The camera service will
3234use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3235<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
3236mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3237 </td>
3238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003239
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003240 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3241 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003242
3243
3244
3245 <!-- end of kind -->
3246 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003247 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003249 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003250 <tr>
3251 <th class="th_name">Property Name</th>
3252 <th class="th_type">Type</th>
3253 <th class="th_description">Description</th>
3254 <th class="th_units">Units</th>
3255 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003256 <th class="th_tags">Tags</th>
3257 </tr>
3258 </thead>
3259
3260 <tbody>
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003273 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003276 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003278 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003279
3280
3281 </td> <!-- entry_type -->
3282
3283 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003284 <p>The ID sent with the latest
3285CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003286 </td>
3287
3288 <td class="entry_units">
3289 </td>
3290
3291 <td class="entry_range">
3292 </td>
3293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003294 <td class="entry_tags">
3295 </td>
3296
3297 </tr>
3298 <tr class="entries_header">
3299 <th class="th_details" colspan="5">Details</th>
3300 </tr>
3301 <tr class="entry_cont">
3302 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003303 <p>Must be 0 if no
3304CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3305by HAL.<wbr/> Always updated even if AE algorithm ignores the
3306trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003307 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003309
3310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003313
3314
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003315 <tr class="entry" id="dynamic_android.control.aeMode">
3316 <td class="entry_name" rowspan="3">
3317 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3318 </td>
3319 <td class="entry_type">
3320 <span class="entry_type_name entry_type_name_enum">byte</span>
3321
3322 <span class="entry_type_visibility"> [public]</span>
3323
3324 <ul class="entry_type_enum">
3325 <li>
3326 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003327 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3328the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3329<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3330<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3331device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3332a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003333 </li>
3334 <li>
3335 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003336 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3337with no flash control.<wbr/> The application's values for
3338<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3339<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3340<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3341application has control over the various
3342android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003343 </li>
3344 <li>
3345 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003346 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3347the camera's flash unit,<wbr/> firing it in low-light
3348conditions.<wbr/> The flash may be fired during a
3349precapture sequence (triggered by
3350<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3351for captures for which the
3352<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3353STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003354 </li>
3355 <li>
3356 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003357 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3358the camera's flash unit,<wbr/> always firing it for still
3359captures.<wbr/> The flash may be fired during a precapture
3360sequence (triggered by
3361<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3362be fired for captures for which the
3363<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3364STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003365 </li>
3366 <li>
3367 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003368 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3369reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3370a red eye reduction flash will fire during the
3371precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003372 </li>
3373 </ul>
3374
3375 </td> <!-- entry_type -->
3376
3377 <td class="entry_description">
3378 <p>The desired mode for the camera device's
3379auto-exposure routine.<wbr/></p>
3380 </td>
3381
3382 <td class="entry_units">
3383 </td>
3384
3385 <td class="entry_range">
3386 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3387 </td>
3388
3389 <td class="entry_tags">
3390 <ul class="entry_tags">
3391 <li><a href="#tag_BC">BC</a></li>
3392 </ul>
3393 </td>
3394
3395 </tr>
3396 <tr class="entries_header">
3397 <th class="th_details" colspan="5">Details</th>
3398 </tr>
3399 <tr class="entry_cont">
3400 <td class="entry_details" colspan="5">
3401 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3402AUTO.<wbr/></p>
3403<p>When set to any of the ON modes,<wbr/> the camera device's
3404auto-exposure routine is enabled,<wbr/> overriding the
3405application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3406and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3407<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3408<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3409is selected,<wbr/> the camera device's flash unit controls are
3410also overridden.<wbr/></p>
3411<p>The FLASH modes are only available if the camera device
3412has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3413<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3414ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3415<p>When set to any of the ON modes,<wbr/> the values chosen by the
3416camera device auto-exposure routine for the overridden
3417fields for a given capture will be available in its
3418CaptureResult.<wbr/></p>
3419 </td>
3420 </tr>
3421
3422
3423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3424 <!-- end of entry -->
3425
3426
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003427 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003429 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003432 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003433 <span class="entry_type_container">x</span>
3434
3435 <span class="entry_type_array">
3436 5 x area_count
3437 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003438 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003439
3440
3441 </td> <!-- entry_type -->
3442
3443 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003444 <p>List of areas to use for
3445metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003446 </td>
3447
3448 <td class="entry_units">
3449 </td>
3450
3451 <td class="entry_range">
3452 </td>
3453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003454 <td class="entry_tags">
3455 <ul class="entry_tags">
3456 <li><a href="#tag_BC">BC</a></li>
3457 </ul>
3458 </td>
3459
3460 </tr>
3461 <tr class="entries_header">
3462 <th class="th_details" colspan="5">Details</th>
3463 </tr>
3464 <tr class="entry_cont">
3465 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003466 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3467xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3468specified coordinates.<wbr/></p>
3469<p>The coordinate system is based on the active pixel array,<wbr/>
3470with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003471(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3472<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003473bottom-right pixel in the active pixel array.<wbr/> The weight
3474should be nonnegative.<wbr/></p>
3475<p>If all regions have 0 weight,<wbr/> then no specific metering area
3476needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003477outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003478should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003479used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003480 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003481 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003482
3483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003484 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3485 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003486
3487
3488 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003489 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003490 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003491 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003492 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003493 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003494
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003495 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003496
3497 <ul class="entry_type_enum">
3498 <li>
3499 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003500 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
Igor Murashkina10351a2014-01-15 17:05:22 -08003501this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003502 </li>
3503 <li>
3504 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003505 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
Zhijun He92e698d2014-01-13 16:24:31 -08003506for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507 </li>
3508 <li>
3509 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003510 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003511current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003512 </li>
3513 <li>
3514 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003515 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003519 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3520needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003521capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003522 </li>
3523 <li>
3524 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003525 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003526(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3527and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003528completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003529FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003530 </li>
3531 </ul>
3532
3533 </td> <!-- entry_type -->
3534
3535 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003536 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </td>
3538
3539 <td class="entry_units">
3540 </td>
3541
3542 <td class="entry_range">
3543 </td>
3544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003545 <td class="entry_tags">
3546 </td>
3547
3548 </tr>
3549 <tr class="entries_header">
3550 <th class="th_details" colspan="5">Details</th>
3551 </tr>
3552 <tr class="entry_cont">
3553 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003554 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3555resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3556or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3557the algorithm states to INACTIVE.<wbr/></p>
3558<p>The camera device can do several state transitions between two results,<wbr/> if it is
3559allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3560seen in a result.<wbr/></p>
3561<p>The state in the result is the state for this image (in sync with this image): if
3562AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3563be good to use.<wbr/></p>
3564<p>Below are state transition tables for different AE modes.<wbr/></p>
3565<table>
3566<thead>
3567<tr>
3568<th align="center">State</th>
3569<th align="center">Transition Cause</th>
3570<th align="center">New State</th>
3571<th align="center">Notes</th>
3572</tr>
3573</thead>
3574<tbody>
3575<tr>
3576<td align="center">INACTIVE</td>
3577<td align="center"></td>
3578<td align="center">INACTIVE</td>
3579<td align="center">Camera device auto exposure algorithm is disabled</td>
3580</tr>
3581</tbody>
3582</table>
3583<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3584<table>
3585<thead>
3586<tr>
3587<th align="center">State</th>
3588<th align="center">Transition Cause</th>
3589<th align="center">New State</th>
3590<th align="center">Notes</th>
3591</tr>
3592</thead>
3593<tbody>
3594<tr>
3595<td align="center">INACTIVE</td>
3596<td align="center">Camera device initiates AE scan</td>
3597<td align="center">SEARCHING</td>
3598<td align="center">Values changing</td>
3599</tr>
3600<tr>
3601<td align="center">INACTIVE</td>
3602<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3603<td align="center">LOCKED</td>
3604<td align="center">Values locked</td>
3605</tr>
3606<tr>
3607<td align="center">SEARCHING</td>
3608<td align="center">Camera device finishes AE scan</td>
3609<td align="center">CONVERGED</td>
3610<td align="center">Good values,<wbr/> not changing</td>
3611</tr>
3612<tr>
3613<td align="center">SEARCHING</td>
3614<td align="center">Camera device finishes AE scan</td>
3615<td align="center">FLASH_<wbr/>REQUIRED</td>
3616<td align="center">Converged but too dark w/<wbr/>o flash</td>
3617</tr>
3618<tr>
3619<td align="center">SEARCHING</td>
3620<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3621<td align="center">LOCKED</td>
3622<td align="center">Values locked</td>
3623</tr>
3624<tr>
3625<td align="center">CONVERGED</td>
3626<td align="center">Camera device initiates AE scan</td>
3627<td align="center">SEARCHING</td>
3628<td align="center">Values changing</td>
3629</tr>
3630<tr>
3631<td align="center">CONVERGED</td>
3632<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3633<td align="center">LOCKED</td>
3634<td align="center">Values locked</td>
3635</tr>
3636<tr>
3637<td align="center">FLASH_<wbr/>REQUIRED</td>
3638<td align="center">Camera device initiates AE scan</td>
3639<td align="center">SEARCHING</td>
3640<td align="center">Values changing</td>
3641</tr>
3642<tr>
3643<td align="center">FLASH_<wbr/>REQUIRED</td>
3644<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3645<td align="center">LOCKED</td>
3646<td align="center">Values locked</td>
3647</tr>
3648<tr>
3649<td align="center">LOCKED</td>
3650<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3651<td align="center">SEARCHING</td>
3652<td align="center">Values not good after unlock</td>
3653</tr>
3654<tr>
3655<td align="center">LOCKED</td>
3656<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3657<td align="center">CONVERGED</td>
3658<td align="center">Values good after unlock</td>
3659</tr>
3660<tr>
3661<td align="center">LOCKED</td>
3662<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3663<td align="center">FLASH_<wbr/>REQUIRED</td>
3664<td align="center">Exposure good,<wbr/> but too dark</td>
3665</tr>
3666<tr>
3667<td align="center">PRECAPTURE</td>
3668<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3669<td align="center">CONVERGED</td>
3670<td align="center">Ready for high-quality capture</td>
3671</tr>
3672<tr>
3673<td align="center">PRECAPTURE</td>
3674<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3675<td align="center">LOCKED</td>
3676<td align="center">Ready for high-quality capture</td>
3677</tr>
3678<tr>
3679<td align="center">Any state</td>
3680<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3681<td align="center">PRECAPTURE</td>
3682<td align="center">Start AE precapture metering sequence</td>
3683</tr>
3684</tbody>
3685</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003686 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003688
3689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003692
3693
3694 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003695 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003696 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003699 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003700
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003701 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003702
3703 <ul class="entry_type_enum">
3704 <li>
3705 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003706 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3707<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3708application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003709 </li>
3710 <li>
3711 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003712 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3713<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
3714is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3715the autofocus trigger action is called.<wbr/> When that trigger
3716is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3717the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3718<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3719and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003720 </li>
3721 <li>
3722 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003723 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3724autofocus trigger action is called.<wbr/></p>
3725<p>When that trigger is activated,<wbr/> AF must transition to
3726ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3727NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3728position to default,<wbr/> and sets the AF state to
3729INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003730 </li>
3731 <li>
3732 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003733 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3734position continually to attempt to provide a
3735constantly-in-focus image stream.<wbr/></p>
3736<p>The focusing behavior should be suitable for good quality
3737video recording; typically this means slower focus
3738movement and no overshoots.<wbr/> When the AF trigger is not
3739involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3740and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3741states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3742the algorithm should immediately transition into
3743AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3744lens position until a cancel AF trigger is received.<wbr/></p>
3745<p>Once cancel is received,<wbr/> the algorithm should transition
3746back to INACTIVE and resume passive scan.<wbr/> Note that this
3747behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3748ongoing PASSIVE_<wbr/>SCAN must immediately be
3749canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003750 </li>
3751 <li>
3752 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003753 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3754position continually to attempt to provide a
3755constantly-in-focus image stream.<wbr/></p>
3756<p>The focusing behavior should be suitable for still image
3757capture; typically this means focusing as fast as
3758possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3759algorithm should start in INACTIVE state,<wbr/> and then
3760transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3761appropriate as it attempts to maintain focus.<wbr/> When the AF
3762trigger is activated,<wbr/> the algorithm should finish its
3763PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3764AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3765lens position until a cancel AF trigger is received.<wbr/></p>
3766<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3767should transition back to INACTIVE and then act as if it
3768has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003769 </li>
3770 <li>
3771 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003772 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3773trigger is ignored,<wbr/> AF state should always be
3774INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003775 </li>
3776 </ul>
3777
3778 </td> <!-- entry_type -->
3779
3780 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003781 <p>Whether AF is currently enabled,<wbr/> and what
3782mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003783 </td>
3784
3785 <td class="entry_units">
3786 </td>
3787
3788 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003789 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003790 </td>
3791
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003792 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003793 <ul class="entry_tags">
3794 <li><a href="#tag_BC">BC</a></li>
3795 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 </td>
3797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003798 </tr>
3799 <tr class="entries_header">
3800 <th class="th_details" colspan="5">Details</th>
3801 </tr>
3802 <tr class="entry_cont">
3803 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003804 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08003805<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3806the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3807in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003808 </td>
3809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003810
3811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003814
3815
3816 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003817 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003818 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003821 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003822 <span class="entry_type_container">x</span>
3823
3824 <span class="entry_type_array">
3825 5 x area_count
3826 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003827 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003828
3829
3830 </td> <!-- entry_type -->
3831
3832 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003833 <p>List of areas to use for focus
3834estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 </td>
3836
3837 <td class="entry_units">
3838 </td>
3839
3840 <td class="entry_range">
3841 </td>
3842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003843 <td class="entry_tags">
3844 <ul class="entry_tags">
3845 <li><a href="#tag_BC">BC</a></li>
3846 </ul>
3847 </td>
3848
3849 </tr>
3850 <tr class="entries_header">
3851 <th class="th_details" colspan="5">Details</th>
3852 </tr>
3853 <tr class="entry_cont">
3854 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003855 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3856xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3857specified coordinates.<wbr/></p>
3858<p>The coordinate system is based on the active pixel array,<wbr/>
3859with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003860(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3861<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003862bottom-right pixel in the active pixel array.<wbr/> The weight
3863should be nonnegative.<wbr/></p>
3864<p>If all regions have 0 weight,<wbr/> then no specific focus area
3865needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003866outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003867should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003868used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003869 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003870 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003871
3872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003873 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3874 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003875
3876
3877 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003878 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003879 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003880 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003881 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003882 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003884 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003885
3886 <ul class="entry_type_enum">
3887 <li>
3888 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003889 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3890to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3891this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003892 </li>
3893 <li>
3894 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003895 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3896currently doing an AF scan initiated by a continuous
3897autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003898 </li>
3899 <li>
3900 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003901 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3902believes it is in focus,<wbr/> but may restart scanning at
3903any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003904 </li>
3905 <li>
3906 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003907 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3908an AF scan because it was triggered by AF
3909trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003910 </li>
3911 <li>
3912 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003913 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3914believes it is focused correctly and is
3915locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003916 </li>
3917 <li>
3918 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003919 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3920failed to focus successfully and is
3921locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003922 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003923 <li>
3924 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003925 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3926passive scan without finding focus,<wbr/> and may restart
3927scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003928 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003929 </ul>
3930
3931 </td> <!-- entry_type -->
3932
3933 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003934 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003935 </td>
3936
3937 <td class="entry_units">
3938 </td>
3939
3940 <td class="entry_range">
3941 </td>
3942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003943 <td class="entry_tags">
3944 </td>
3945
3946 </tr>
3947 <tr class="entries_header">
3948 <th class="th_details" colspan="5">Details</th>
3949 </tr>
3950 <tr class="entry_cont">
3951 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003952 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3953resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3954or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3955the algorithm states to INACTIVE.<wbr/></p>
3956<p>The camera device can do several state transitions between two results,<wbr/> if it is
3957allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3958seen in a result.<wbr/></p>
3959<p>The state in the result is the state for this image (in sync with this image): if
3960AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3961be sharp.<wbr/></p>
3962<p>Below are state transition tables for different AF modes.<wbr/></p>
3963<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>OFF or AF_<wbr/>MODE_<wbr/>EDOF:</p>
3964<table>
3965<thead>
3966<tr>
3967<th align="center">State</th>
3968<th align="center">Transition Cause</th>
3969<th align="center">New State</th>
3970<th align="center">Notes</th>
3971</tr>
3972</thead>
3973<tbody>
3974<tr>
3975<td align="center">INACTIVE</td>
3976<td align="center"></td>
3977<td align="center">INACTIVE</td>
3978<td align="center">Never changes</td>
3979</tr>
3980</tbody>
3981</table>
3982<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>AUTO or AF_<wbr/>MODE_<wbr/>MACRO:</p>
3983<table>
3984<thead>
3985<tr>
3986<th align="center">State</th>
3987<th align="center">Transition Cause</th>
3988<th align="center">New State</th>
3989<th align="center">Notes</th>
3990</tr>
3991</thead>
3992<tbody>
3993<tr>
3994<td align="center">INACTIVE</td>
3995<td align="center">AF_<wbr/>TRIGGER</td>
3996<td align="center">ACTIVE_<wbr/>SCAN</td>
3997<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
3998</tr>
3999<tr>
4000<td align="center">ACTIVE_<wbr/>SCAN</td>
4001<td align="center">AF sweep done</td>
4002<td align="center">FOCUSED_<wbr/>LOCKED</td>
4003<td align="center">Focused,<wbr/> Lens now locked</td>
4004</tr>
4005<tr>
4006<td align="center">ACTIVE_<wbr/>SCAN</td>
4007<td align="center">AF sweep done</td>
4008<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4009<td align="center">Not focused,<wbr/> Lens now locked</td>
4010</tr>
4011<tr>
4012<td align="center">ACTIVE_<wbr/>SCAN</td>
4013<td align="center">AF_<wbr/>CANCEL</td>
4014<td align="center">INACTIVE</td>
4015<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4016</tr>
4017<tr>
4018<td align="center">FOCUSED_<wbr/>LOCKED</td>
4019<td align="center">AF_<wbr/>CANCEL</td>
4020<td align="center">INACTIVE</td>
4021<td align="center">Cancel/<wbr/>reset AF</td>
4022</tr>
4023<tr>
4024<td align="center">FOCUSED_<wbr/>LOCKED</td>
4025<td align="center">AF_<wbr/>TRIGGER</td>
4026<td align="center">ACTIVE_<wbr/>SCAN</td>
4027<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4028</tr>
4029<tr>
4030<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4031<td align="center">AF_<wbr/>CANCEL</td>
4032<td align="center">INACTIVE</td>
4033<td align="center">Cancel/<wbr/>reset AF</td>
4034</tr>
4035<tr>
4036<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4037<td align="center">AF_<wbr/>TRIGGER</td>
4038<td align="center">ACTIVE_<wbr/>SCAN</td>
4039<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4040</tr>
4041<tr>
4042<td align="center">Any state</td>
4043<td align="center">Mode change</td>
4044<td align="center">INACTIVE</td>
4045<td align="center"></td>
4046</tr>
4047</tbody>
4048</table>
4049<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>VIDEO:</p>
4050<table>
4051<thead>
4052<tr>
4053<th align="center">State</th>
4054<th align="center">Transition Cause</th>
4055<th align="center">New State</th>
4056<th align="center">Notes</th>
4057</tr>
4058</thead>
4059<tbody>
4060<tr>
4061<td align="center">INACTIVE</td>
4062<td align="center">Camera device initiates new scan</td>
4063<td align="center">PASSIVE_<wbr/>SCAN</td>
4064<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4065</tr>
4066<tr>
4067<td align="center">INACTIVE</td>
4068<td align="center">AF_<wbr/>TRIGGER</td>
4069<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4070<td align="center">AF state query,<wbr/> Lens now locked</td>
4071</tr>
4072<tr>
4073<td align="center">PASSIVE_<wbr/>SCAN</td>
4074<td align="center">Camera device completes current scan</td>
4075<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4076<td align="center">End AF scan,<wbr/> Lens now locked</td>
4077</tr>
4078<tr>
4079<td align="center">PASSIVE_<wbr/>SCAN</td>
4080<td align="center">Camera device fails current scan</td>
4081<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4082<td align="center">End AF scan,<wbr/> Lens now locked</td>
4083</tr>
4084<tr>
4085<td align="center">PASSIVE_<wbr/>SCAN</td>
4086<td align="center">AF_<wbr/>TRIGGER</td>
4087<td align="center">FOCUSED_<wbr/>LOCKED</td>
4088<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4089</tr>
4090<tr>
4091<td align="center">PASSIVE_<wbr/>SCAN</td>
4092<td align="center">AF_<wbr/>TRIGGER</td>
4093<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4094<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4095</tr>
4096<tr>
4097<td align="center">PASSIVE_<wbr/>SCAN</td>
4098<td align="center">AF_<wbr/>CANCEL</td>
4099<td align="center">INACTIVE</td>
4100<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4101</tr>
4102<tr>
4103<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4104<td align="center">Camera device initiates new scan</td>
4105<td align="center">PASSIVE_<wbr/>SCAN</td>
4106<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4107</tr>
4108<tr>
4109<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4110<td align="center">Camera device initiates new scan</td>
4111<td align="center">PASSIVE_<wbr/>SCAN</td>
4112<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4113</tr>
4114<tr>
4115<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4116<td align="center">AF_<wbr/>TRIGGER</td>
4117<td align="center">FOCUSED_<wbr/>LOCKED</td>
4118<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4119</tr>
4120<tr>
4121<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4122<td align="center">AF_<wbr/>TRIGGER</td>
4123<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4124<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4125</tr>
4126<tr>
4127<td align="center">FOCUSED_<wbr/>LOCKED</td>
4128<td align="center">AF_<wbr/>TRIGGER</td>
4129<td align="center">FOCUSED_<wbr/>LOCKED</td>
4130<td align="center">No effect</td>
4131</tr>
4132<tr>
4133<td align="center">FOCUSED_<wbr/>LOCKED</td>
4134<td align="center">AF_<wbr/>CANCEL</td>
4135<td align="center">INACTIVE</td>
4136<td align="center">Restart AF scan</td>
4137</tr>
4138<tr>
4139<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4140<td align="center">AF_<wbr/>TRIGGER</td>
4141<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">No effect</td>
4143</tr>
4144<tr>
4145<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4146<td align="center">AF_<wbr/>CANCEL</td>
4147<td align="center">INACTIVE</td>
4148<td align="center">Restart AF scan</td>
4149</tr>
4150</tbody>
4151</table>
4152<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>PICTURE:</p>
4153<table>
4154<thead>
4155<tr>
4156<th align="center">State</th>
4157<th align="center">Transition Cause</th>
4158<th align="center">New State</th>
4159<th align="center">Notes</th>
4160</tr>
4161</thead>
4162<tbody>
4163<tr>
4164<td align="center">INACTIVE</td>
4165<td align="center">Camera device initiates new scan</td>
4166<td align="center">PASSIVE_<wbr/>SCAN</td>
4167<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4168</tr>
4169<tr>
4170<td align="center">INACTIVE</td>
4171<td align="center">AF_<wbr/>TRIGGER</td>
4172<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4173<td align="center">AF state query,<wbr/> Lens now locked</td>
4174</tr>
4175<tr>
4176<td align="center">PASSIVE_<wbr/>SCAN</td>
4177<td align="center">Camera device completes current scan</td>
4178<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4179<td align="center">End AF scan,<wbr/> Lens now locked</td>
4180</tr>
4181<tr>
4182<td align="center">PASSIVE_<wbr/>SCAN</td>
4183<td align="center">Camera device fails current scan</td>
4184<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4185<td align="center">End AF scan,<wbr/> Lens now locked</td>
4186</tr>
4187<tr>
4188<td align="center">PASSIVE_<wbr/>SCAN</td>
4189<td align="center">AF_<wbr/>TRIGGER</td>
4190<td align="center">FOCUSED_<wbr/>LOCKED</td>
4191<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4192</tr>
4193<tr>
4194<td align="center">PASSIVE_<wbr/>SCAN</td>
4195<td align="center">AF_<wbr/>TRIGGER</td>
4196<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4197<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4198</tr>
4199<tr>
4200<td align="center">PASSIVE_<wbr/>SCAN</td>
4201<td align="center">AF_<wbr/>CANCEL</td>
4202<td align="center">INACTIVE</td>
4203<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4204</tr>
4205<tr>
4206<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4207<td align="center">Camera device initiates new scan</td>
4208<td align="center">PASSIVE_<wbr/>SCAN</td>
4209<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4210</tr>
4211<tr>
4212<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4213<td align="center">Camera device initiates new scan</td>
4214<td align="center">PASSIVE_<wbr/>SCAN</td>
4215<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4216</tr>
4217<tr>
4218<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4219<td align="center">AF_<wbr/>TRIGGER</td>
4220<td align="center">FOCUSED_<wbr/>LOCKED</td>
4221<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4222</tr>
4223<tr>
4224<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4225<td align="center">AF_<wbr/>TRIGGER</td>
4226<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4227<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4228</tr>
4229<tr>
4230<td align="center">FOCUSED_<wbr/>LOCKED</td>
4231<td align="center">AF_<wbr/>TRIGGER</td>
4232<td align="center">FOCUSED_<wbr/>LOCKED</td>
4233<td align="center">No effect</td>
4234</tr>
4235<tr>
4236<td align="center">FOCUSED_<wbr/>LOCKED</td>
4237<td align="center">AF_<wbr/>CANCEL</td>
4238<td align="center">INACTIVE</td>
4239<td align="center">Restart AF scan</td>
4240</tr>
4241<tr>
4242<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4243<td align="center">AF_<wbr/>TRIGGER</td>
4244<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">No effect</td>
4246</tr>
4247<tr>
4248<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4249<td align="center">AF_<wbr/>CANCEL</td>
4250<td align="center">INACTIVE</td>
4251<td align="center">Restart AF scan</td>
4252</tr>
4253</tbody>
4254</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004255 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004256 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004257
4258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004259 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4260 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004261
4262
4263 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004264 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004265 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004266 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004267 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004268 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004269
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004270 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004271
4272
4273 </td> <!-- entry_type -->
4274
4275 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004276 <p>The ID sent with the latest
4277CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004278 </td>
4279
4280 <td class="entry_units">
4281 </td>
4282
4283 <td class="entry_range">
4284 </td>
4285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004286 <td class="entry_tags">
4287 </td>
4288
4289 </tr>
4290 <tr class="entries_header">
4291 <th class="th_details" colspan="5">Details</th>
4292 </tr>
4293 <tr class="entry_cont">
4294 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004295 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4296received yet by HAL.<wbr/> Always updated even if AF algorithm
4297ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004298 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004299 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004300
4301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4303 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004304
4305
4306 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004307 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004308 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004309 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004310 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004311 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004312
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004313 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004314
4315 <ul class="entry_type_enum">
4316 <li>
4317 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004318 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4319the application-selected color transform matrix
4320(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4321(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4322device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004323 </li>
4324 <li>
4325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004326 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4327the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4328and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004329 </li>
4330 <li>
4331 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004332 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4333the camera device uses incandescent light as the assumed scene
4334illumination for white balance.<wbr/> While the exact white balance
4335transforms are up to the camera device,<wbr/> they will approximately
4336match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004337 </li>
4338 <li>
4339 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004340 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4341the camera device uses fluorescent light as the assumed scene
4342illumination for white balance.<wbr/> While the exact white balance
4343transforms are up to the camera device,<wbr/> they will approximately
4344match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004345 </li>
4346 <li>
4347 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004348 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4349the camera device uses warm fluorescent light as the assumed scene
4350illumination for white balance.<wbr/> While the exact white balance
4351transforms are up to the camera device,<wbr/> they will approximately
4352match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004353 </li>
4354 <li>
4355 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004356 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4357the camera device uses daylight light as the assumed scene
4358illumination for white balance.<wbr/> While the exact white balance
4359transforms are up to the camera device,<wbr/> they will approximately
4360match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004361 </li>
4362 <li>
4363 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004364 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4365the camera device uses cloudy daylight light as the assumed scene
4366illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004367 </li>
4368 <li>
4369 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004370 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4371the camera device uses twilight light as the assumed scene
4372illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004373 </li>
4374 <li>
4375 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004376 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4377the camera device uses shade light as the assumed scene
4378illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004379 </li>
4380 </ul>
4381
4382 </td> <!-- entry_type -->
4383
4384 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004385 <p>Whether AWB is currently setting the color
4386transform fields,<wbr/> and what its illumination target
4387is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004388 </td>
4389
4390 <td class="entry_units">
4391 </td>
4392
4393 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004394 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004395 </td>
4396
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004397 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004398 <ul class="entry_tags">
4399 <li><a href="#tag_BC">BC</a></li>
4400 <li><a href="#tag_AWB">AWB</a></li>
4401 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 </td>
4403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004404 </tr>
4405 <tr class="entries_header">
4406 <th class="th_details" colspan="5">Details</th>
4407 </tr>
4408 <tr class="entry_cont">
4409 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004410 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4411<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4412routine is enabled,<wbr/> overriding the application's selected
4413<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
4414<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4415<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4416routine is disabled.<wbr/> The applicantion manually controls the white
4417balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4418and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4419<p>When set to any other modes,<wbr/> the camera device's auto white balance
4420routine is disabled.<wbr/> The camera device uses each particular illumination
4421target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004422 </td>
4423 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004424
4425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4427 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004428
4429
4430 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004432 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004435 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004436 <span class="entry_type_container">x</span>
4437
4438 <span class="entry_type_array">
4439 5 x area_count
4440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004441 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004442
4443
4444 </td> <!-- entry_type -->
4445
4446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004447 <p>List of areas to use for illuminant
4448estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004449 </td>
4450
4451 <td class="entry_units">
4452 </td>
4453
4454 <td class="entry_range">
4455 </td>
4456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004457 <td class="entry_tags">
4458 <ul class="entry_tags">
4459 <li><a href="#tag_BC">BC</a></li>
4460 </ul>
4461 </td>
4462
4463 </tr>
4464 <tr class="entries_header">
4465 <th class="th_details" colspan="5">Details</th>
4466 </tr>
4467 <tr class="entry_cont">
4468 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004469 <p>Only used in AUTO mode.<wbr/></p>
4470<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4471xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
4472specified coordinates.<wbr/></p>
4473<p>The coordinate system is based on the active pixel array,<wbr/>
4474with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004475(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4476<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08004477bottom-right pixel in the active pixel array.<wbr/> The weight
4478should be nonnegative.<wbr/></p>
4479<p>If all regions have 0 weight,<wbr/> then no specific metering area
4480needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004481outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08004482should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08004483used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004484 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004486
4487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004490
4491
4492 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004494 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004497 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004499 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004500
4501 <ul class="entry_type_enum">
4502 <li>
4503 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004504 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4505starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506 </li>
4507 <li>
4508 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004509 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004510values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 </li>
4512 <li>
4513 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004514 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004515current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004516 </li>
4517 <li>
4518 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004519 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004520 </li>
4521 </ul>
4522
4523 </td> <!-- entry_type -->
4524
4525 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004526 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004527 </td>
4528
4529 <td class="entry_units">
4530 </td>
4531
4532 <td class="entry_range">
4533 </td>
4534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004535 <td class="entry_tags">
4536 </td>
4537
4538 </tr>
4539 <tr class="entries_header">
4540 <th class="th_details" colspan="5">Details</th>
4541 </tr>
4542 <tr class="entry_cont">
4543 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004544 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4545resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4546or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
4547the algorithm states to INACTIVE.<wbr/></p>
4548<p>The camera device can do several state transitions between two results,<wbr/> if it is
4549allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4550a result.<wbr/></p>
4551<p>The state in the result is the state for this image (in sync with this image): if
4552AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4553be good to use.<wbr/></p>
4554<p>Below are state transition tables for different AWB modes.<wbr/></p>
4555<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4556<table>
4557<thead>
4558<tr>
4559<th align="center">State</th>
4560<th align="center">Transition Cause</th>
4561<th align="center">New State</th>
4562<th align="center">Notes</th>
4563</tr>
4564</thead>
4565<tbody>
4566<tr>
4567<td align="center">INACTIVE</td>
4568<td align="center"></td>
4569<td align="center">INACTIVE</td>
4570<td align="center">Camera device auto white balance algorithm is disabled</td>
4571</tr>
4572</tbody>
4573</table>
4574<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4575<table>
4576<thead>
4577<tr>
4578<th align="center">State</th>
4579<th align="center">Transition Cause</th>
4580<th align="center">New State</th>
4581<th align="center">Notes</th>
4582</tr>
4583</thead>
4584<tbody>
4585<tr>
4586<td align="center">INACTIVE</td>
4587<td align="center">Camera device initiates AWB scan</td>
4588<td align="center">SEARCHING</td>
4589<td align="center">Values changing</td>
4590</tr>
4591<tr>
4592<td align="center">INACTIVE</td>
4593<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4594<td align="center">LOCKED</td>
4595<td align="center">Values locked</td>
4596</tr>
4597<tr>
4598<td align="center">SEARCHING</td>
4599<td align="center">Camera device finishes AWB scan</td>
4600<td align="center">CONVERGED</td>
4601<td align="center">Good values,<wbr/> not changing</td>
4602</tr>
4603<tr>
4604<td align="center">SEARCHING</td>
4605<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4606<td align="center">LOCKED</td>
4607<td align="center">Values locked</td>
4608</tr>
4609<tr>
4610<td align="center">CONVERGED</td>
4611<td align="center">Camera device initiates AWB scan</td>
4612<td align="center">SEARCHING</td>
4613<td align="center">Values changing</td>
4614</tr>
4615<tr>
4616<td align="center">CONVERGED</td>
4617<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4618<td align="center">LOCKED</td>
4619<td align="center">Values locked</td>
4620</tr>
4621<tr>
4622<td align="center">LOCKED</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4624<td align="center">SEARCHING</td>
4625<td align="center">Values not good after unlock</td>
4626</tr>
4627<tr>
4628<td align="center">LOCKED</td>
4629<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4630<td align="center">CONVERGED</td>
4631<td align="center">Values good after unlock</td>
4632</tr>
4633</tbody>
4634</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004635 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004637
4638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004641
4642
4643 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004644 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004645 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004646 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004647 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004648 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004649
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004650 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004651
4652 <ul class="entry_type_enum">
4653 <li>
4654 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004655 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4656routines are disabled,<wbr/> no other settings in
4657android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004658 </li>
4659 <li>
4660 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004661 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4662Manual control of capture parameters is disabled.<wbr/> All
4663controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4664effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004665 </li>
4666 <li>
4667 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004668 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4669control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4670controls; the HAL must ignore those settings while
4671USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4672scene mode).<wbr/> Other control entries are still active.<wbr/>
4673This setting can only be used if availableSceneModes !=
4674UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004675 </li>
4676 </ul>
4677
4678 </td> <!-- entry_type -->
4679
4680 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004681 <p>Overall mode of 3A control
4682routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </td>
4684
4685 <td class="entry_units">
4686 </td>
4687
4688 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004689 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </td>
4691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004692 <td class="entry_tags">
4693 <ul class="entry_tags">
4694 <li><a href="#tag_BC">BC</a></li>
4695 </ul>
4696 </td>
4697
4698 </tr>
4699 <tr class="entries_header">
4700 <th class="th_details" colspan="5">Details</th>
4701 </tr>
4702 <tr class="entry_cont">
4703 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004704 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004705by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004706capture parameters itself.<wbr/></p>
4707<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004708android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08004709<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004710android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004711one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004712as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004713<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004714 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004715 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004716
4717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004718 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4719 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004720
4721
4722
4723 <!-- end of kind -->
4724 </tbody>
4725
4726 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004727 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004728
4729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004730 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004731
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004732 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004733 <tr>
4734 <th class="th_name">Property Name</th>
4735 <th class="th_type">Type</th>
4736 <th class="th_description">Description</th>
4737 <th class="th_units">Units</th>
4738 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <th class="th_tags">Tags</th>
4740 </tr>
4741 </thead>
4742
4743 <tbody>
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004755 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004756 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004757 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004758 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004759 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004760
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004761 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004762
4763 <ul class="entry_type_enum">
4764 <li>
4765 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004766 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4767Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004768 </li>
4769 <li>
4770 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004771 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4772rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004773 </li>
4774 </ul>
4775
4776 </td> <!-- entry_type -->
4777
4778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004779 <p>Controls the quality of the demosaicing
4780processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004781 </td>
4782
4783 <td class="entry_units">
4784 </td>
4785
4786 <td class="entry_range">
4787 </td>
4788
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004789 <td class="entry_tags">
4790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004791 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004792 </ul>
4793 </td>
4794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004795 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004796
4797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004798 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4799 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004800
4801
4802
4803 <!-- end of kind -->
4804 </tbody>
4805
4806 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004807 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004808
4809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004810 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004813 <tr>
4814 <th class="th_name">Property Name</th>
4815 <th class="th_type">Type</th>
4816 <th class="th_description">Description</th>
4817 <th class="th_units">Units</th>
4818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 <th class="th_tags">Tags</th>
4820 </tr>
4821 </thead>
4822
4823 <tbody>
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004835 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004836 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004839 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004840
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004842
4843 <ul class="entry_type_enum">
4844 <li>
4845 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004846 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004847 </li>
4848 <li>
4849 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004850 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4851output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004852 </li>
4853 <li>
4854 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004855 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4856quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857 </li>
4858 </ul>
4859
4860 </td> <!-- entry_type -->
4861
4862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004863 <p>Operation mode for edge
4864enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865 </td>
4866
4867 <td class="entry_units">
4868 </td>
4869
4870 <td class="entry_range">
4871 </td>
4872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004873 <td class="entry_tags">
4874 </td>
4875
4876 </tr>
4877 <tr class="entries_header">
4878 <th class="th_details" colspan="5">Details</th>
4879 </tr>
4880 <tr class="entry_cont">
4881 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004882 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4883enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004884<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004885will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004886camera device will use the highest-quality enhancement algorithms,<wbr/>
4887even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004888not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004889 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004891
4892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4894 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004895
4896
4897 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004899 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004902 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004903
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004904 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004905
4906
4907 </td> <!-- entry_type -->
4908
4909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004910 <p>Control the amount of edge enhancement
4911applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004912 </td>
4913
4914 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004915 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 </td>
4917
4918 <td class="entry_range">
4919 </td>
4920
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004921 <td class="entry_tags">
4922 </td>
4923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004925
4926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004927 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4928 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004929
4930
4931
4932 <!-- end of kind -->
4933 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004934 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004935
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004936 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004937 <tr>
4938 <th class="th_name">Property Name</th>
4939 <th class="th_type">Type</th>
4940 <th class="th_description">Description</th>
4941 <th class="th_units">Units</th>
4942 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 <th class="th_tags">Tags</th>
4944 </tr>
4945 </thead>
4946
4947 <tbody>
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004959 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004960 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004961 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004962 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004963 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004964
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004965 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004966
4967 <ul class="entry_type_enum">
4968 <li>
4969 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004970 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004971 </li>
4972 <li>
4973 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004974 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4975output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004976 </li>
4977 <li>
4978 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004979 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4980quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004981 </li>
4982 </ul>
4983
4984 </td> <!-- entry_type -->
4985
4986 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004987 <p>Operation mode for edge
4988enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989 </td>
4990
4991 <td class="entry_units">
4992 </td>
4993
4994 <td class="entry_range">
4995 </td>
4996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004997 <td class="entry_tags">
4998 </td>
4999
5000 </tr>
5001 <tr class="entries_header">
5002 <th class="th_details" colspan="5">Details</th>
5003 </tr>
5004 <tr class="entry_cont">
5005 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005006 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5007enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005008<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005009will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005010camera device will use the highest-quality enhancement algorithms,<wbr/>
5011even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005012not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005013 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005015
5016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005019
5020
5021
5022 <!-- end of kind -->
5023 </tbody>
5024
5025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005026 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005027
5028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005032 <tr>
5033 <th class="th_name">Property Name</th>
5034 <th class="th_type">Type</th>
5035 <th class="th_description">Description</th>
5036 <th class="th_units">Units</th>
5037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 <th class="th_tags">Tags</th>
5039 </tr>
5040 </thead>
5041
5042 <tbody>
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005054 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005055 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005058 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005060 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005061
5062
5063 </td> <!-- entry_type -->
5064
5065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005066 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005067 </td>
5068
5069 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005070 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005071 </td>
5072
5073 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005074 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005075 </td>
5076
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077 <td class="entry_tags">
5078 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005079 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005080 </ul>
5081 </td>
5082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005083 </tr>
5084 <tr class="entries_header">
5085 <th class="th_details" colspan="5">Details</th>
5086 </tr>
5087 <tr class="entry_cont">
5088 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005089 <p>Power for snapshot may use a different scale than
5090for torch mode.<wbr/> Only one entry for torch mode will be
5091used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005092 </td>
5093 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005094
5095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005096 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5097 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098
5099
5100 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005101 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005102 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005103 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005105 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005106
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005107 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005108
5109
5110 </td> <!-- entry_type -->
5111
5112 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005113 <p>Firing time of flash relative to start of
5114exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005115 </td>
5116
5117 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005118 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 </td>
5120
5121 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005122 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123 </td>
5124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125 <td class="entry_tags">
5126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005127 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005128 </ul>
5129 </td>
5130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005131 </tr>
5132 <tr class="entries_header">
5133 <th class="th_details" colspan="5">Details</th>
5134 </tr>
5135 <tr class="entry_cont">
5136 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005137 <p>Clamped to (0,<wbr/> exposure time - flash
5138duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005139 </td>
5140 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005141
5142
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005143 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5144 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005145
5146
5147 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005149 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005152 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005154 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005155
5156 <ul class="entry_type_enum">
5157 <li>
5158 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005159 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005160 </li>
5161 <li>
5162 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005163 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5164for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5165<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005166 </li>
5167 <li>
5168 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005169 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170 </li>
5171 </ul>
5172
5173 </td> <!-- entry_type -->
5174
5175 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005176 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005177 </td>
5178
5179 <td class="entry_units">
5180 </td>
5181
5182 <td class="entry_range">
5183 </td>
5184
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 <td class="entry_tags">
5186 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005187 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005188 </ul>
5189 </td>
5190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005191 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005192 <tr class="entries_header">
5193 <th class="th_details" colspan="5">Details</th>
5194 </tr>
5195 <tr class="entry_cont">
5196 <td class="entry_details" colspan="5">
5197 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005198(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005199<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5200Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5201ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5202<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5203<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5204device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5205control should be used along with AE precapture metering sequence
5206(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5207<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5208for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5209 </td>
5210 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005211
5212
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005213 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5214 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005215
5216
5217
5218 <!-- end of kind -->
5219 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005220 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005221
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005222 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005223 <tr>
5224 <th class="th_name">Property Name</th>
5225 <th class="th_type">Type</th>
5226 <th class="th_description">Description</th>
5227 <th class="th_units">Units</th>
5228 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005229 <th class="th_tags">Tags</th>
5230 </tr>
5231 </thead>
5232
5233 <tbody>
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005247 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005248 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005249 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005250 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005251 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005252
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005253 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005254
5255
5256 </td> <!-- entry_type -->
5257
5258 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005259 <p>Whether this camera has a
5260flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005261 </td>
5262
5263 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005264 boolean (0 = false,<wbr/> otherwise true)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005265 </td>
5266
5267 <td class="entry_range">
5268 </td>
5269
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270 <td class="entry_tags">
5271 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005272 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005273 </ul>
5274 </td>
5275
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005276 </tr>
5277 <tr class="entries_header">
5278 <th class="th_details" colspan="5">Details</th>
5279 </tr>
5280 <tr class="entry_cont">
5281 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005282 <p>If no flash,<wbr/> none of the flash controls do
5283anything.<wbr/> All other metadata should return 0</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005284 </td>
5285 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005286
5287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005288 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5289 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005290
5291
5292 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005293 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005294 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005295 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005297 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005298
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005299 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005300
5301
5302 </td> <!-- entry_type -->
5303
5304 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005305 <p>Time taken before flash can fire
5306again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005307 </td>
5308
5309 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005310 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005311 </td>
5312
5313 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005314 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005315 </td>
5316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005317 <td class="entry_tags">
5318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005319 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005320 </ul>
5321 </td>
5322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005323 </tr>
5324 <tr class="entries_header">
5325 <th class="th_details" colspan="5">Details</th>
5326 </tr>
5327 <tr class="entry_cont">
5328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005329 <p>1 second too long/<wbr/>too short for recharge? Should
5330this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005331 </td>
5332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005333
5334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005337
5338
5339
5340
5341
5342 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005343 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005344 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005345 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005346 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005347 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005348
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005349 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005350
5351
5352 </td> <!-- entry_type -->
5353
5354 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005355 <p>The x,<wbr/>y whitepoint of the
5356flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005357 </td>
5358
5359 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005360 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005361 </td>
5362
5363 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005364 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005365 </td>
5366
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005367 <td class="entry_tags">
5368 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005369 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005370 </ul>
5371 </td>
5372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005373 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005374
5375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005376 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5377 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005378
5379
5380 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005381 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005382 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005383 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005385 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005386
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005387 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005388
5389
5390 </td> <!-- entry_type -->
5391
5392 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005393 <p>Max energy output of the flash for a full
5394power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005395 </td>
5396
5397 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005398 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005399 </td>
5400
5401 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005402 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005403 </td>
5404
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005405 <td class="entry_tags">
5406 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005407 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005408 </ul>
5409 </td>
5410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005411 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005412
5413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005414 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5415 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005416
5417
5418
5419 <!-- end of kind -->
5420 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005421 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005423 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005424 <tr>
5425 <th class="th_name">Property Name</th>
5426 <th class="th_type">Type</th>
5427 <th class="th_description">Description</th>
5428 <th class="th_units">Units</th>
5429 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430 <th class="th_tags">Tags</th>
5431 </tr>
5432 </thead>
5433
5434 <tbody>
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005446 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005447 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005448 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005449 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005450 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005451
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005452 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005453
5454
5455 </td> <!-- entry_type -->
5456
5457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005458 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005459 </td>
5460
5461 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005462 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005463 </td>
5464
5465 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005466 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005467 </td>
5468
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005469 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005470 <ul class="entry_tags">
5471 <li><a href="#tag_V1">V1</a></li>
5472 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473 </td>
5474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005475 </tr>
5476 <tr class="entries_header">
5477 <th class="th_details" colspan="5">Details</th>
5478 </tr>
5479 <tr class="entry_cont">
5480 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005481 <p>Power for snapshot may use a different scale than
5482for torch mode.<wbr/> Only one entry for torch mode will be
5483used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005484 </td>
5485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005486
5487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005490
5491
5492 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005494 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005497 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005499 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005500
5501
5502 </td> <!-- entry_type -->
5503
5504 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005505 <p>Firing time of flash relative to start of
5506exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005507 </td>
5508
5509 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005510 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005511 </td>
5512
5513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005514 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005515 </td>
5516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005517 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005518 <ul class="entry_tags">
5519 <li><a href="#tag_V1">V1</a></li>
5520 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521 </td>
5522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005523 </tr>
5524 <tr class="entries_header">
5525 <th class="th_details" colspan="5">Details</th>
5526 </tr>
5527 <tr class="entry_cont">
5528 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005529 <p>Clamped to (0,<wbr/> exposure time - flash
5530duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005531 </td>
5532 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005533
5534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005535 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5536 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005537
5538
5539 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005540 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005541 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005542 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005543 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005544 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005545
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005546 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005547
5548 <ul class="entry_type_enum">
5549 <li>
5550 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005551 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005552 </li>
5553 <li>
5554 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005555 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5556for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5557<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005558 </li>
5559 <li>
5560 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005561 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005562 </li>
5563 </ul>
5564
5565 </td> <!-- entry_type -->
5566
5567 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005568 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005569 </td>
5570
5571 <td class="entry_units">
5572 </td>
5573
5574 <td class="entry_range">
5575 </td>
5576
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005577 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005578 <ul class="entry_tags">
5579 <li><a href="#tag_BC">BC</a></li>
5580 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005581 </td>
5582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005583 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005584 <tr class="entries_header">
5585 <th class="th_details" colspan="5">Details</th>
5586 </tr>
5587 <tr class="entry_cont">
5588 <td class="entry_details" colspan="5">
5589 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005590(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005591<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5592Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5593ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5594<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5595<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5596device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5597control should be used along with AE precapture metering sequence
5598(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5599<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5600for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5601 </td>
5602 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005603
5604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005605 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5606 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005607
5608
5609 <tr class="entry" id="dynamic_android.flash.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005610 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005611 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005612 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005613 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005614 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005616 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005617
5618 <ul class="entry_type_enum">
5619 <li>
5620 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005621 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005622 </li>
5623 <li>
5624 <span class="entry_type_enum_name">CHARGING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005625 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5626charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005627 </li>
5628 <li>
5629 <span class="entry_type_enum_name">READY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005630 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5631ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005632 </li>
5633 <li>
5634 <span class="entry_type_enum_name">FIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005635 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired
5636for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005637 </li>
5638 </ul>
5639
5640 </td> <!-- entry_type -->
5641
5642 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005643 <p>Current state of the flash
5644unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005645 </td>
5646
5647 <td class="entry_units">
5648 </td>
5649
5650 <td class="entry_range">
5651 </td>
5652
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005653 <td class="entry_tags">
5654 </td>
5655
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005656 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005657
5658
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005659 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5660 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005661
5662
5663
5664 <!-- end of kind -->
5665 </tbody>
5666
5667 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005668 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005669
5670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005671 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005672
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005673 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005674 <tr>
5675 <th class="th_name">Property Name</th>
5676 <th class="th_type">Type</th>
5677 <th class="th_description">Description</th>
5678 <th class="th_units">Units</th>
5679 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680 <th class="th_tags">Tags</th>
5681 </tr>
5682 </thead>
5683
5684 <tbody>
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005696 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005697 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005698 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005699 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005700 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005701
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005702 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005703
5704 <ul class="entry_type_enum">
5705 <li>
5706 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005707 <span class="entry_type_enum_notes"><p>No geometric correction is
5708applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005709 </li>
5710 <li>
5711 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005712 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5713bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005714 </li>
5715 <li>
5716 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005717 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5718quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005719 </li>
5720 </ul>
5721
5722 </td> <!-- entry_type -->
5723
5724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005725 <p>Operating mode of geometric
5726correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005727 </td>
5728
5729 <td class="entry_units">
5730 </td>
5731
5732 <td class="entry_range">
5733 </td>
5734
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005735 <td class="entry_tags">
5736 </td>
5737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005739
5740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005741 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5742 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005743
5744
5745 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005746 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005747 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005748 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005749 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005750 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005751
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005752 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005753
5754
5755 </td> <!-- entry_type -->
5756
5757 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005758 <p>Control the amount of shading correction
5759applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005760 </td>
5761
5762 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005763 unitless: 1-10; 10 is full shading
5764 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005765 </td>
5766
5767 <td class="entry_range">
5768 </td>
5769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005770 <td class="entry_tags">
5771 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005772 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005773 </ul>
5774 </td>
5775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005777
5778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5780 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005781
5782
5783
5784 <!-- end of kind -->
5785 </tbody>
5786
5787 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005788 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005789
5790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005791 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005792
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005793 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005794 <tr>
5795 <th class="th_name">Property Name</th>
5796 <th class="th_type">Type</th>
5797 <th class="th_description">Description</th>
5798 <th class="th_units">Units</th>
5799 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005800 <th class="th_tags">Tags</th>
5801 </tr>
5802 </thead>
5803
5804 <tbody>
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005816 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005817 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005818 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005820 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005821
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005822 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005823
5824 <ul class="entry_type_enum">
5825 <li>
5826 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005827 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5828applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005829 </li>
5830 <li>
5831 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005832 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5833Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005834 </li>
5835 <li>
5836 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005837 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5838quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005839 </li>
5840 </ul>
5841
5842 </td> <!-- entry_type -->
5843
5844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005845 <p>Set operational mode for hot pixel
5846correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005847 </td>
5848
5849 <td class="entry_units">
5850 </td>
5851
5852 <td class="entry_range">
5853 </td>
5854
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005855 <td class="entry_tags">
5856 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005857 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005858 </ul>
5859 </td>
5860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005862
5863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005864 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5865 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005866
5867
5868
5869 <!-- end of kind -->
5870 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005871 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005872
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005873 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005874 <tr>
5875 <th class="th_name">Property Name</th>
5876 <th class="th_type">Type</th>
5877 <th class="th_description">Description</th>
5878 <th class="th_units">Units</th>
5879 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005880 <th class="th_tags">Tags</th>
5881 </tr>
5882 </thead>
5883
5884 <tbody>
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005899 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005902 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005903 <span class="entry_type_container">x</span>
5904
5905 <span class="entry_type_array">
5906 2 x n
5907 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005908 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005909 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005910
5911
5912 </td> <!-- entry_type -->
5913
5914 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005915 <p>Location of hot/<wbr/>defective pixels on
5916sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005917 </td>
5918
5919 <td class="entry_units">
5920 </td>
5921
5922 <td class="entry_range">
5923 </td>
5924
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005925 <td class="entry_tags">
5926 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005927 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005928 </ul>
5929 </td>
5930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005931 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005932
5933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005934 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5935 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005936
5937
5938
5939
5940
5941
5942 <!-- end of kind -->
5943 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005944 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005945
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005946 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005947 <tr>
5948 <th class="th_name">Property Name</th>
5949 <th class="th_type">Type</th>
5950 <th class="th_description">Description</th>
5951 <th class="th_units">Units</th>
5952 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005953 <th class="th_tags">Tags</th>
5954 </tr>
5955 </thead>
5956
5957 <tbody>
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005969 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005970 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005971 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005972 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005973 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005974
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005975 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005976
5977 <ul class="entry_type_enum">
5978 <li>
5979 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005980 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5981applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982 </li>
5983 <li>
5984 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005985 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5986Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005987 </li>
5988 <li>
5989 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005990 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5991quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005992 </li>
5993 </ul>
5994
5995 </td> <!-- entry_type -->
5996
5997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005998 <p>Set operational mode for hot pixel
5999correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006000 </td>
6001
6002 <td class="entry_units">
6003 </td>
6004
6005 <td class="entry_range">
6006 </td>
6007
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006008 <td class="entry_tags">
6009 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006010 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006011 </ul>
6012 </td>
6013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006015
6016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006019
6020
6021
6022 <!-- end of kind -->
6023 </tbody>
6024
6025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006026 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006027
6028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006032 <tr>
6033 <th class="th_name">Property Name</th>
6034 <th class="th_type">Type</th>
6035 <th class="th_description">Description</th>
6036 <th class="th_units">Units</th>
6037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006038 <th class="th_tags">Tags</th>
6039 </tr>
6040 </thead>
6041
6042 <tbody>
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006054 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006055 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006058 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006059 <span class="entry_type_container">x</span>
6060
6061 <span class="entry_type_array">
6062 3
6063 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006064 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006065 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006066
6067
6068 </td> <!-- entry_type -->
6069
6070 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006071 <p>GPS coordinates to include in output JPEG
6072EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006073 </td>
6074
6075 <td class="entry_units">
6076 </td>
6077
6078 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006079 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006080 </td>
6081
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006082 <td class="entry_tags">
6083 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006084 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006085 </ul>
6086 </td>
6087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006089
6090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006093
6094
6095 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006096 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006097 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006098 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006099 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006100 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006101
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006102 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006103
6104
6105 </td> <!-- entry_type -->
6106
6107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006108 <p>32 characters describing GPS algorithm to
6109include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006110 </td>
6111
6112 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006113 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006114 </td>
6115
6116 <td class="entry_range">
6117 </td>
6118
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 <td class="entry_tags">
6120 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006121 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006122 </ul>
6123 </td>
6124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006125 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006126
6127
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006128 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6129 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006130
6131
6132 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006133 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006134 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006135 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006137 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006138
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006139 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006140
6141
6142 </td> <!-- entry_type -->
6143
6144 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006145 <p>Time GPS fix was made to include in
6146EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147 </td>
6148
6149 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006150 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006151 </td>
6152
6153 <td class="entry_range">
6154 </td>
6155
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 <td class="entry_tags">
6157 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006158 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006159 </ul>
6160 </td>
6161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006162 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006163
6164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006165 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6166 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006167
6168
6169 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006170 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006171 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006172 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006173 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006174 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006175
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006177
6178
6179 </td> <!-- entry_type -->
6180
6181 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006182 <p>Orientation of JPEG image to
6183write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184 </td>
6185
6186 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006187 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006188 </td>
6189
6190 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006191 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006192 </td>
6193
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194 <td class="entry_tags">
6195 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006196 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006197 </ul>
6198 </td>
6199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006200 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006201
6202
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006203 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6204 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006205
6206
6207 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006208 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006209 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006210 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006212 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006213
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006214 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006215
6216
6217 </td> <!-- entry_type -->
6218
6219 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006220 <p>Compression quality of the final JPEG
6221image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006222 </td>
6223
6224 <td class="entry_units">
6225 </td>
6226
6227 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006228 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006229 </td>
6230
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006231 <td class="entry_tags">
6232 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006233 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006234 </ul>
6235 </td>
6236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006237 </tr>
6238 <tr class="entries_header">
6239 <th class="th_details" colspan="5">Details</th>
6240 </tr>
6241 <tr class="entry_cont">
6242 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006243 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006244 </td>
6245 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006246
6247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006248 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6249 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006250
6251
6252 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006253 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006254 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006255 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006257 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006258
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006259 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006260
6261
6262 </td> <!-- entry_type -->
6263
6264 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006265 <p>Compression quality of JPEG
6266thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006267 </td>
6268
6269 <td class="entry_units">
6270 </td>
6271
6272 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006273 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006274 </td>
6275
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006276 <td class="entry_tags">
6277 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006278 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006279 </ul>
6280 </td>
6281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006282 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006283
6284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6286 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006287
6288
6289 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006290 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006291 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006292 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006294 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006295 <span class="entry_type_container">x</span>
6296
6297 <span class="entry_type_array">
6298 2
6299 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006300 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301
6302
6303 </td> <!-- entry_type -->
6304
6305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006306 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006307 </td>
6308
6309 <td class="entry_units">
6310 </td>
6311
6312 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006313 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006314 </td>
6315
6316 <td class="entry_tags">
6317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006318 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006319 </ul>
6320 </td>
6321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006322 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006323 <tr class="entries_header">
6324 <th class="th_details" colspan="5">Details</th>
6325 </tr>
6326 <tr class="entry_cont">
6327 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006328 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6329but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006330<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6331the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006332 </td>
6333 </tr>
6334
6335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006338
6339
6340
6341 <!-- end of kind -->
6342 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006343 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006345 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006346 <tr>
6347 <th class="th_name">Property Name</th>
6348 <th class="th_type">Type</th>
6349 <th class="th_description">Description</th>
6350 <th class="th_units">Units</th>
6351 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006352 <th class="th_tags">Tags</th>
6353 </tr>
6354 </thead>
6355
6356 <tbody>
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006368 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006369 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006370 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006371 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006372 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006373 <span class="entry_type_container">x</span>
6374
6375 <span class="entry_type_array">
6376 2 x n
6377 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006378 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006379
6380
6381 </td> <!-- entry_type -->
6382
6383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006384 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006385 </td>
6386
6387 <td class="entry_units">
6388 </td>
6389
6390 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006391 <p>Will include at least one valid resolution,<wbr/> plus
6392(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006393 </td>
6394
6395 <td class="entry_tags">
6396 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006397 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006398 </ul>
6399 </td>
6400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006401 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006402 <tr class="entries_header">
6403 <th class="th_details" colspan="5">Details</th>
6404 </tr>
6405 <tr class="entry_cont">
6406 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006407 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006408<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006409<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6410If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6411<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006412aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006413The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006414in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006415<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
Igor Murashkin0b080452013-12-27 15:30:25 -08006416one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6417and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006418<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006419</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006420 </td>
6421 </tr>
6422
6423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006424 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6425 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006426
6427
6428 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006429 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006430 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006431 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006432 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006433 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006434
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006435 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006436
6437
6438 </td> <!-- entry_type -->
6439
6440 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006441 <p>Maximum size in bytes for the compressed
6442JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006443 </td>
6444
6445 <td class="entry_units">
6446 </td>
6447
6448 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006449 <p>Must be large enough to fit any JPEG produced by
6450the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006451 </td>
6452
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006453 <td class="entry_tags">
6454 </td>
6455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006456 </tr>
6457 <tr class="entries_header">
6458 <th class="th_details" colspan="5">Details</th>
6459 </tr>
6460 <tr class="entry_cont">
6461 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006462 <p>This is used for sizing the gralloc buffers for
6463JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006464 </td>
6465 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006466
6467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470
6471
6472
6473 <!-- end of kind -->
6474 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006475 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006476
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006477 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478 <tr>
6479 <th class="th_name">Property Name</th>
6480 <th class="th_type">Type</th>
6481 <th class="th_description">Description</th>
6482 <th class="th_units">Units</th>
6483 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006484 <th class="th_tags">Tags</th>
6485 </tr>
6486 </thead>
6487
6488 <tbody>
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006500 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006501 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006502 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006503 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006504 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006505 <span class="entry_type_container">x</span>
6506
6507 <span class="entry_type_array">
6508 3
6509 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006510 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006511 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006512
6513
6514 </td> <!-- entry_type -->
6515
6516 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006517 <p>GPS coordinates to include in output JPEG
6518EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006519 </td>
6520
6521 <td class="entry_units">
6522 </td>
6523
6524 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006525 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006526 </td>
6527
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006528 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006529 <ul class="entry_tags">
6530 <li><a href="#tag_BC">BC</a></li>
6531 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006532 </td>
6533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006534 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006535
6536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006537 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6538 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006539
6540
6541 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006542 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006543 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006544 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006545 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006546 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006547
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006548 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006549
6550
6551 </td> <!-- entry_type -->
6552
6553 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006554 <p>32 characters describing GPS algorithm to
6555include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006556 </td>
6557
6558 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006559 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006560 </td>
6561
6562 <td class="entry_range">
6563 </td>
6564
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006565 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006566 <ul class="entry_tags">
6567 <li><a href="#tag_BC">BC</a></li>
6568 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006569 </td>
6570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006572
6573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006576
6577
6578 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006579 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006580 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006583 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006585 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006586
6587
6588 </td> <!-- entry_type -->
6589
6590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006591 <p>Time GPS fix was made to include in
6592EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006593 </td>
6594
6595 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006596 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006597 </td>
6598
6599 <td class="entry_range">
6600 </td>
6601
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006602 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006603 <ul class="entry_tags">
6604 <li><a href="#tag_BC">BC</a></li>
6605 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006606 </td>
6607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006609
6610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006613
6614
6615 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006616 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006617 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006620 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006621
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006622 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006623
6624
6625 </td> <!-- entry_type -->
6626
6627 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006628 <p>Orientation of JPEG image to
6629write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006630 </td>
6631
6632 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006633 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006634 </td>
6635
6636 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006637 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006638 </td>
6639
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006641 <ul class="entry_tags">
6642 <li><a href="#tag_BC">BC</a></li>
6643 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006644 </td>
6645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006646 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006647
6648
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006649 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6650 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006651
6652
6653 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006654 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006655 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006658 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006659
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006660 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006661
6662
6663 </td> <!-- entry_type -->
6664
6665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006666 <p>Compression quality of the final JPEG
6667image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006668 </td>
6669
6670 <td class="entry_units">
6671 </td>
6672
6673 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006674 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006675 </td>
6676
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006677 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006678 <ul class="entry_tags">
6679 <li><a href="#tag_BC">BC</a></li>
6680 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006681 </td>
6682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006683 </tr>
6684 <tr class="entries_header">
6685 <th class="th_details" colspan="5">Details</th>
6686 </tr>
6687 <tr class="entry_cont">
6688 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006689 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006690 </td>
6691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006692
6693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006696
6697
6698 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006699 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006700 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006701 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006703 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006704
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006705 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006706
6707
6708 </td> <!-- entry_type -->
6709
6710 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006711 <p>The size of the compressed JPEG image,<wbr/> in
6712bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006713 </td>
6714
6715 <td class="entry_units">
6716 </td>
6717
6718 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006719 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006720 </td>
6721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006722 <td class="entry_tags">
6723 </td>
6724
6725 </tr>
6726 <tr class="entries_header">
6727 <th class="th_details" colspan="5">Details</th>
6728 </tr>
6729 <tr class="entry_cont">
6730 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006731 <p>If no JPEG output is produced for the request,<wbr/>
6732this must be 0.<wbr/></p>
6733<p>Otherwise,<wbr/> this describes the real size of the compressed
6734JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006735if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6736has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
Igor Murashkin0b080452013-12-27 15:30:25 -08006737the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6738500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006739 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006741
6742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006745
6746
6747 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006748 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006749 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006752 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006753
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006754 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006755
6756
6757 </td> <!-- entry_type -->
6758
6759 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006760 <p>Compression quality of JPEG
6761thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006762 </td>
6763
6764 <td class="entry_units">
6765 </td>
6766
6767 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006768 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006769 </td>
6770
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006771 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006772 <ul class="entry_tags">
6773 <li><a href="#tag_BC">BC</a></li>
6774 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006775 </td>
6776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006778
6779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6781 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006782
6783
6784 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006785 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006786 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006787 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006789 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006790 <span class="entry_type_container">x</span>
6791
6792 <span class="entry_type_array">
6793 2
6794 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006795 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796
6797
6798 </td> <!-- entry_type -->
6799
6800 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006801 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006802 </td>
6803
6804 <td class="entry_units">
6805 </td>
6806
6807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006808 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006809 </td>
6810
6811 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006812 <ul class="entry_tags">
6813 <li><a href="#tag_BC">BC</a></li>
6814 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815 </td>
6816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006817 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006818 <tr class="entries_header">
6819 <th class="th_details" colspan="5">Details</th>
6820 </tr>
6821 <tr class="entry_cont">
6822 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006823 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6824but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006825<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6826the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006827 </td>
6828 </tr>
6829
6830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006833
6834
6835
6836 <!-- end of kind -->
6837 </tbody>
6838
6839 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006840 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006841
6842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006843 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006844
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006845 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006846 <tr>
6847 <th class="th_name">Property Name</th>
6848 <th class="th_type">Type</th>
6849 <th class="th_description">Description</th>
6850 <th class="th_units">Units</th>
6851 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006852 <th class="th_tags">Tags</th>
6853 </tr>
6854 </thead>
6855
6856 <tbody>
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006868 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006869 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006870 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006871 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006872 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006873
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006874 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006875
6876
6877 </td> <!-- entry_type -->
6878
6879 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006880 <p>The ratio of lens focal length to the effective
6881aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006882 </td>
6883
6884 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006885 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006886 </td>
6887
6888 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006889 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006890 </td>
6891
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006892 <td class="entry_tags">
6893 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006894 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006895 </ul>
6896 </td>
6897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006898 </tr>
6899 <tr class="entries_header">
6900 <th class="th_details" colspan="5">Details</th>
6901 </tr>
6902 <tr class="entry_cont">
6903 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006904 <p>This will only be supported on the camera devices that
6905have variable aperture lens.<wbr/> The aperture value can only be
6906one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6907<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6908this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6909<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6910to achieve manual exposure control.<wbr/></p>
6911<p>The requested aperture value may take several frames to reach the
6912requested value; the camera device will report the current (intermediate)
6913aperture size in capture result metadata while the aperture is changing.<wbr/></p>
6914<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6915the ON modes,<wbr/> this will be overridden by the camera device
6916auto-exposure algorithm,<wbr/> the overridden values are then provided
6917back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006918 </td>
6919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006920
6921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6923 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006924
6925
6926 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006927 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006928 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006929 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006930 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006931 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006932
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006933 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006934
6935
6936 </td> <!-- entry_type -->
6937
6938 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006939 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006940 </td>
6941
6942 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006943 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006944 </td>
6945
6946 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006947 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006948 </td>
6949
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950 <td class="entry_tags">
6951 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006952 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006953 </ul>
6954 </td>
6955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006956 </tr>
6957 <tr class="entries_header">
6958 <th class="th_details" colspan="5">Details</th>
6959 </tr>
6960 <tr class="entry_cont">
6961 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006962 <p>This will not be supported on most camera devices.<wbr/> On devices
6963where this is supported,<wbr/> this may only be set to one of the
6964values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6965<p>Lens filters are typically used to lower the amount of light the
6966sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6967step is the standard logarithmic representation,<wbr/> which are
6968non-negative,<wbr/> and inversely proportional to the amount of light
6969hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6970in no reduction of the incoming light,<wbr/> and setting this to 2 would
6971mean that the filter is set to reduce incoming light by two stops
6972(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006973 </td>
6974 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006975
6976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006977 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6978 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979
6980
6981 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006983 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006986 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006987
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006988 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006989
6990
6991 </td> <!-- entry_type -->
6992
6993 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08006994 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006995 </td>
6996
6997 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006998 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006999 </td>
7000
7001 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007002 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007003 </td>
7004
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007005 <td class="entry_tags">
7006 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007007 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007008 </ul>
7009 </td>
7010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007011 </tr>
7012 <tr class="entries_header">
7013 <th class="th_details" colspan="5">Details</th>
7014 </tr>
7015 <tr class="entry_cont">
7016 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007017 <p>This setting controls the physical focal length of the camera
7018device's lens.<wbr/> Changing the focal length changes the field of
7019view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7020<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7021setting won't be applied instantaneously,<wbr/> and it may take several
7022frames before the lens can move to the requested focal length.<wbr/>
7023While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7024be set to MOVING.<wbr/></p>
7025<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007026 </td>
7027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007028
7029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007030 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7031 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007032
7033
7034 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007035 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007036 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007037 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007038 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007039 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007040
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007041 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007042
7043
7044 </td> <!-- entry_type -->
7045
7046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007047 <p>Distance to plane of sharpest focus,<wbr/>
7048measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007049 </td>
7050
7051 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007052 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007053 </td>
7054
7055 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007056 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007057 </td>
7058
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007059 <td class="entry_tags">
7060 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007061 <li><a href="#tag_BC">BC</a></li>
7062 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007063 </ul>
7064 </td>
7065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007066 </tr>
7067 <tr class="entries_header">
7068 <th class="th_details" colspan="5">Details</th>
7069 </tr>
7070 <tr class="entry_cont">
7071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007072 <p>0 = infinity focus.<wbr/> Used value should be clamped
7073to (0,<wbr/>minimum focus distance)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007074 </td>
7075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007076
7077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080
7081
7082 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007083 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007084 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007087 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007089 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007090
7091 <ul class="entry_type_enum">
7092 <li>
7093 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007094 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007095 </li>
7096 <li>
7097 <span class="entry_type_enum_name">ON</span>
7098 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007099 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007100 </li>
7101 </ul>
7102
7103 </td> <!-- entry_type -->
7104
7105 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007106 <p>Sets whether the camera device uses optical image stabilization (OIS)
7107when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007108 </td>
7109
7110 <td class="entry_units">
7111 </td>
7112
7113 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007114 <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 -08007115 </td>
7116
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007117 <td class="entry_tags">
7118 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007119 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007120 </ul>
7121 </td>
7122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007123 </tr>
7124 <tr class="entries_header">
7125 <th class="th_details" colspan="5">Details</th>
7126 </tr>
7127 <tr class="entry_cont">
7128 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007129 <p>OIS is used to compensate for motion blur due to small movements of
7130the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7131use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7132allows for longer exposure times before camera shake becomes
7133apparent.<wbr/></p>
7134<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007135 </td>
7136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007137
7138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7140 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007141
7142
7143
7144 <!-- end of kind -->
7145 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007146 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007148 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007149 <tr>
7150 <th class="th_name">Property Name</th>
7151 <th class="th_type">Type</th>
7152 <th class="th_description">Description</th>
7153 <th class="th_units">Units</th>
7154 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007155 <th class="th_tags">Tags</th>
7156 </tr>
7157 </thead>
7158
7159 <tbody>
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007173 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007174 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007175 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007176 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007177 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007178 <span class="entry_type_container">x</span>
7179
7180 <span class="entry_type_array">
7181 n
7182 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007183 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007184
7185
7186 </td> <!-- entry_type -->
7187
7188 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007189 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007190values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007191 </td>
7192
7193 <td class="entry_units">
7194 </td>
7195
7196 <td class="entry_range">
Zhijun He1b58d382014-01-10 10:22:53 -08007197 <p>one entry required,<wbr/> &amp;&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007198 </td>
7199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007200 <td class="entry_tags">
7201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007202 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007203 </ul>
7204 </td>
7205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007206 </tr>
7207 <tr class="entries_header">
7208 <th class="th_details" colspan="5">Details</th>
7209 </tr>
7210 <tr class="entry_cont">
7211 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007212 <p>If the camera device doesn't support variable apertures,<wbr/>
7213listed value will be the fixed aperture.<wbr/></p>
7214<p>If the camera device supports variable apertures,<wbr/> the aperture value
7215in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007216 </td>
7217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007218
7219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7221 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007222
7223
7224 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007225 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007226 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007227 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007228 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007229 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007230 <span class="entry_type_container">x</span>
7231
7232 <span class="entry_type_array">
7233 n
7234 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007235 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236
7237
7238 </td> <!-- entry_type -->
7239
7240 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007241 <p>List of supported neutral density filter values for
7242<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007243 </td>
7244
7245 <td class="entry_units">
7246 </td>
7247
7248 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007249 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007250 </td>
7251
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007252 <td class="entry_tags">
7253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007254 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007255 </ul>
7256 </td>
7257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007258 </tr>
7259 <tr class="entries_header">
7260 <th class="th_details" colspan="5">Details</th>
7261 </tr>
7262 <tr class="entry_cont">
7263 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007264 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7265availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7266list contains only the exact filter density values available on
7267this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007268 </td>
7269 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007270
7271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007272 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7273 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007274
7275
7276 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007277 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007278 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007280 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007281 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282 <span class="entry_type_container">x</span>
7283
7284 <span class="entry_type_array">
7285 n
7286 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007287 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007288 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007289
7290
7291 </td> <!-- entry_type -->
7292
7293 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007294 <p>The available focal lengths for this device for use with
7295<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007296 </td>
7297
7298 <td class="entry_units">
7299 </td>
7300
7301 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007302 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7303contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007304 </td>
7305
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007306 <td class="entry_tags">
7307 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007308 <li><a href="#tag_BC">BC</a></li>
7309 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007310 </ul>
7311 </td>
7312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007313 </tr>
7314 <tr class="entries_header">
7315 <th class="th_details" colspan="5">Details</th>
7316 </tr>
7317 <tr class="entry_cont">
7318 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007319 <p>If optical zoom is not supported,<wbr/> this will only report
7320a single value corresponding to the static focal length of the
7321device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7322by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007323 </td>
7324 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007325
7326
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007327 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7328 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007329
7330
7331 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007332 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007333 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007334 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007335 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007336 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007337 <span class="entry_type_container">x</span>
7338
7339 <span class="entry_type_array">
7340 n
7341 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007342 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007343 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007344
7345
7346 </td> <!-- entry_type -->
7347
7348 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007349 <p>List containing a subset of the optical image
7350stabilization (OIS) modes specified in
7351<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 -08007352 </td>
7353
7354 <td class="entry_units">
7355 </td>
7356
7357 <td class="entry_range">
7358 </td>
7359
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007360 <td class="entry_tags">
7361 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007362 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007363 </ul>
7364 </td>
7365
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007366 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007367 <tr class="entries_header">
7368 <th class="th_details" colspan="5">Details</th>
7369 </tr>
7370 <tr class="entry_cont">
7371 <td class="entry_details" colspan="5">
7372 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7373contain only OFF.<wbr/></p>
7374 </td>
7375 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007376
7377
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007378 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7379 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007380
7381
7382 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007383 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007384 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007385 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007387 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007388 <span class="entry_type_container">x</span>
7389
7390 <span class="entry_type_array">
7391 2 x 3 x n x m
7392 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007393 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007394 <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 -08007395
7396
7397 </td> <!-- entry_type -->
7398
7399 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007400 <p>A low-resolution map for correction of
7401geometric distortions and chromatic aberrations,<wbr/> per
7402color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007403 </td>
7404
7405 <td class="entry_units">
7406 </td>
7407
7408 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007409 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007410 </td>
7411
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007412 <td class="entry_tags">
7413 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007414 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007415 </ul>
7416 </td>
7417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007418 </tr>
7419 <tr class="entries_header">
7420 <th class="th_details" colspan="5">Details</th>
7421 </tr>
7422 <tr class="entry_cont">
7423 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007424 <p>[DNG wants a function instead].<wbr/> What's easiest
7425for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7426j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7427j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7428entry 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 -08007429 </td>
7430 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007431
7432
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007433 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7434 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007435
7436
7437 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007438 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007439 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007440 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007441 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007442 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007443 <span class="entry_type_container">x</span>
7444
7445 <span class="entry_type_array">
7446 2
7447 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007448 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007449 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007450
7451
7452 </td> <!-- entry_type -->
7453
7454 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007455 <p>Dimensions of geometric correction
7456map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 </td>
7458
7459 <td class="entry_units">
7460 </td>
7461
7462 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007463 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007464 </td>
7465
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007466 <td class="entry_tags">
7467 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007468 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007469 </ul>
7470 </td>
7471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007472 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007473
7474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7476 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007477
7478
7479 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007480 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007481 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007482 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007483 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007484 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007485
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007486 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007487
7488
7489 </td> <!-- entry_type -->
7490
7491 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007492 <p>Hyperfocal distance for this lens; set to
74930 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007494 </td>
7495
7496 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007497 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007498 </td>
7499
7500 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007501 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007502 </td>
7503
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007504 <td class="entry_tags">
7505 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007506 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007507 </ul>
7508 </td>
7509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007510 </tr>
7511 <tr class="entries_header">
7512 <th class="th_details" colspan="5">Details</th>
7513 </tr>
7514 <tr class="entry_cont">
7515 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007516 <p>The hyperfocal distance is used for the old
7517API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007518 </td>
7519 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007520
7521
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007522 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7523 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007524
7525
7526 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007527 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007528 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007529 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007530 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007531 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007532
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007533 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007534
7535
7536 </td> <!-- entry_type -->
7537
7538 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007539 <p>Shortest distance from frontmost surface
7540of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007541 </td>
7542
7543 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007544 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007545 </td>
7546
7547 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007548 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007549 </td>
7550
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007551 <td class="entry_tags">
7552 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007553 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007554 </ul>
7555 </td>
7556
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007557 </tr>
7558 <tr class="entries_header">
7559 <th class="th_details" colspan="5">Details</th>
7560 </tr>
7561 <tr class="entry_cont">
7562 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007563 <p>If the lens is fixed-focus,<wbr/> this should be
75640</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007565 </td>
7566 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007567
7568
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007569 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7570 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007571
7572
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007573 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007574 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007575 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007576 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007577 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007578 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007579 <span class="entry_type_container">x</span>
7580
7581 <span class="entry_type_array">
7582 2
7583 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007584 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007585 <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 -08007586
7587
7588 </td> <!-- entry_type -->
7589
7590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007591 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007592 </td>
7593
7594 <td class="entry_units">
7595 </td>
7596
7597 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007598 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007599 </td>
7600
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007601 <td class="entry_tags">
7602 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007603 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007604 </ul>
7605 </td>
7606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007607 </tr>
7608 <tr class="entries_header">
7609 <th class="th_details" colspan="5">Details</th>
7610 </tr>
7611 <tr class="entry_cont">
7612 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007613 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7614must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007615 </td>
7616 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007617
7618
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007619 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7620 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007621
7622
7623
7624
7625
7626 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007627 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007628 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007633 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007634
7635 <ul class="entry_type_enum">
7636 <li>
7637 <span class="entry_type_enum_name">FRONT</span>
7638 </li>
7639 <li>
7640 <span class="entry_type_enum_name">BACK</span>
7641 </li>
7642 </ul>
7643
7644 </td> <!-- entry_type -->
7645
7646 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007647 <p>Direction the camera faces relative to
7648device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007649 </td>
7650
7651 <td class="entry_units">
7652 </td>
7653
7654 <td class="entry_range">
7655 </td>
7656
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007657 <td class="entry_tags">
7658 </td>
7659
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007660 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007661
7662
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007663 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7664 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007665
7666
7667 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007668 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007669 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007670 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007671 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007672 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007673 <span class="entry_type_container">x</span>
7674
7675 <span class="entry_type_array">
7676 2
7677 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007678 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007679 <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 -08007680
7681
7682 </td> <!-- entry_type -->
7683
7684 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007685 <p>Relative angle of camera optical axis to the
7686perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007687 </td>
7688
7689 <td class="entry_units">
7690 </td>
7691
7692 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007693 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007694 </td>
7695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007696 <td class="entry_tags">
7697 <ul class="entry_tags">
7698 <li><a href="#tag_ADV">ADV</a></li>
7699 </ul>
7700 </td>
7701
7702 </tr>
7703 <tr class="entries_header">
7704 <th class="th_details" colspan="5">Details</th>
7705 </tr>
7706 <tr class="entry_cont">
7707 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007708 <p>Examples:</p>
7709<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007710is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007711<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007712device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007713<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7714the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007715<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007716direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007717 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007718 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007719
7720
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007721 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7722 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007723
7724
7725 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007726 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007727 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007728 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007729 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007730 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007731 <span class="entry_type_container">x</span>
7732
7733 <span class="entry_type_array">
7734 3, location in mm, in the sensor coordinate
7735 system
7736 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007737 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007738
7739
7740 </td> <!-- entry_type -->
7741
7742 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007743 <p>Coordinates of camera optical axis on
7744device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007745 </td>
7746
7747 <td class="entry_units">
7748 </td>
7749
7750 <td class="entry_range">
7751 </td>
7752
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007753 <td class="entry_tags">
7754 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007755 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007756 </ul>
7757 </td>
7758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007759 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007760
7761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007762 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7763 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007764
7765
7766
7767 <!-- end of kind -->
7768 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007769 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007770
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007771 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007772 <tr>
7773 <th class="th_name">Property Name</th>
7774 <th class="th_type">Type</th>
7775 <th class="th_description">Description</th>
7776 <th class="th_units">Units</th>
7777 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007778 <th class="th_tags">Tags</th>
7779 </tr>
7780 </thead>
7781
7782 <tbody>
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007794 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007795 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007796 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007797 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007798 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007799
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007800 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007801
7802
7803 </td> <!-- entry_type -->
7804
7805 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007806 <p>The ratio of lens focal length to the effective
7807aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007808 </td>
7809
7810 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007811 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007812 </td>
7813
7814 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007815 <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 -08007816 </td>
7817
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007818 <td class="entry_tags">
7819 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007820 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007821 </ul>
7822 </td>
7823
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007824 </tr>
7825 <tr class="entries_header">
7826 <th class="th_details" colspan="5">Details</th>
7827 </tr>
7828 <tr class="entry_cont">
7829 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007830 <p>This will only be supported on the camera devices that
7831have variable aperture lens.<wbr/> The aperture value can only be
7832one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7833<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7834this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7835<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7836to achieve manual exposure control.<wbr/></p>
7837<p>The requested aperture value may take several frames to reach the
7838requested value; the camera device will report the current (intermediate)
7839aperture size in capture result metadata while the aperture is changing.<wbr/></p>
7840<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7841the ON modes,<wbr/> this will be overridden by the camera device
7842auto-exposure algorithm,<wbr/> the overridden values are then provided
7843back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007844 </td>
7845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007846
7847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7849 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007850
7851
7852 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007854 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007857 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007858
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007859 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007860
7861
7862 </td> <!-- entry_type -->
7863
7864 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007865 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007866 </td>
7867
7868 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007869 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007870 </td>
7871
7872 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007873 <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 -08007874 </td>
7875
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007876 <td class="entry_tags">
7877 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007878 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007879 </ul>
7880 </td>
7881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007882 </tr>
7883 <tr class="entries_header">
7884 <th class="th_details" colspan="5">Details</th>
7885 </tr>
7886 <tr class="entry_cont">
7887 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007888 <p>This will not be supported on most camera devices.<wbr/> On devices
7889where this is supported,<wbr/> this may only be set to one of the
7890values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7891<p>Lens filters are typically used to lower the amount of light the
7892sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7893step is the standard logarithmic representation,<wbr/> which are
7894non-negative,<wbr/> and inversely proportional to the amount of light
7895hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7896in no reduction of the incoming light,<wbr/> and setting this to 2 would
7897mean that the filter is set to reduce incoming light by two stops
7898(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007899 </td>
7900 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007901
7902
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007903 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7904 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007905
7906
7907 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007908 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007909 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007910 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007911 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007912 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007914 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007915
7916
7917 </td> <!-- entry_type -->
7918
7919 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007920 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007921 </td>
7922
7923 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007924 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007925 </td>
7926
7927 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007928 <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 -08007929 </td>
7930
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007931 <td class="entry_tags">
7932 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007933 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007934 </ul>
7935 </td>
7936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007937 </tr>
7938 <tr class="entries_header">
7939 <th class="th_details" colspan="5">Details</th>
7940 </tr>
7941 <tr class="entry_cont">
7942 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007943 <p>This setting controls the physical focal length of the camera
7944device's lens.<wbr/> Changing the focal length changes the field of
7945view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7946<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
7947setting won't be applied instantaneously,<wbr/> and it may take several
7948frames before the lens can move to the requested focal length.<wbr/>
7949While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7950be set to MOVING.<wbr/></p>
7951<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007952 </td>
7953 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007954
7955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007956 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7957 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007958
7959
7960 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007961 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007962 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007963 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007964 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007965 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007966
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007967 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007968
7969
7970 </td> <!-- entry_type -->
7971
7972 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007973 <p>Distance to plane of sharpest focus,<wbr/>
7974measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007975 </td>
7976
7977 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007978 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007979 </td>
7980
7981 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007982 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007983 </td>
7984
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007985 <td class="entry_tags">
7986 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007987 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007988 </ul>
7989 </td>
7990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007991 </tr>
7992 <tr class="entries_header">
7993 <th class="th_details" colspan="5">Details</th>
7994 </tr>
7995 <tr class="entry_cont">
7996 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007997 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007998 </td>
7999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008000
8001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008004
8005
8006 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008007 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008008 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008009 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008010 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008011 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008012 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008013
Zhijun He50451ad2013-09-26 10:27:47 -07008014 <span class="entry_type_array">
8015 2
8016 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008017 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008018 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008019
8020
8021 </td> <!-- entry_type -->
8022
8023 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008024 <p>The range of scene distances that are in
8025sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008026 </td>
8027
8028 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008029 pair of focus distances in diopters: (near,<wbr/>
8030 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008031 </td>
8032
8033 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008034 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008035 </td>
8036
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008037 <td class="entry_tags">
8038 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008039 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008040 </ul>
8041 </td>
8042
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008043 </tr>
8044 <tr class="entries_header">
8045 <th class="th_details" colspan="5">Details</th>
8046 </tr>
8047 <tr class="entry_cont">
8048 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008049 <p>If variable focus not supported,<wbr/> can still report
8050fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008051 </td>
8052 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008053
8054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008055 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8056 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008057
8058
8059 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008060 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008061 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008064 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008066 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008067
8068 <ul class="entry_type_enum">
8069 <li>
8070 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008071 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </li>
8073 <li>
8074 <span class="entry_type_enum_name">ON</span>
8075 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008076 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008077 </li>
8078 </ul>
8079
8080 </td> <!-- entry_type -->
8081
8082 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008083 <p>Sets whether the camera device uses optical image stabilization (OIS)
8084when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008085 </td>
8086
8087 <td class="entry_units">
8088 </td>
8089
8090 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008091 <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 -08008092 </td>
8093
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008094 <td class="entry_tags">
8095 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008096 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008097 </ul>
8098 </td>
8099
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008100 </tr>
8101 <tr class="entries_header">
8102 <th class="th_details" colspan="5">Details</th>
8103 </tr>
8104 <tr class="entry_cont">
8105 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008106 <p>OIS is used to compensate for motion blur due to small movements of
8107the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8108use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8109allows for longer exposure times before camera shake becomes
8110apparent.<wbr/></p>
8111<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008112 </td>
8113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008114
8115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8117 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008118
8119
8120 <tr class="entry" id="dynamic_android.lens.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008121 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008122 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008123 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008124 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008125 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008126
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008127 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008128
8129 <ul class="entry_type_enum">
8130 <li>
8131 <span class="entry_type_enum_name">STATIONARY</span>
8132 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008133 <li>
8134 <span class="entry_type_enum_name">MOVING</span>
8135 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008136 </ul>
8137
8138 </td> <!-- entry_type -->
8139
8140 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008141 <p>Current lens status</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008142 </td>
8143
8144 <td class="entry_units">
8145 </td>
8146
8147 <td class="entry_range">
8148 </td>
8149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008150 <td class="entry_tags">
8151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008152 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008153 </ul>
8154 </td>
8155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008157
8158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008161
8162
8163
8164 <!-- end of kind -->
8165 </tbody>
8166
8167 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008168 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008169
8170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008171 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008172
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008173 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008174 <tr>
8175 <th class="th_name">Property Name</th>
8176 <th class="th_type">Type</th>
8177 <th class="th_description">Description</th>
8178 <th class="th_units">Units</th>
8179 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008180 <th class="th_tags">Tags</th>
8181 </tr>
8182 </thead>
8183
8184 <tbody>
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008196 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008197 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008198 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008199 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008200 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008201
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008202 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008203
8204 <ul class="entry_type_enum">
8205 <li>
8206 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008207 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008208 </li>
8209 <li>
8210 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008211 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8212output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008213 </li>
8214 <li>
8215 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008216 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8217quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008218 </li>
8219 </ul>
8220
8221 </td> <!-- entry_type -->
8222
8223 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008224 <p>Mode of operation for the noise reduction
8225algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008226 </td>
8227
8228 <td class="entry_units">
8229 </td>
8230
8231 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008232 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008233 </td>
8234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008235 <td class="entry_tags">
8236 <ul class="entry_tags">
8237 <li><a href="#tag_V1">V1</a></li>
8238 </ul>
8239 </td>
8240
8241 </tr>
8242 <tr class="entries_header">
8243 <th class="th_details" colspan="5">Details</th>
8244 </tr>
8245 <tr class="entry_cont">
8246 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008247 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8248will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008249<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8250will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8251will use the highest-quality noise filtering algorithms,<wbr/>
8252even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008253slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008254 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008255 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008256
8257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008258 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8259 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008260
8261
8262 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008263 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008264 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008266 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008267 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008268
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008269 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008270
8271
8272 </td> <!-- entry_type -->
8273
8274 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008275 <p>Control the amount of noise reduction
8276applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008277 </td>
8278
8279 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008280 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008281 </td>
8282
8283 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008284 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008285 </td>
8286
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008287 <td class="entry_tags">
8288 </td>
8289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008290 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008291
8292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008293 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8294 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008295
8296
8297
8298 <!-- end of kind -->
8299 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008300 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008301
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008302 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008303 <tr>
8304 <th class="th_name">Property Name</th>
8305 <th class="th_type">Type</th>
8306 <th class="th_description">Description</th>
8307 <th class="th_units">Units</th>
8308 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008309 <th class="th_tags">Tags</th>
8310 </tr>
8311 </thead>
8312
8313 <tbody>
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008325 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008326 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008327 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008328 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008329 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008330
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008331 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008332
8333 <ul class="entry_type_enum">
8334 <li>
8335 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008336 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008337 </li>
8338 <li>
8339 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008340 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8341output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008342 </li>
8343 <li>
8344 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008345 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8346quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008347 </li>
8348 </ul>
8349
8350 </td> <!-- entry_type -->
8351
8352 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008353 <p>Mode of operation for the noise reduction
8354algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008355 </td>
8356
8357 <td class="entry_units">
8358 </td>
8359
8360 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008361 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008362 </td>
8363
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008364 <td class="entry_tags">
8365 <ul class="entry_tags">
8366 <li><a href="#tag_V1">V1</a></li>
8367 </ul>
8368 </td>
8369
8370 </tr>
8371 <tr class="entries_header">
8372 <th class="th_details" colspan="5">Details</th>
8373 </tr>
8374 <tr class="entry_cont">
8375 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008376 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8377will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008378<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8379will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8380will use the highest-quality noise filtering algorithms,<wbr/>
8381even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008382slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008383 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008384 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008385
8386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008387 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8388 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008389
8390
8391
8392 <!-- end of kind -->
8393 </tbody>
8394
8395 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008396 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008397
8398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008399 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008400
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008401 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008402 <tr>
8403 <th class="th_name">Property Name</th>
8404 <th class="th_type">Type</th>
8405 <th class="th_description">Description</th>
8406 <th class="th_units">Units</th>
8407 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008408 <th class="th_tags">Tags</th>
8409 </tr>
8410 </thead>
8411
8412 <tbody>
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008424 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008425 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008426 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008427 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008428 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008429
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008430 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008431
8432
8433 </td> <!-- entry_type -->
8434
8435 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008436 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008437scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008438region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8439and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008440 </td>
8441
8442 <td class="entry_units">
8443 </td>
8444
8445 <td class="entry_range">
8446 </td>
8447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008448 <td class="entry_tags">
8449 </td>
8450
8451 </tr>
8452 <tr class="entries_header">
8453 <th class="th_details" colspan="5">Details</th>
8454 </tr>
8455 <tr class="entry_cont">
8456 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008457 <p>Normalized coordinates refer to those in the
8458(-1000,<wbr/>1000) range mentioned in the
8459android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008460<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008461sensor array-relative coordinates for all region data.<wbr/> Does
8462not need to be listed in static metadata.<wbr/> Support will be
8463removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008464 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008465 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008466
8467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008470
8471
8472 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008473 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008474 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008475 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008477 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008478
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008479 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008480
8481
8482 </td> <!-- entry_type -->
8483
8484 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008485 <p>If set to 1,<wbr/> then the camera service always
8486switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8487trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008488 </td>
8489
8490 <td class="entry_units">
8491 </td>
8492
8493 <td class="entry_range">
8494 </td>
8495
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008496 <td class="entry_tags">
8497 </td>
8498
8499 </tr>
8500 <tr class="entries_header">
8501 <th class="th_details" colspan="5">Details</th>
8502 </tr>
8503 <tr class="entry_cont">
8504 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008505 <p>HAL implementations should implement AF trigger
8506modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8507CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8508not need to be listed in static metadata.<wbr/> Support will be
8509removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008510 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008511 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008512
8513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008514 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8515 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008516
8517
8518 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008519 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008520 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008521 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008522 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008523 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008524
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008525 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008526
8527
8528 </td> <!-- entry_type -->
8529
8530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008531 <p>If set to 1,<wbr/> the camera service uses
8532CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8533HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8534shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008535 </td>
8536
8537 <td class="entry_units">
8538 </td>
8539
8540 <td class="entry_range">
8541 </td>
8542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008543 <td class="entry_tags">
8544 </td>
8545
8546 </tr>
8547 <tr class="entries_header">
8548 <th class="th_details" colspan="5">Details</th>
8549 </tr>
8550 <tr class="entry_cont">
8551 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008552 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008553to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008554zero-shutter-lag,<wbr/> instead of relying on an explicit
8555format setting.<wbr/> Does not need to be listed in static
8556metadata.<wbr/> Support will be removed in future versions of
8557camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008558 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008559 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008560
8561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008562 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8563 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008564
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008565
8566 <tr class="entry" id="static_android.quirks.usePartialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008567 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008568 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008569 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008570 <td class="entry_type">
8571 <span class="entry_type_name">byte</span>
8572
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008573 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008574
8575
8576 </td> <!-- entry_type -->
8577
8578 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008579 <p>If set to 1,<wbr/> the HAL will always split result
8580metadata for a single capture into multiple buffers,<wbr/>
8581returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008582 </td>
8583
8584 <td class="entry_units">
8585 </td>
8586
8587 <td class="entry_range">
8588 </td>
8589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008590 <td class="entry_tags">
8591 </td>
8592
8593 </tr>
8594 <tr class="entries_header">
8595 <th class="th_details" colspan="5">Details</th>
8596 </tr>
8597 <tr class="entry_cont">
8598 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008599 <p>Does not need to be listed in static
8600metadata.<wbr/> Support for partial results will be reworked in
8601future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008602working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008603consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008604 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008605 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008606
8607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008608 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8609 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008610
8611
8612
8613 <!-- end of kind -->
8614 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008615 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008616
8617 <thead class="entries_header">
8618 <tr>
8619 <th class="th_name">Property Name</th>
8620 <th class="th_type">Type</th>
8621 <th class="th_description">Description</th>
8622 <th class="th_units">Units</th>
8623 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008624 <th class="th_tags">Tags</th>
8625 </tr>
8626 </thead>
8627
8628 <tbody>
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639 <tr class="entry" id="dynamic_android.quirks.partialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008640 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008641 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008642 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008643 <td class="entry_type">
8644 <span class="entry_type_name entry_type_name_enum">byte</span>
8645
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008646 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008647
8648 <ul class="entry_type_enum">
8649 <li>
8650 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008651 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8652for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008653 </li>
8654 <li>
8655 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008656 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8657capture.<wbr/> More result buffers for this capture will be sent
8658by the HAL,<wbr/> the last of which will be marked
8659FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008660 </li>
8661 </ul>
8662
8663 </td> <!-- entry_type -->
8664
8665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008666 <p>Whether a result given to the framework is the
8667final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008668subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008669values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008670 </td>
8671
8672 <td class="entry_units">
8673 </td>
8674
8675 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008676 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008677 </td>
8678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008679 <td class="entry_tags">
8680 </td>
8681
8682 </tr>
8683 <tr class="entries_header">
8684 <th class="th_details" colspan="5">Details</th>
8685 </tr>
8686 <tr class="entry_cont">
8687 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008688 <p>The entries in the result metadata buffers for a
8689single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008690FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008691requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8692always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8693before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8694in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8695capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8696only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008697 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008698 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008699
8700
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008701 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8702 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008703
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008704
8705
8706 <!-- end of kind -->
8707 </tbody>
8708
8709 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008710 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008711
8712
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008713 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008714
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008715 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008716 <tr>
8717 <th class="th_name">Property Name</th>
8718 <th class="th_type">Type</th>
8719 <th class="th_description">Description</th>
8720 <th class="th_units">Units</th>
8721 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008722 <th class="th_tags">Tags</th>
8723 </tr>
8724 </thead>
8725
8726 <tbody>
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008738 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008739 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008740 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008741 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008742 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008743
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008744 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008745
8746
8747 </td> <!-- entry_type -->
8748
8749 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008750 <p>A frame counter set by the framework.<wbr/> Must
8751be maintained unchanged in output frame.<wbr/> This value monotonically
8752increases with every new result (that is,<wbr/> each new result has a unique
8753frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008754 </td>
8755
8756 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008757 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008758 </td>
8759
8760 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008761 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008762 </td>
8763
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008764 <td class="entry_tags">
8765 </td>
8766
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008767 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008768
8769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008770 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8771 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008772
8773
8774 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008775 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008776 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008777 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008778 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008779 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008780
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008781 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008782
8783
8784 </td> <!-- entry_type -->
8785
8786 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008787 <p>An application-specified ID for the current
8788request.<wbr/> Must be maintained unchanged in output
8789frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008790 </td>
8791
8792 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008793 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008794 </td>
8795
8796 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008797 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008798 </td>
8799
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008800 <td class="entry_tags">
8801 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008802 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008803 </ul>
8804 </td>
8805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008806 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008807
8808
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008809 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8810 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008811
8812
8813 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008814 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008815 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008816 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008817 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008818 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008819 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008820
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008821 <span class="entry_type_array">
8822 n
8823 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008824 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008825
8826
8827 </td> <!-- entry_type -->
8828
8829 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008830 <p>List which camera reprocess stream is used
8831for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008832 </td>
8833
8834 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008835 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008836 </td>
8837
8838 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008839 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8840reprocess stream ID.<wbr/></p>
8841<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8842reprocess streams may be included in a single request; they
8843must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008844 </td>
8845
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008846 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008847 <ul class="entry_tags">
8848 <li><a href="#tag_HAL2">HAL2</a></li>
8849 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008850 </td>
8851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008852 </tr>
8853 <tr class="entries_header">
8854 <th class="th_details" colspan="5">Details</th>
8855 </tr>
8856 <tr class="entry_cont">
8857 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008858 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008859REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008860 </td>
8861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008862
8863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008864 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8865 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008866
8867
8868 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008869 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008870 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008871 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008872 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008873 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008874
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008875 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008876
8877 <ul class="entry_type_enum">
8878 <li>
8879 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008880 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8881for application-bound buffer data.<wbr/> If no
8882application-bound streams exist,<wbr/> no frame should be
8883placed in the output frame queue.<wbr/> If such streams
8884exist,<wbr/> a frame should be placed on the output queue
8885with null metadata but with the necessary output buffer
8886information.<wbr/> Timestamp information should still be
8887included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008888 </li>
8889 <li>
8890 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008891 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8892only be produced if they are separately
8893enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008894 </li>
8895 </ul>
8896
8897 </td> <!-- entry_type -->
8898
8899 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008900 <p>How much metadata to produce on
8901output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008902 </td>
8903
8904 <td class="entry_units">
8905 </td>
8906
8907 <td class="entry_range">
8908 </td>
8909
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008910 <td class="entry_tags">
8911 </td>
8912
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008913 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008914
8915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008916 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8917 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008918
8919
8920 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008921 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008922 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008923 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008924 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008925 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008926 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008927
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008928 <span class="entry_type_array">
8929 n
8930 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008931 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008932
8933
8934 </td> <!-- entry_type -->
8935
8936 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008937 <p>Lists which camera output streams image data
8938from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008939 </td>
8940
8941 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008942 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008943 </td>
8944
8945 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008946 <p>List must only include streams that have been
8947created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008948 </td>
8949
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008950 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008951 <ul class="entry_tags">
8952 <li><a href="#tag_HAL2">HAL2</a></li>
8953 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008954 </td>
8955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008956 </tr>
8957 <tr class="entries_header">
8958 <th class="th_details" colspan="5">Details</th>
8959 </tr>
8960 <tr class="entry_cont">
8961 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008962 <p>If no output streams are listed,<wbr/> then the image
8963data should simply be discarded.<wbr/> The image data must
8964still be captured for metadata and statistics production,<wbr/>
8965and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008966 </td>
8967 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008968
8969
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008970 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8971 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008972
8973
8974 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008975 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008976 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008977 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008978 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008979 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008980
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008981 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008982
8983 <ul class="entry_type_enum">
8984 <li>
8985 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008986 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
8987and process it according to the
8988settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008989 </li>
8990 <li>
8991 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008992 <span class="entry_type_enum_notes"><p>Process previously captured data; the
8993android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
8994source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
8995needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008996 </li>
8997 </ul>
8998
8999 </td> <!-- entry_type -->
9000
9001 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009002 <p>The type of the request; either CAPTURE or
9003REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009004 </td>
9005
9006 <td class="entry_units">
9007 </td>
9008
9009 <td class="entry_range">
9010 </td>
9011
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009012 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009013 <ul class="entry_tags">
9014 <li><a href="#tag_HAL2">HAL2</a></li>
9015 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009016 </td>
9017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009018 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009019
9020
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009021 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9022 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009023
9024
9025
9026 <!-- end of kind -->
9027 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009028 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009029
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009030 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009031 <tr>
9032 <th class="th_name">Property Name</th>
9033 <th class="th_type">Type</th>
9034 <th class="th_description">Description</th>
9035 <th class="th_units">Units</th>
9036 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009037 <th class="th_tags">Tags</th>
9038 </tr>
9039 </thead>
9040
9041 <tbody>
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009053 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009054 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009055 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009056 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009057 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009058 <span class="entry_type_container">x</span>
9059
9060 <span class="entry_type_array">
9061 3
9062 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009063 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009064
9065
9066 </td> <!-- entry_type -->
9067
9068 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009069 <p>How many output streams can be allocated at
9070the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009071 </td>
9072
9073 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009074 The number of raw sensor streams; the number of
9075 processed,<wbr/> uncompressed streams; and the number of
9076 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077 </td>
9078
9079 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009080 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009081for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009082 </td>
9083
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009084 <td class="entry_tags">
9085 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009086 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009087 </ul>
9088 </td>
9089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009090 </tr>
9091 <tr class="entries_header">
9092 <th class="th_details" colspan="5">Details</th>
9093 </tr>
9094 <tr class="entry_cont">
9095 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009096 <p>Video snapshot with preview callbacks requires 3
9097processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9098one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009099 </td>
9100 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009101
9102
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009103 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9104 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009105
9106
9107 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009108 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009109 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009110 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009111 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009112 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009113 <span class="entry_type_container">x</span>
9114
9115 <span class="entry_type_array">
9116 1
9117 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009118 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009119
9120
9121 </td> <!-- entry_type -->
9122
9123 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009124 <p>How many reprocessing streams of any type
9125can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009126 </td>
9127
9128 <td class="entry_units">
9129 </td>
9130
9131 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009132 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009133 </td>
9134
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009135 <td class="entry_tags">
9136 </td>
9137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009139
9140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009141 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9142 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009143
Igor Murashkina46e02f2014-01-09 17:43:38 -08009144
9145 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9146 <td class="entry_name" rowspan="5">
9147 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9148 </td>
9149 <td class="entry_type">
9150 <span class="entry_type_name">byte</span>
9151
9152 <span class="entry_type_visibility"> [public]</span>
9153
9154
9155 </td> <!-- entry_type -->
9156
9157 <td class="entry_description">
9158 <p>Specifies the number of maximum pipeline stages a frame
9159has to go through from when it's exposed to when it's available
9160to the framework.<wbr/></p>
9161 </td>
9162
9163 <td class="entry_units">
9164 </td>
9165
9166 <td class="entry_range">
9167 </td>
9168
9169 <td class="entry_tags">
9170 </td>
9171
9172 </tr>
9173 <tr class="entries_header">
9174 <th class="th_details" colspan="5">Details</th>
9175 </tr>
9176 <tr class="entry_cont">
9177 <td class="entry_details" colspan="5">
9178 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9179one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9180its own stages to do custom HW processing.<wbr/> Further stages may be
9181added by SW processing.<wbr/></p>
9182<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9183processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9184depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9185the max pipeline depth.<wbr/></p>
9186<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9187X frame intervals.<wbr/></p>
9188<p>This value will be 8 or less.<wbr/></p>
9189 </td>
9190 </tr>
9191
9192 <tr class="entries_header">
9193 <th class="th_details" colspan="5">HAL Implementation Details</th>
9194 </tr>
9195 <tr class="entry_cont">
9196 <td class="entry_details" colspan="5">
9197 <p>This value should be 4 or less.<wbr/></p>
9198 </td>
9199 </tr>
9200
9201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9202 <!-- end of entry -->
9203
Igor Murashkin2e291102014-01-10 14:18:30 -08009204
9205 <tr class="entry" id="static_android.request.partialResultCount">
9206 <td class="entry_name" rowspan="3">
9207 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9208 </td>
9209 <td class="entry_type">
9210 <span class="entry_type_name">int32</span>
9211
9212 <span class="entry_type_visibility"> [public]</span>
9213
9214
9215 </td> <!-- entry_type -->
9216
9217 <td class="entry_description">
9218 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9219a result will be composed of.<wbr/></p>
9220 </td>
9221
9222 <td class="entry_units">
9223 </td>
9224
9225 <td class="entry_range">
9226 <p>&gt;= 1</p>
9227 </td>
9228
9229 <td class="entry_tags">
9230 </td>
9231
9232 </tr>
9233 <tr class="entries_header">
9234 <th class="th_details" colspan="5">Details</th>
9235 </tr>
9236 <tr class="entry_cont">
9237 <td class="entry_details" colspan="5">
9238 <p>In order to combat the pipeline latency,<wbr/> partial results
9239may be delivered to the application layer from the camera device as
9240soon as they are available.<wbr/></p>
9241<p>A value of 1 means that partial results are not supported.<wbr/></p>
9242<p>A typical use case for this might be: after requesting an AF lock the
9243new AF state might be available 50% of the way through the pipeline.<wbr/>
9244The camera device could then immediately dispatch this state via a
9245partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9246the metadata via later partial results.<wbr/></p>
9247 </td>
9248 </tr>
9249
9250
9251 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9252 <!-- end of entry -->
9253
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009254
9255
9256 <!-- end of kind -->
9257 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009258 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009259
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009260 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009261 <tr>
9262 <th class="th_name">Property Name</th>
9263 <th class="th_type">Type</th>
9264 <th class="th_description">Description</th>
9265 <th class="th_units">Units</th>
9266 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009267 <th class="th_tags">Tags</th>
9268 </tr>
9269 </thead>
9270
9271 <tbody>
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009283 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009284 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009285 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009286 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009287 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009288
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009289 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009290
9291
9292 </td> <!-- entry_type -->
9293
9294 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009295 <p>A frame counter set by the framework.<wbr/> This value monotonically
9296increases with every new result (that is,<wbr/> each new result has a unique
9297frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009298 </td>
9299
9300 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009301 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009302 </td>
9303
9304 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009305 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009306 </td>
9307
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009308 <td class="entry_tags">
9309 </td>
9310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009311 </tr>
9312 <tr class="entries_header">
9313 <th class="th_details" colspan="5">Details</th>
9314 </tr>
9315 <tr class="entry_cont">
9316 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009317 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009318 </td>
9319 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009320
9321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009322 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9323 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009324
9325
9326 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009327 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009328 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009329 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009330 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009331 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009332
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009333 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009334
9335
9336 </td> <!-- entry_type -->
9337
9338 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009339 <p>An application-specified ID for the current
9340request.<wbr/> Must be maintained unchanged in output
9341frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009342 </td>
9343
9344 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009345 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009346 </td>
9347
9348 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009349 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009350 </td>
9351
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009352 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009353 <ul class="entry_tags">
9354 <li><a href="#tag_V1">V1</a></li>
9355 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009356 </td>
9357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009358 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009359
9360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009363
9364
9365 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009366 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009367 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009368 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009370 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009371
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009372 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009373
9374 <ul class="entry_type_enum">
9375 <li>
9376 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009377 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9378for application-bound buffer data.<wbr/> If no
9379application-bound streams exist,<wbr/> no frame should be
9380placed in the output frame queue.<wbr/> If such streams
9381exist,<wbr/> a frame should be placed on the output queue
9382with null metadata but with the necessary output buffer
9383information.<wbr/> Timestamp information should still be
9384included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009385 </li>
9386 <li>
9387 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009388 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9389only be produced if they are separately
9390enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009391 </li>
9392 </ul>
9393
9394 </td> <!-- entry_type -->
9395
9396 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009397 <p>How much metadata to produce on
9398output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009399 </td>
9400
9401 <td class="entry_units">
9402 </td>
9403
9404 <td class="entry_range">
9405 </td>
9406
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009407 <td class="entry_tags">
9408 </td>
9409
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009410 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009411
9412
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009413 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9414 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009415
9416
9417 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009418 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009419 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009420 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009421 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009422 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009423 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009424
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009425 <span class="entry_type_array">
9426 n
9427 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009428 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009429
9430
9431 </td> <!-- entry_type -->
9432
9433 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009434 <p>Lists which camera output streams image data
9435from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009436 </td>
9437
9438 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009439 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009440 </td>
9441
9442 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009443 <p>List must only include streams that have been
9444created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009445 </td>
9446
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009447 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009448 <ul class="entry_tags">
9449 <li><a href="#tag_HAL2">HAL2</a></li>
9450 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009451 </td>
9452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009453 </tr>
9454 <tr class="entries_header">
9455 <th class="th_details" colspan="5">Details</th>
9456 </tr>
9457 <tr class="entry_cont">
9458 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009459 <p>If no output streams are listed,<wbr/> then the image
9460data should simply be discarded.<wbr/> The image data must
9461still be captured for metadata and statistics production,<wbr/>
9462and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009463 </td>
9464 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009465
9466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009467 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9468 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009469
Igor Murashkina46e02f2014-01-09 17:43:38 -08009470
9471 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9472 <td class="entry_name" rowspan="5">
9473 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9474 </td>
9475 <td class="entry_type">
9476 <span class="entry_type_name">byte</span>
9477
9478 <span class="entry_type_visibility"> [public]</span>
9479
9480
9481 </td> <!-- entry_type -->
9482
9483 <td class="entry_description">
9484 <p>Specifies the number of pipeline stages the frame went
9485through from when it was exposed to when the final completed result
9486was available to the framework.<wbr/></p>
9487 </td>
9488
9489 <td class="entry_units">
9490 </td>
9491
9492 <td class="entry_range">
9493 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9494 </td>
9495
9496 <td class="entry_tags">
9497 </td>
9498
9499 </tr>
9500 <tr class="entries_header">
9501 <th class="th_details" colspan="5">Details</th>
9502 </tr>
9503 <tr class="entry_cont">
9504 <td class="entry_details" colspan="5">
9505 <p>Depending on what settings are used in the request,<wbr/> and
9506what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9507and some pipeline stages skipped.<wbr/></p>
9508<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9509 </td>
9510 </tr>
9511
9512 <tr class="entries_header">
9513 <th class="th_details" colspan="5">HAL Implementation Details</th>
9514 </tr>
9515 <tr class="entry_cont">
9516 <td class="entry_details" colspan="5">
9517 <p>This value must always represent the accurate count of how many
9518pipeline stages were actually used.<wbr/></p>
9519 </td>
9520 </tr>
9521
9522 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9523 <!-- end of entry -->
9524
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009525
9526
9527 <!-- end of kind -->
9528 </tbody>
9529
9530 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009531 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009532
9533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009534 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009535
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009536 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009537 <tr>
9538 <th class="th_name">Property Name</th>
9539 <th class="th_type">Type</th>
9540 <th class="th_description">Description</th>
9541 <th class="th_units">Units</th>
9542 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543 <th class="th_tags">Tags</th>
9544 </tr>
9545 </thead>
9546
9547 <tbody>
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009559 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009560 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009561 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009562 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009563 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564 <span class="entry_type_container">x</span>
9565
9566 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009567 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009568 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009569 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009570
9571
9572 </td> <!-- entry_type -->
9573
9574 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009575 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9576<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9577(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9578output.<wbr/> Each stream must use this rectangle to produce its
9579output,<wbr/> cropping to a smaller region if necessary to
9580maintain the stream's aspect ratio.<wbr/></p>
9581<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009582 </td>
9583
9584 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009585 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9586 in pixels; (0,<wbr/>0) is top-left corner of
9587 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009588 </td>
9589
9590 <td class="entry_range">
9591 </td>
9592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009593 <td class="entry_tags">
9594 <ul class="entry_tags">
9595 <li><a href="#tag_BC">BC</a></li>
9596 </ul>
9597 </td>
9598
9599 </tr>
9600 <tr class="entries_header">
9601 <th class="th_details" colspan="5">Details</th>
9602 </tr>
9603 <tr class="entry_cont">
9604 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009605 <p>Any additional per-stream cropping must be done to
9606maximize the final pixel area of the stream.<wbr/></p>
9607<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9608ratio,<wbr/> then 4:3 streams should use the exact crop
9609region.<wbr/> 16:9 streams should further crop vertically
9610(letterbox).<wbr/></p>
9611<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9612outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9613streams should match exactly.<wbr/> These additional crops must
9614be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009615<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009616times,<wbr/> no matter what the relative aspect ratios of the
9617crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009618corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009619larger than active pixel array.<wbr/> Width and height may be
9620rounded to nearest larger supportable width,<wbr/> especially
9621for raw output,<wbr/> where only a few fixed scales may be
9622possible.<wbr/> The width and height of the crop region cannot
9623be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9624android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9625activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9626respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009627 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009628 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009629
9630
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009631 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9632 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009633
9634
9635
9636 <!-- end of kind -->
9637 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009638 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009639
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009640 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009641 <tr>
9642 <th class="th_name">Property Name</th>
9643 <th class="th_type">Type</th>
9644 <th class="th_description">Description</th>
9645 <th class="th_units">Units</th>
9646 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009647 <th class="th_tags">Tags</th>
9648 </tr>
9649 </thead>
9650
9651 <tbody>
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009663 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009664 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009665 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009666 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009667 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009668 <span class="entry_type_container">x</span>
9669
9670 <span class="entry_type_array">
9671 n
9672 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009673 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009674
9675 <ul class="entry_type_enum">
9676 <li>
9677 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009678 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009679 <span class="entry_type_enum_value">0x20</span>
9680 </li>
9681 <li>
9682 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009683 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009684 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009685 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009686 </li>
9687 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009688 <span class="entry_type_enum_name">YCrCb_420_SP</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">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009691 <span class="entry_type_enum_notes"><p>NV21</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">IMPLEMENTATION_DEFINED</span>
9695 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009696 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009697 </li>
9698 <li>
9699 <span class="entry_type_enum_name">YCbCr_420_888</span>
9700 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009701 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009702 </li>
9703 <li>
9704 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009705 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009706 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009707 </li>
9708 </ul>
9709
9710 </td> <!-- entry_type -->
9711
9712 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009713 <p>The list of image formats that are supported by this
9714camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009715 </td>
9716
9717 <td class="entry_units">
9718 </td>
9719
9720 <td class="entry_range">
9721 </td>
9722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009723 <td class="entry_tags">
9724 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009725 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009726 </ul>
9727 </td>
9728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009729 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009730 <tr class="entries_header">
9731 <th class="th_details" colspan="5">Details</th>
9732 </tr>
9733 <tr class="entry_cont">
9734 <td class="entry_details" colspan="5">
9735 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9736<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9737 </td>
9738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009739
Zhijun Heb8317e22014-01-16 09:47:07 -08009740 <tr class="entries_header">
9741 <th class="th_details" colspan="5">HAL Implementation Details</th>
9742 </tr>
9743 <tr class="entry_cont">
9744 <td class="entry_details" colspan="5">
9745 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9746system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9747<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9748gralloc module will select a format based on the usage flags provided
9749by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9750usually used by preview and recording streams,<wbr/> where the application doesn't
9751need access the image data.<wbr/></p>
9752<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9753needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9754<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9755 </td>
9756 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009757
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009758 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9759 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009760
9761
9762 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009763 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009764 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009765 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009766 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009767 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009768 <span class="entry_type_container">x</span>
9769
9770 <span class="entry_type_array">
9771 n
9772 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009773 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009774
9775
9776 </td> <!-- entry_type -->
9777
9778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009779 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009780for 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 -08009781 </td>
9782
9783 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009784 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009785 </td>
9786
9787 <td class="entry_range">
9788 </td>
9789
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009790 <td class="entry_tags">
9791 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009792 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009793 </ul>
9794 </td>
9795
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009796 </tr>
9797 <tr class="entries_header">
9798 <th class="th_details" colspan="5">Details</th>
9799 </tr>
9800 <tr class="entry_cont">
9801 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009802 <p>This corresponds to the minimum steady-state frame duration when only
9803that JPEG stream is active and captured in a burst,<wbr/> with all
9804processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9805<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009806frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009807durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009808 </td>
9809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009810
9811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009814
9815
9816 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009817 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009818 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009821 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009822 <span class="entry_type_container">x</span>
9823
9824 <span class="entry_type_array">
9825 n x 2
9826 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009827 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009828
9829
9830 </td> <!-- entry_type -->
9831
9832 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009833 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009834 </td>
9835
9836 <td class="entry_units">
9837 </td>
9838
9839 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009840 </td>
9841
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009842 <td class="entry_tags">
9843 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009844 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009845 </ul>
9846 </td>
9847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009848 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009849 <tr class="entries_header">
9850 <th class="th_details" colspan="5">Details</th>
9851 </tr>
9852 <tr class="entry_cont">
9853 <td class="entry_details" colspan="5">
9854 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9855sensor 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>
9856 </td>
9857 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009858
Zhijun Heb8317e22014-01-16 09:47:07 -08009859 <tr class="entries_header">
9860 <th class="th_details" colspan="5">HAL Implementation Details</th>
9861 </tr>
9862 <tr class="entry_cont">
9863 <td class="entry_details" colspan="5">
9864 <p>The HAL must include sensor maximum resolution
9865(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9866and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9867 </td>
9868 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9871 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009872
9873
9874 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009875 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009876 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009878 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009879 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009880
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009881 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009882
9883
9884 </td> <!-- entry_type -->
9885
9886 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009887 <p>The maximum ratio between active area width
9888and crop region width,<wbr/> or between active area height and
9889crop region height,<wbr/> if the crop region height is larger
9890than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009891 </td>
9892
9893 <td class="entry_units">
9894 </td>
9895
9896 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009897 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009898 </td>
9899
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009900 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009901 <ul class="entry_tags">
9902 <li><a href="#tag_BC">BC</a></li>
9903 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009904 </td>
9905
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009907
9908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009911
9912
9913 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009915 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009918 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009919 <span class="entry_type_container">x</span>
9920
9921 <span class="entry_type_array">
9922 n
9923 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009924 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009925
9926
9927 </td> <!-- entry_type -->
9928
9929 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009930 <p>For each available processed output size (defined in
9931<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
9932minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009933 </td>
9934
9935 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009936 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009937 </td>
9938
9939 <td class="entry_range">
9940 </td>
9941
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009942 <td class="entry_tags">
9943 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009944 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009945 </ul>
9946 </td>
9947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009948 </tr>
9949 <tr class="entries_header">
9950 <th class="th_details" colspan="5">Details</th>
9951 </tr>
9952 <tr class="entry_cont">
9953 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009954 <p>This should correspond to the frame duration when only that processed
9955stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
9956set to FAST.<wbr/></p>
9957<p>When multiple streams are configured,<wbr/> the minimum frame duration will
9958be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009959 </td>
9960 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009961
9962
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009963 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9964 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009965
9966
9967 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009968 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009969 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009970 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009971 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009972 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009973 <span class="entry_type_container">x</span>
9974
9975 <span class="entry_type_array">
9976 n x 2
9977 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009978 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009979
9980
9981 </td> <!-- entry_type -->
9982
9983 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009984 <p>The resolutions available for use with
9985processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
9986platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -08009987encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009988 </td>
9989
9990 <td class="entry_units">
9991 </td>
9992
9993 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009994 </td>
9995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009996 <td class="entry_tags">
9997 <ul class="entry_tags">
9998 <li><a href="#tag_BC">BC</a></li>
9999 </ul>
10000 </td>
10001
10002 </tr>
10003 <tr class="entries_header">
10004 <th class="th_details" colspan="5">Details</th>
10005 </tr>
10006 <tr class="entry_cont">
10007 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010008 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10009<p>For a given use case,<wbr/> the actual maximum supported resolution
10010may be lower than what is listed here,<wbr/> depending on the destination
10011Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10012the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10013smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10014can provide.<wbr/></p>
10015<p>Please reference the documentation for the image data destination to
10016check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010017 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010018 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010019
Zhijun Heb8317e22014-01-16 09:47:07 -080010020 <tr class="entries_header">
10021 <th class="th_details" colspan="5">HAL Implementation Details</th>
10022 </tr>
10023 <tr class="entry_cont">
10024 <td class="entry_details" colspan="5">
10025 <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/>
10026the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10027and each below resolution if it is smaller than or equal to the sensor
10028maximum resolution (if they are not listed in JPEG sizes already):</p>
10029<ul>
10030<li>240p (320 x 240)</li>
10031<li>480p (640 x 480)</li>
10032<li>720p (1280 x 720)</li>
10033<li>1080p (1920 x 1080)</li>
10034</ul>
10035<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/>
10036the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10037 </td>
10038 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010040 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010042
10043
10044 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010045 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010046 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010047 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010048 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010049 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010050 <span class="entry_type_container">x</span>
10051
10052 <span class="entry_type_array">
10053 n
10054 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010055 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010056
10057
10058 </td> <!-- entry_type -->
10059
10060 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010061 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010062<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10063supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010064 </td>
10065
10066 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010067 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010068 </td>
10069
10070 <td class="entry_range">
10071 </td>
10072
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010073 <td class="entry_tags">
10074 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010075 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010076 </ul>
10077 </td>
10078
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010079 </tr>
10080 <tr class="entries_header">
10081 <th class="th_details" colspan="5">Details</th>
10082 </tr>
10083 <tr class="entry_cont">
10084 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010085 <p>Should correspond to the frame duration when only the raw stream is
10086active.<wbr/></p>
10087<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010088frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010089durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010090 </td>
10091 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010092
10093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010094 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10095 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010096
10097
10098 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010099 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010100 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010101 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010102 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010103 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010104 <span class="entry_type_container">x</span>
10105
10106 <span class="entry_type_array">
10107 n x 2
10108 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010109 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010110
10111
10112 </td> <!-- entry_type -->
10113
10114 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010115 <p>The resolutions available for use with raw
10116sensor output streams,<wbr/> listed as width,<wbr/>
10117height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010118 </td>
10119
10120 <td class="entry_units">
10121 </td>
10122
10123 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010124 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010125 </td>
10126
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010127 <td class="entry_tags">
10128 </td>
10129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010130 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010131
10132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10134 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010135
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010136
10137
10138 <!-- end of kind -->
10139 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010140 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010141
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010142 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010143 <tr>
10144 <th class="th_name">Property Name</th>
10145 <th class="th_type">Type</th>
10146 <th class="th_description">Description</th>
10147 <th class="th_units">Units</th>
10148 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010149 <th class="th_tags">Tags</th>
10150 </tr>
10151 </thead>
10152
10153 <tbody>
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010165 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010166 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010167 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010168 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010169 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010170 <span class="entry_type_container">x</span>
10171
10172 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010173 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010174 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010175 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010176
10177
10178 </td> <!-- entry_type -->
10179
10180 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010181 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10182<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10183(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10184output.<wbr/> Each stream must use this rectangle to produce its
10185output,<wbr/> cropping to a smaller region if necessary to
10186maintain the stream's aspect ratio.<wbr/></p>
10187<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010188 </td>
10189
10190 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010191 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10192 in pixels; (0,<wbr/>0) is top-left corner of
10193 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010194 </td>
10195
10196 <td class="entry_range">
10197 </td>
10198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010199 <td class="entry_tags">
10200 <ul class="entry_tags">
10201 <li><a href="#tag_BC">BC</a></li>
10202 </ul>
10203 </td>
10204
10205 </tr>
10206 <tr class="entries_header">
10207 <th class="th_details" colspan="5">Details</th>
10208 </tr>
10209 <tr class="entry_cont">
10210 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010211 <p>Any additional per-stream cropping must be done to
10212maximize the final pixel area of the stream.<wbr/></p>
10213<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10214ratio,<wbr/> then 4:3 streams should use the exact crop
10215region.<wbr/> 16:9 streams should further crop vertically
10216(letterbox).<wbr/></p>
10217<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10218outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10219streams should match exactly.<wbr/> These additional crops must
10220be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010221<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010222times,<wbr/> no matter what the relative aspect ratios of the
10223crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010224corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010225larger than active pixel array.<wbr/> Width and height may be
10226rounded to nearest larger supportable width,<wbr/> especially
10227for raw output,<wbr/> where only a few fixed scales may be
10228possible.<wbr/> The width and height of the crop region cannot
10229be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10230android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10231activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10232respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010233 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010235
10236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010237 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10238 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010239
10240
10241
10242 <!-- end of kind -->
10243 </tbody>
10244
10245 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010246 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010247
10248
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010249 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010250
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010251 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010252 <tr>
10253 <th class="th_name">Property Name</th>
10254 <th class="th_type">Type</th>
10255 <th class="th_description">Description</th>
10256 <th class="th_units">Units</th>
10257 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010258 <th class="th_tags">Tags</th>
10259 </tr>
10260 </thead>
10261
10262 <tbody>
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010274 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010275 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010276 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010277 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010278 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010279
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010280 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010281
10282
10283 </td> <!-- entry_type -->
10284
10285 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010286 <p>Duration each pixel is exposed to
10287light.<wbr/></p>
10288<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10289duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010290 </td>
10291
10292 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010293 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010294 </td>
10295
10296 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010297 <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 -080010298 </td>
10299
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010300 <td class="entry_tags">
10301 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010302 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010303 </ul>
10304 </td>
10305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010306 </tr>
10307 <tr class="entries_header">
10308 <th class="th_details" colspan="5">Details</th>
10309 </tr>
10310 <tr class="entry_cont">
10311 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010312 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010313 </td>
10314 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010315
10316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10318 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010319
10320
10321 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010322 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010323 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010324 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010325 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010326 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010327
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010328 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010329
10330
10331 </td> <!-- entry_type -->
10332
10333 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010334 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010335start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010336 </td>
10337
10338 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010339 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010340 </td>
10341
10342 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010343 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10344android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10345is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010346 </td>
10347
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010348 <td class="entry_tags">
10349 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010350 <li><a href="#tag_V1">V1</a></li>
10351 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010352 </ul>
10353 </td>
10354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010355 </tr>
10356 <tr class="entries_header">
10357 <th class="th_details" colspan="5">Details</th>
10358 </tr>
10359 <tr class="entry_cont">
10360 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010361 <p>The maximum frame rate that can be supported by a camera subsystem is
10362a function of many factors:</p>
10363<ul>
10364<li>Requested resolutions of output image streams</li>
10365<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10366<li>The bandwidth of the imager interface</li>
10367<li>The bandwidth of the various ISP processing blocks</li>
10368</ul>
10369<p>Since these factors can vary greatly between different ISPs and
10370sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10371restrictions with as simple a model as possible.<wbr/></p>
10372<p>The model presented has the following characteristics:</p>
10373<ul>
10374<li>The image sensor is always configured to output the smallest
10375resolution possible given the application's requested output stream
10376sizes.<wbr/> The smallest resolution is defined as being at least as large
10377as the largest requested output stream size; the camera pipeline must
10378never digitally upsample sensor data when the crop region covers the
10379whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10380resolutions are configured,<wbr/> the sensor can provide a higher frame
10381rate.<wbr/></li>
10382<li>Since any request may use any or all the currently configured
10383output streams,<wbr/> the sensor and ISP must be configured to support
10384scaling a single capture to all the streams at the same time.<wbr/> This
10385means the camera pipeline must be ready to produce the largest
10386requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10387frame rate of a given configured stream set is governed only by the
10388largest requested stream resolution.<wbr/></li>
10389<li>Using more than one output stream in a request does not affect the
10390frame duration.<wbr/></li>
10391<li>JPEG streams act like processed YUV streams in requests for which
10392they are not included; in requests in which they are directly
10393referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10394JPEG stream requires the underlying YUV data to always be ready for
10395use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10396frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10397<li>The JPEG processor can run concurrently to the rest of the camera
10398pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10399</ul>
10400<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10401is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10402These are used to determine the maximum frame rate /<wbr/> minimum frame
10403duration that is possible for a given stream configuration.<wbr/></p>
10404<p>Specifically,<wbr/> the application can use the following rules to
10405determine the minimum frame duration it can request from the HAL
10406device:</p>
10407<ol>
10408<li>Given the application's currently configured set of output
10409streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10410<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10411<code>SP</code>.<wbr/></li>
10412<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10413count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10414<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10415<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
10416no exact match for <code>RP == RJ</code> (in particular there isn't an available
10417processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10418to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10419there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10420the processed resolution closest to <code>RJ</code>.<wbr/></li>
10421<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
10422no exact match for <code>RR == RP</code> (in particular there isn't an available
10423raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10424or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10425there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10426the raw resolution closest to <code>RP</code>.<wbr/></li>
10427<li>Look up the matching minimum frame durations in the property lists
10428<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10429<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10430<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10431minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10432<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10433supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10434<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10435supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10436<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10437the application,<wbr/> then the HAL will have to delay JPEG-using requests
10438whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10439This will happen whenever a JPEG-using request starts capture less
10440than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10441supported frame duration will vary between the values calculated in
10442#6 and #7.<wbr/></li>
10443</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010444 </td>
10445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010446
10447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010450
10451
10452 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010454 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010458
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010459 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010460
10461
10462 </td> <!-- entry_type -->
10463
10464 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010465 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010466implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010467below 'maximum analog sensitivity'.<wbr/></p>
10468<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10469gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010470 </td>
10471
10472 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010473 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010474 </td>
10475
10476 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010477 <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 -080010478 </td>
10479
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010480 <td class="entry_tags">
10481 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010482 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010483 </ul>
10484 </td>
10485
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010486 </tr>
10487 <tr class="entries_header">
10488 <th class="th_details" colspan="5">Details</th>
10489 </tr>
10490 <tr class="entry_cont">
10491 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010492 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010493 </td>
10494 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010495
10496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010497 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10498 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010499
Igor Murashkina46e02f2014-01-09 17:43:38 -080010500
10501 <tr class="entry" id="controls_android.sensor.testPatternData">
10502 <td class="entry_name" rowspan="5">
10503 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10504 </td>
10505 <td class="entry_type">
10506 <span class="entry_type_name">int32</span>
10507 <span class="entry_type_container">x</span>
10508
10509 <span class="entry_type_array">
10510 4
10511 </span>
10512 <span class="entry_type_visibility"> [public]</span>
10513
10514
10515 </td> <!-- entry_type -->
10516
10517 <td class="entry_description">
10518 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10519when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10520 </td>
10521
10522 <td class="entry_units">
10523 </td>
10524
10525 <td class="entry_range">
10526 <p>Optional.<wbr/>
10527Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10528SOLID_<wbr/>COLOR.<wbr/></p>
10529 </td>
10530
10531 <td class="entry_tags">
10532 </td>
10533
10534 </tr>
10535 <tr class="entries_header">
10536 <th class="th_details" colspan="5">Details</th>
10537 </tr>
10538 <tr class="entry_cont">
10539 <td class="entry_details" colspan="5">
10540 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10541The camera device then uses the most significant X bits
10542that correspond to how many bits are in its Bayer raw sensor
10543output.<wbr/></p>
10544<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1054510 most significant bits from each color channel.<wbr/></p>
10546 </td>
10547 </tr>
10548
10549 <tr class="entries_header">
10550 <th class="th_details" colspan="5">HAL Implementation Details</th>
10551 </tr>
10552 <tr class="entry_cont">
10553 <td class="entry_details" colspan="5">
10554
10555 </td>
10556 </tr>
10557
10558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10559 <!-- end of entry -->
10560
10561
10562 <tr class="entry" id="controls_android.sensor.testPatternMode">
10563 <td class="entry_name" rowspan="5">
10564 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10565 </td>
10566 <td class="entry_type">
10567 <span class="entry_type_name entry_type_name_enum">int32</span>
10568
10569 <span class="entry_type_visibility"> [public]</span>
10570
10571 <ul class="entry_type_enum">
10572 <li>
10573 <span class="entry_type_enum_name">OFF</span>
10574 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10575device returns captures from the image sensor.<wbr/></p></span>
10576 </li>
10577 <li>
10578 <span class="entry_type_enum_name">SOLID_COLOR</span>
10579 <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
10580respective color channel provided in
10581<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10582<p>For example:</p>
10583<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10584</code></pre>
10585<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10586<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10587</code></pre>
10588<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10589are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10590 </li>
10591 <li>
10592 <span class="entry_type_enum_name">COLOR_BARS</span>
10593 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10594<p>The vertical bars (left-to-right) are as follows:</p>
10595<ul>
10596<li>100% white</li>
10597<li>yellow</li>
10598<li>cyan</li>
10599<li>green</li>
10600<li>magenta</li>
10601<li>red</li>
10602<li>blue</li>
10603<li>black</li>
10604</ul>
10605<p>In general the image would look like the following:</p>
10606<pre><code>W Y C G M R B K
10607W Y C G M R B K
10608W Y C G M R B K
10609W Y C G M R B K
10610W Y C G M R B K
10611.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10612.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10613.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10614
10615(B = Blue,<wbr/> K = Black)
10616</code></pre>
10617<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10618When this is not possible,<wbr/> the bar size should be rounded
10619down to the nearest integer and the pattern can repeat
10620on the right side.<wbr/></p>
10621<p>Each bar's height must always take up the full sensor
10622pixel array height.<wbr/></p>
10623<p>Each pixel in this test pattern must be set to either
106240% intensity or 100% intensity.<wbr/></p></span>
10625 </li>
10626 <li>
10627 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10628 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10629each bar should start at its specified color at the top,<wbr/>
10630and fade to gray at the bottom.<wbr/></p>
10631<p>Furthermore each bar is further subdivided into a left and
10632right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10633and the right half should have a quantized gradient.<wbr/></p>
10634<p>In particular,<wbr/> the right half's should consist of blocks of the
10635same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10636<p>The least significant bits in the quantized gradient should
10637be copied from the most significant bits of the smooth gradient.<wbr/></p>
10638<p>The height of each bar should always be a multiple of 128.<wbr/>
10639When this is not the case,<wbr/> the pattern should repeat at the bottom
10640of the image.<wbr/></p></span>
10641 </li>
10642 <li>
10643 <span class="entry_type_enum_name">PN9</span>
10644 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10645generated from a PN9 512-bit sequence (typically implemented
10646in hardware with a linear feedback shift register).<wbr/></p>
10647<p>The generator should be reset at the beginning of each frame,<wbr/>
10648and thus each subsequent raw frame with this test pattern should
10649be exactly the same as the last.<wbr/></p></span>
10650 </li>
10651 <li>
10652 <span class="entry_type_enum_name">CUSTOM1</span>
10653 <span class="entry_type_enum_value">256</span>
10654 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10655available only on this camera device are at least this numeric
10656value.<wbr/></p>
10657<p>All of the custom test patterns will be static
10658(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10659 </li>
10660 </ul>
10661
10662 </td> <!-- entry_type -->
10663
10664 <td class="entry_description">
10665 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10666doing a real exposure from the camera.<wbr/></p>
10667 </td>
10668
10669 <td class="entry_units">
10670 </td>
10671
10672 <td class="entry_range">
10673 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10674<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10675 </td>
10676
10677 <td class="entry_tags">
10678 </td>
10679
10680 </tr>
10681 <tr class="entries_header">
10682 <th class="th_details" colspan="5">Details</th>
10683 </tr>
10684 <tr class="entry_cont">
10685 <td class="entry_details" colspan="5">
10686 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10687by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10688work as normal.<wbr/></p>
10689<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10690occur (and that the test pattern remain unmodified,<wbr/> since the flash
10691would not actually affect it).<wbr/></p>
10692 </td>
10693 </tr>
10694
10695 <tr class="entries_header">
10696 <th class="th_details" colspan="5">HAL Implementation Details</th>
10697 </tr>
10698 <tr class="entry_cont">
10699 <td class="entry_details" colspan="5">
10700 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10701<p>The HAL may choose to substitute test patterns from the sensor
10702with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10703indistinguishable to the ISP whether the data came from the
10704sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10705 </td>
10706 </tr>
10707
10708 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10709 <!-- end of entry -->
10710
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010711
10712
10713 <!-- end of kind -->
10714 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010715 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010716
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010717 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010718 <tr>
10719 <th class="th_name">Property Name</th>
10720 <th class="th_type">Type</th>
10721 <th class="th_description">Description</th>
10722 <th class="th_units">Units</th>
10723 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010724 <th class="th_tags">Tags</th>
10725 </tr>
10726 </thead>
10727
10728 <tbody>
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010742 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010743 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010747 <span class="entry_type_container">x</span>
10748
10749 <span class="entry_type_array">
10750 4
10751 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010752 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010753 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010754
10755
10756 </td> <!-- entry_type -->
10757
10758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010759 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010760active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010761 </td>
10762
10763 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010764 </td>
10765
10766 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010767 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10768&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10769<code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010770 </td>
10771
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010772 <td class="entry_tags">
10773 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010774 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010775 </ul>
10776 </td>
10777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010778 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010779 <tr class="entries_header">
10780 <th class="th_details" colspan="5">Details</th>
10781 </tr>
10782 <tr class="entry_cont">
10783 <td class="entry_details" colspan="5">
10784 <p>It is smaller or equal to
10785sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10786 </td>
10787 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010788
10789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010790 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10791 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010792
10793
Zhijun He69fc0ea2013-07-17 09:42:58 -070010794 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010795 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010796 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010797 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010798 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010799 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010800 <span class="entry_type_container">x</span>
10801
10802 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010803 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010804 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010805 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010806 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010807
10808
10809 </td> <!-- entry_type -->
10810
10811 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010812 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010813 </td>
10814
10815 <td class="entry_units">
10816 </td>
10817
10818 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010819 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010820 </td>
10821
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010822 <td class="entry_tags">
10823 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010824 <li><a href="#tag_BC">BC</a></li>
10825 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010826 </ul>
10827 </td>
10828
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010829 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010830
10831
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010832 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10833 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010834
10835
10836 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010837 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010838 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010839 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010840 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010841 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010842
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010843 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010844
10845 <ul class="entry_type_enum">
10846 <li>
10847 <span class="entry_type_enum_name">RGGB</span>
10848 </li>
10849 <li>
10850 <span class="entry_type_enum_name">GRBG</span>
10851 </li>
10852 <li>
10853 <span class="entry_type_enum_name">GBRG</span>
10854 </li>
10855 <li>
10856 <span class="entry_type_enum_name">BGGR</span>
10857 </li>
10858 <li>
10859 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010860 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10861values for each pixel,<wbr/> instead of just 1 16-bit value
10862per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010863 </li>
10864 </ul>
10865
10866 </td> <!-- entry_type -->
10867
10868 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010869 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010870represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010871the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010872 </td>
10873
10874 <td class="entry_units">
10875 </td>
10876
10877 <td class="entry_range">
10878 </td>
10879
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010880 <td class="entry_tags">
10881 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010882 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010883 </ul>
10884 </td>
10885
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010886 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010887
10888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010889 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10890 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010891
10892
10893 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010894 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010895 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010896 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010897 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010898 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010899 <span class="entry_type_container">x</span>
10900
10901 <span class="entry_type_array">
10902 2
10903 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010904 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010905 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010906
10907
10908 </td> <!-- entry_type -->
10909
10910 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010911 <p>Range of valid exposure
10912times</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010913 </td>
10914
10915 <td class="entry_units">
10916 </td>
10917
10918 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010919 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10920sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010921 </td>
10922
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010923 <td class="entry_tags">
10924 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010925 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010926 </ul>
10927 </td>
10928
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010929 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010930
10931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010932 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10933 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010934
10935
10936 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010937 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010938 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010939 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010940 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010941 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010942
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010943 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010944
10945
10946 </td> <!-- entry_type -->
10947
10948 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010949 <p>Maximum possible frame duration (minimum frame
10950rate)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010951 </td>
10952
10953 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010954 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010955 </td>
10956
10957 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010958 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010959 </td>
10960
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010961 <td class="entry_tags">
10962 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010963 <li><a href="#tag_BC">BC</a></li>
10964 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010965 </ul>
10966 </td>
10967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010968 </tr>
10969 <tr class="entries_header">
10970 <th class="th_details" colspan="5">Details</th>
10971 </tr>
10972 <tr class="entry_cont">
10973 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010974 <p>Minimum duration is a function of resolution,<wbr/>
10975processing settings.<wbr/> See
10976android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10977android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010978<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 -080010979 </td>
10980 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010981
10982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010983 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10984 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010985
10986
10987 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010988 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010989 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010990 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010991 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010992 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010993 <span class="entry_type_container">x</span>
10994
10995 <span class="entry_type_array">
10996 2
10997 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070010998 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010999 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011000
11001
11002 </td> <!-- entry_type -->
11003
11004 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011005 <p>The physical dimensions of the full pixel
11006array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011007 </td>
11008
11009 <td class="entry_units">
11010 </td>
11011
11012 <td class="entry_range">
11013 </td>
11014
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011015 <td class="entry_tags">
11016 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011017 <li><a href="#tag_V1">V1</a></li>
11018 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011019 </ul>
11020 </td>
11021
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011022 </tr>
11023 <tr class="entries_header">
11024 <th class="th_details" colspan="5">Details</th>
11025 </tr>
11026 <tr class="entry_cont">
11027 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011028 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011029 </td>
11030 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011031
11032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011033 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11034 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011035
11036
11037 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011038 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011039 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011040 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011041 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011042 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011043 <span class="entry_type_container">x</span>
11044
11045 <span class="entry_type_array">
11046 2
11047 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011048 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011049
11050
11051 </td> <!-- entry_type -->
11052
11053 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011054 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011055including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011056 </td>
11057
11058 <td class="entry_units">
11059 </td>
11060
11061 <td class="entry_range">
11062 </td>
11063
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011064 <td class="entry_tags">
11065 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011066 <li><a href="#tag_DNG">DNG</a></li>
11067 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011068 </ul>
11069 </td>
11070
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011071 </tr>
11072 <tr class="entries_header">
11073 <th class="th_details" colspan="5">Details</th>
11074 </tr>
11075 <tr class="entry_cont">
11076 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011077 <p>The maximum output resolution for raw format in
11078<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a> will be equal to this size.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011079 </td>
11080 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011081
11082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011083 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11084 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011085
11086
11087 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011088 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011089 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011090 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011091 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011092 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011093
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011094 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011095
11096
11097 </td> <!-- entry_type -->
11098
11099 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011100 <p>Maximum raw value output by
11101sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011102 </td>
11103
11104 <td class="entry_units">
11105 </td>
11106
11107 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011108 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011109 </td>
11110
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011111 <td class="entry_tags">
11112 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011113 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011114 </ul>
11115 </td>
11116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011117 </tr>
11118 <tr class="entries_header">
11119 <th class="th_details" colspan="5">Details</th>
11120 </tr>
11121 <tr class="entry_cont">
11122 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011123 <p>Defines sensor bit depth (10-14 bits is
11124expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011125 </td>
11126 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011127
11128
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011129 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11130 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011131
11132
11133
11134
11135
11136 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011137 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011138 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011139 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011140 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011141 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011142
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011143 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011144
11145
11146 </td> <!-- entry_type -->
11147
11148 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011149 <p>Gain factor from electrons to raw units when
11150ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011151 </td>
11152
11153 <td class="entry_units">
11154 </td>
11155
11156 <td class="entry_range">
11157 </td>
11158
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011159 <td class="entry_tags">
11160 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011161 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011162 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011163 </ul>
11164 </td>
11165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011166 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011167
11168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011169 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11170 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011171
11172
11173 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011174 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011175 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011176 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011177 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011178 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011179 <span class="entry_type_container">x</span>
11180
11181 <span class="entry_type_array">
11182 4
11183 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011184 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011185 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011186
11187
11188 </td> <!-- entry_type -->
11189
11190 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011191 <p>A fixed black level offset for each of the
11192Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011193 </td>
11194
11195 <td class="entry_units">
11196 </td>
11197
11198 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011199 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011200 </td>
11201
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011202 <td class="entry_tags">
11203 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011204 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205 </ul>
11206 </td>
11207
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011208 </tr>
11209 <tr class="entries_header">
11210 <th class="th_details" colspan="5">Details</th>
11211 </tr>
11212 <tr class="entry_cont">
11213 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011214 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11215tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011216 </td>
11217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011218
11219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11221 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011222
11223
11224 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011225 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011226 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011227 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011228 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011229 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011230 <span class="entry_type_container">x</span>
11231
11232 <span class="entry_type_array">
11233 9
11234 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011235 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011236 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011237
11238
11239 </td> <!-- entry_type -->
11240
11241 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011242 <p>Per-device calibration on top of color space
11243transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011244 </td>
11245
11246 <td class="entry_units">
11247 </td>
11248
11249 <td class="entry_range">
11250 </td>
11251
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011252 <td class="entry_tags">
11253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011254 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011255 </ul>
11256 </td>
11257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011258 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011259
11260
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011261 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11262 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011263
11264
11265 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011266 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011267 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011268 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011269 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011270 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011271 <span class="entry_type_container">x</span>
11272
11273 <span class="entry_type_array">
11274 9
11275 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011276 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011277 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011278
11279
11280 </td> <!-- entry_type -->
11281
11282 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011283 <p>Per-device calibration on top of color space
11284transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011285 </td>
11286
11287 <td class="entry_units">
11288 </td>
11289
11290 <td class="entry_range">
11291 </td>
11292
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011293 <td class="entry_tags">
11294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011295 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011296 </ul>
11297 </td>
11298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011299 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011300
11301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11303 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011304
11305
11306 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011307 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011308 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011309 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011310 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011311 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011312 <span class="entry_type_container">x</span>
11313
11314 <span class="entry_type_array">
11315 9
11316 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011317 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011318 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011319
11320
11321 </td> <!-- entry_type -->
11322
11323 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011324 <p>Linear mapping from XYZ (D50) color space to
11325reference linear sensor color,<wbr/> for first reference
11326illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011327 </td>
11328
11329 <td class="entry_units">
11330 </td>
11331
11332 <td class="entry_range">
11333 </td>
11334
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011335 <td class="entry_tags">
11336 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011337 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011338 </ul>
11339 </td>
11340
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011341 </tr>
11342 <tr class="entries_header">
11343 <th class="th_details" colspan="5">Details</th>
11344 </tr>
11345 <tr class="entry_cont">
11346 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011347 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11348black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11349At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011350 </td>
11351 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011352
11353
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011354 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11355 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011356
11357
11358 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011359 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011360 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011361 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011362 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011363 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011364 <span class="entry_type_container">x</span>
11365
11366 <span class="entry_type_array">
11367 9
11368 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011369 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011370 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011371
11372
11373 </td> <!-- entry_type -->
11374
11375 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011376 <p>Linear mapping from XYZ (D50) color space to
11377reference linear sensor color,<wbr/> for second reference
11378illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011379 </td>
11380
11381 <td class="entry_units">
11382 </td>
11383
11384 <td class="entry_range">
11385 </td>
11386
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011387 <td class="entry_tags">
11388 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011389 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011390 </ul>
11391 </td>
11392
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011393 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011394
11395
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011396 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11397 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011398
11399
11400 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011401 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011402 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011403 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011405 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011406 <span class="entry_type_container">x</span>
11407
11408 <span class="entry_type_array">
11409 9
11410 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011411 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011412 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011413
11414
11415 </td> <!-- entry_type -->
11416
11417 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011418 <p>Used by DNG for better WB
11419adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011420 </td>
11421
11422 <td class="entry_units">
11423 </td>
11424
11425 <td class="entry_range">
11426 </td>
11427
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011428 <td class="entry_tags">
11429 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011430 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011431 </ul>
11432 </td>
11433
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011434 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011435
11436
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011437 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11438 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011439
11440
11441 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011442 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011443 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011444 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011445 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011446 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011447 <span class="entry_type_container">x</span>
11448
11449 <span class="entry_type_array">
11450 9
11451 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011452 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011453 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011454
11455
11456 </td> <!-- entry_type -->
11457
11458 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011459 <p>Used by DNG for better WB
11460adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011461 </td>
11462
11463 <td class="entry_units">
11464 </td>
11465
11466 <td class="entry_range">
11467 </td>
11468
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011469 <td class="entry_tags">
11470 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011471 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011472 </ul>
11473 </td>
11474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011475 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011476
11477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011478 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11479 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011480
11481
11482 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011483 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011484 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011485 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011486 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011487 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011488
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011489 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011490
11491
11492 </td> <!-- entry_type -->
11493
11494 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011495 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011496purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011497 </td>
11498
11499 <td class="entry_units">
11500 </td>
11501
11502 <td class="entry_range">
11503 </td>
11504
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011505 <td class="entry_tags">
11506 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011507 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011508 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011509 </ul>
11510 </td>
11511
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011512 </tr>
11513 <tr class="entries_header">
11514 <th class="th_details" colspan="5">Details</th>
11515 </tr>
11516 <tr class="entry_cont">
11517 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011518 <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 -080011519equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011520values above this,<wbr/> the gain applied can be a mix of analog and
11521digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011522 </td>
11523 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011524
11525
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011526 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11527 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011528
11529
11530 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011531 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011532 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011533 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011534 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011535 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011536 <span class="entry_type_container">x</span>
11537
11538 <span class="entry_type_array">
11539 2
11540 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011541 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011542 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011543
11544
11545 </td> <!-- entry_type -->
11546
11547 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011548 <p>Estimation of sensor noise
11549characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011550 </td>
11551
11552 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011553 var(raw pixel value) = electrons * (baseGainFactor
11554 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11555 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011556 </td>
11557
11558 <td class="entry_range">
11559 </td>
11560
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011561 <td class="entry_tags">
11562 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011563 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011564 </ul>
11565 </td>
11566
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011567 </tr>
11568 <tr class="entries_header">
11569 <th class="th_details" colspan="5">Details</th>
11570 </tr>
11571 <tr class="entry_cont">
11572 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011573 <p>A represents sensor read noise before analog
11574amplification; B represents noise from A/<wbr/>D conversion and
11575other circuits after amplification.<wbr/> Both noise sources
11576are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11577across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011578 </td>
11579 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011580
11581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011582 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11583 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011584
11585
11586 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011587 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011588 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011589 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011590 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011591 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011592
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011593 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011594
11595
11596 </td> <!-- entry_type -->
11597
11598 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011599 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011600image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011601screen in its native orientation.<wbr/> Also defines the
11602direction of rolling shutter readout,<wbr/> which is from top
11603to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011604 </td>
11605
11606 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011607 degrees clockwise rotation,<wbr/> only multiples of
11608 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011609 </td>
11610
11611 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011612 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011613 </td>
11614
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011615 <td class="entry_tags">
11616 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011617 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011618 </ul>
11619 </td>
11620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011621 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011622
11623
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011624 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11625 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011626
11627
11628 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011629 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011630 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011631 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011632 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011633 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011634
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011635 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011636
11637 <ul class="entry_type_enum">
11638 <li>
11639 <span class="entry_type_enum_name">DAYLIGHT</span>
11640 <span class="entry_type_enum_value">1</span>
11641 </li>
11642 <li>
11643 <span class="entry_type_enum_name">FLUORESCENT</span>
11644 <span class="entry_type_enum_value">2</span>
11645 </li>
11646 <li>
11647 <span class="entry_type_enum_name">TUNGSTEN</span>
11648 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011649 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011650 </li>
11651 <li>
11652 <span class="entry_type_enum_name">FLASH</span>
11653 <span class="entry_type_enum_value">4</span>
11654 </li>
11655 <li>
11656 <span class="entry_type_enum_name">FINE_WEATHER</span>
11657 <span class="entry_type_enum_value">9</span>
11658 </li>
11659 <li>
11660 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11661 <span class="entry_type_enum_value">10</span>
11662 </li>
11663 <li>
11664 <span class="entry_type_enum_name">SHADE</span>
11665 <span class="entry_type_enum_value">11</span>
11666 </li>
11667 <li>
11668 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11669 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011670 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011671 </li>
11672 <li>
11673 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11674 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011675 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011676 </li>
11677 <li>
11678 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11679 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011680 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011681 </li>
11682 <li>
11683 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11684 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011685 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011686 </li>
11687 <li>
11688 <span class="entry_type_enum_name">STANDARD_A</span>
11689 <span class="entry_type_enum_value">17</span>
11690 </li>
11691 <li>
11692 <span class="entry_type_enum_name">STANDARD_B</span>
11693 <span class="entry_type_enum_value">18</span>
11694 </li>
11695 <li>
11696 <span class="entry_type_enum_name">STANDARD_C</span>
11697 <span class="entry_type_enum_value">19</span>
11698 </li>
11699 <li>
11700 <span class="entry_type_enum_name">D55</span>
11701 <span class="entry_type_enum_value">20</span>
11702 </li>
11703 <li>
11704 <span class="entry_type_enum_name">D65</span>
11705 <span class="entry_type_enum_value">21</span>
11706 </li>
11707 <li>
11708 <span class="entry_type_enum_name">D75</span>
11709 <span class="entry_type_enum_value">22</span>
11710 </li>
11711 <li>
11712 <span class="entry_type_enum_name">D50</span>
11713 <span class="entry_type_enum_value">23</span>
11714 </li>
11715 <li>
11716 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11717 <span class="entry_type_enum_value">24</span>
11718 </li>
11719 </ul>
11720
11721 </td> <!-- entry_type -->
11722
11723 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011724 <p>Light source used to define transform
117251</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011726 </td>
11727
11728 <td class="entry_units">
11729 </td>
11730
11731 <td class="entry_range">
11732 </td>
11733
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011734 <td class="entry_tags">
11735 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011736 <li><a href="#tag_DNG">DNG</a></li>
11737 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011738 </ul>
11739 </td>
11740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011741 </tr>
11742 <tr class="entries_header">
11743 <th class="th_details" colspan="5">Details</th>
11744 </tr>
11745 <tr class="entry_cont">
11746 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011747 <p>[EXIF LightSource tag] Must all these be
11748supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011749 </td>
11750 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011751
11752
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011753 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11754 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011755
11756
11757 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011758 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011759 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011760 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011761 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011762 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011763
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011764 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011765
11766
11767 </td> <!-- entry_type -->
11768
11769 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011770 <p>Light source used to define transform
117712</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011772 </td>
11773
11774 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011775 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011776 </td>
11777
11778 <td class="entry_range">
11779 </td>
11780
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011781 <td class="entry_tags">
11782 </td>
11783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011784 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011785
11786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011787 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11788 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011789
Igor Murashkina46e02f2014-01-09 17:43:38 -080011790
11791 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11792 <td class="entry_name" rowspan="1">
11793 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11794 </td>
11795 <td class="entry_type">
11796 <span class="entry_type_name">byte</span>
11797
11798 <span class="entry_type_visibility"> [public]</span>
11799
11800
11801 </td> <!-- entry_type -->
11802
11803 <td class="entry_description">
11804 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11805pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11806 </td>
11807
11808 <td class="entry_units">
11809 </td>
11810
11811 <td class="entry_range">
11812 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11813 </td>
11814
11815 <td class="entry_tags">
11816 </td>
11817
11818 </tr>
11819
11820
11821 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11822 <!-- end of entry -->
11823
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011824
11825
11826 <!-- end of kind -->
11827 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011828 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011829
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011830 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011831 <tr>
11832 <th class="th_name">Property Name</th>
11833 <th class="th_type">Type</th>
11834 <th class="th_description">Description</th>
11835 <th class="th_units">Units</th>
11836 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011837 <th class="th_tags">Tags</th>
11838 </tr>
11839 </thead>
11840
11841 <tbody>
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011854 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011857 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011858
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011859 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011860
11861
11862 </td> <!-- entry_type -->
11863
11864 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011865 <p>Duration each pixel is exposed to
11866light.<wbr/></p>
11867<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11868duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011869 </td>
11870
11871 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011872 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011873 </td>
11874
11875 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011876 <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 -080011877 </td>
11878
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011879 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011880 <ul class="entry_tags">
11881 <li><a href="#tag_V1">V1</a></li>
11882 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011883 </td>
11884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011885 </tr>
11886 <tr class="entries_header">
11887 <th class="th_details" colspan="5">Details</th>
11888 </tr>
11889 <tr class="entry_cont">
11890 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011891 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011892 </td>
11893 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011894
11895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011896 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11897 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011898
11899
11900 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011901 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011902 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011903 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011904 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011905 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011906
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011908
11909
11910 </td> <!-- entry_type -->
11911
11912 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011913 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011914start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011915 </td>
11916
11917 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011918 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011919 </td>
11920
11921 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011922 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11923android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
11924is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011925 </td>
11926
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011927 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011928 <ul class="entry_tags">
11929 <li><a href="#tag_V1">V1</a></li>
11930 <li><a href="#tag_BC">BC</a></li>
11931 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011932 </td>
11933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011934 </tr>
11935 <tr class="entries_header">
11936 <th class="th_details" colspan="5">Details</th>
11937 </tr>
11938 <tr class="entry_cont">
11939 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011940 <p>The maximum frame rate that can be supported by a camera subsystem is
11941a function of many factors:</p>
11942<ul>
11943<li>Requested resolutions of output image streams</li>
11944<li>Availability of binning /<wbr/> skipping modes on the imager</li>
11945<li>The bandwidth of the imager interface</li>
11946<li>The bandwidth of the various ISP processing blocks</li>
11947</ul>
11948<p>Since these factors can vary greatly between different ISPs and
11949sensors,<wbr/> the camera abstraction tries to represent the bandwidth
11950restrictions with as simple a model as possible.<wbr/></p>
11951<p>The model presented has the following characteristics:</p>
11952<ul>
11953<li>The image sensor is always configured to output the smallest
11954resolution possible given the application's requested output stream
11955sizes.<wbr/> The smallest resolution is defined as being at least as large
11956as the largest requested output stream size; the camera pipeline must
11957never digitally upsample sensor data when the crop region covers the
11958whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
11959resolutions are configured,<wbr/> the sensor can provide a higher frame
11960rate.<wbr/></li>
11961<li>Since any request may use any or all the currently configured
11962output streams,<wbr/> the sensor and ISP must be configured to support
11963scaling a single capture to all the streams at the same time.<wbr/> This
11964means the camera pipeline must be ready to produce the largest
11965requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
11966frame rate of a given configured stream set is governed only by the
11967largest requested stream resolution.<wbr/></li>
11968<li>Using more than one output stream in a request does not affect the
11969frame duration.<wbr/></li>
11970<li>JPEG streams act like processed YUV streams in requests for which
11971they are not included; in requests in which they are directly
11972referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
11973JPEG stream requires the underlying YUV data to always be ready for
11974use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
11975frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
11976<li>The JPEG processor can run concurrently to the rest of the camera
11977pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
11978</ul>
11979<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
11980is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
11981These are used to determine the maximum frame rate /<wbr/> minimum frame
11982duration that is possible for a given stream configuration.<wbr/></p>
11983<p>Specifically,<wbr/> the application can use the following rules to
11984determine the minimum frame duration it can request from the HAL
11985device:</p>
11986<ol>
11987<li>Given the application's currently configured set of output
11988streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
11989<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
11990<code>SP</code>.<wbr/></li>
11991<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
11992count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
11993<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
11994<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
11995no exact match for <code>RP == RJ</code> (in particular there isn't an available
11996processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
11997to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
11998there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
11999the processed resolution closest to <code>RJ</code>.<wbr/></li>
12000<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
12001no exact match for <code>RR == RP</code> (in particular there isn't an available
12002raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12003or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12004there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12005the raw resolution closest to <code>RP</code>.<wbr/></li>
12006<li>Look up the matching minimum frame durations in the property lists
12007<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12008<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12009<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12010minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12011<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12012supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12013<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12014supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12015<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12016the application,<wbr/> then the HAL will have to delay JPEG-using requests
12017whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12018This will happen whenever a JPEG-using request starts capture less
12019than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12020supported frame duration will vary between the values calculated in
12021#6 and #7.<wbr/></li>
12022</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012023 </td>
12024 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012025
12026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012027 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12028 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012029
12030
12031 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012032 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012033 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012034 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012035 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012036 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012037
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012038 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012039
12040
12041 </td> <!-- entry_type -->
12042
12043 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012044 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012045implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012046below 'maximum analog sensitivity'.<wbr/></p>
12047<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12048gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012049 </td>
12050
12051 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012052 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012053 </td>
12054
12055 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012056 <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 -080012057 </td>
12058
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012059 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012060 <ul class="entry_tags">
12061 <li><a href="#tag_V1">V1</a></li>
12062 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012063 </td>
12064
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012065 </tr>
12066 <tr class="entries_header">
12067 <th class="th_details" colspan="5">Details</th>
12068 </tr>
12069 <tr class="entry_cont">
12070 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012071 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012072 </td>
12073 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012074
12075
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012076 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12077 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012078
12079
12080 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012081 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012082 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012083 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012084 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012085 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012086
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012087 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012088
12089
12090 </td> <!-- entry_type -->
12091
12092 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012093 <p>Time at start of exposure of first
12094row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012095 </td>
12096
12097 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012098 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012099 </td>
12100
12101 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012102 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012103 </td>
12104
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012105 <td class="entry_tags">
12106 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012107 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012108 </ul>
12109 </td>
12110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012111 </tr>
12112 <tr class="entries_header">
12113 <th class="th_details" colspan="5">Details</th>
12114 </tr>
12115 <tr class="entry_cont">
12116 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012117 <p>Monotonic,<wbr/> should be synced to other timestamps in
12118system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012119 </td>
12120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012121
12122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012123 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12124 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012125
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012126
12127 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012128 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012129 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012130 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012131 <td class="entry_type">
12132 <span class="entry_type_name">float</span>
12133
12134 <span class="entry_type_visibility"> [public]</span>
12135
12136
12137 </td> <!-- entry_type -->
12138
12139 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012140 <p>The temperature of the sensor,<wbr/> sampled at the time
12141exposure began for this frame.<wbr/></p>
12142<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12143somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012144 </td>
12145
12146 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012147 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012148 </td>
12149
12150 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012151 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012152 </td>
12153
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012154 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012155 <ul class="entry_tags">
12156 <li><a href="#tag_FULL">FULL</a></li>
12157 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012158 </td>
12159
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012160 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012161
12162
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012163 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12164 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012165
Igor Murashkina46e02f2014-01-09 17:43:38 -080012166
12167 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12168 <td class="entry_name" rowspan="5">
12169 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12170 </td>
12171 <td class="entry_type">
12172 <span class="entry_type_name entry_type_name_enum">int32</span>
12173
12174 <span class="entry_type_visibility"> [public]</span>
12175
12176 <ul class="entry_type_enum">
12177 <li>
12178 <span class="entry_type_enum_name">OFF</span>
12179 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12180device returns captures from the image sensor.<wbr/></p></span>
12181 </li>
12182 <li>
12183 <span class="entry_type_enum_name">SOLID_COLOR</span>
12184 <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
12185respective color channel provided in
12186<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12187<p>For example:</p>
12188<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12189</code></pre>
12190<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12191<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12192</code></pre>
12193<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12194are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12195 </li>
12196 <li>
12197 <span class="entry_type_enum_name">COLOR_BARS</span>
12198 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12199<p>The vertical bars (left-to-right) are as follows:</p>
12200<ul>
12201<li>100% white</li>
12202<li>yellow</li>
12203<li>cyan</li>
12204<li>green</li>
12205<li>magenta</li>
12206<li>red</li>
12207<li>blue</li>
12208<li>black</li>
12209</ul>
12210<p>In general the image would look like the following:</p>
12211<pre><code>W Y C G M R B K
12212W Y C G M R B K
12213W Y C G M R B K
12214W Y C G M R B K
12215W Y C G M R B K
12216.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12217.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12218.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12219
12220(B = Blue,<wbr/> K = Black)
12221</code></pre>
12222<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12223When this is not possible,<wbr/> the bar size should be rounded
12224down to the nearest integer and the pattern can repeat
12225on the right side.<wbr/></p>
12226<p>Each bar's height must always take up the full sensor
12227pixel array height.<wbr/></p>
12228<p>Each pixel in this test pattern must be set to either
122290% intensity or 100% intensity.<wbr/></p></span>
12230 </li>
12231 <li>
12232 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12233 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12234each bar should start at its specified color at the top,<wbr/>
12235and fade to gray at the bottom.<wbr/></p>
12236<p>Furthermore each bar is further subdivided into a left and
12237right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12238and the right half should have a quantized gradient.<wbr/></p>
12239<p>In particular,<wbr/> the right half's should consist of blocks of the
12240same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12241<p>The least significant bits in the quantized gradient should
12242be copied from the most significant bits of the smooth gradient.<wbr/></p>
12243<p>The height of each bar should always be a multiple of 128.<wbr/>
12244When this is not the case,<wbr/> the pattern should repeat at the bottom
12245of the image.<wbr/></p></span>
12246 </li>
12247 <li>
12248 <span class="entry_type_enum_name">PN9</span>
12249 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12250generated from a PN9 512-bit sequence (typically implemented
12251in hardware with a linear feedback shift register).<wbr/></p>
12252<p>The generator should be reset at the beginning of each frame,<wbr/>
12253and thus each subsequent raw frame with this test pattern should
12254be exactly the same as the last.<wbr/></p></span>
12255 </li>
12256 <li>
12257 <span class="entry_type_enum_name">CUSTOM1</span>
12258 <span class="entry_type_enum_value">256</span>
12259 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12260available only on this camera device are at least this numeric
12261value.<wbr/></p>
12262<p>All of the custom test patterns will be static
12263(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12264 </li>
12265 </ul>
12266
12267 </td> <!-- entry_type -->
12268
12269 <td class="entry_description">
12270 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12271doing a real exposure from the camera.<wbr/></p>
12272 </td>
12273
12274 <td class="entry_units">
12275 </td>
12276
12277 <td class="entry_range">
12278 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12279<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12280 </td>
12281
12282 <td class="entry_tags">
12283 </td>
12284
12285 </tr>
12286 <tr class="entries_header">
12287 <th class="th_details" colspan="5">Details</th>
12288 </tr>
12289 <tr class="entry_cont">
12290 <td class="entry_details" colspan="5">
12291 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12292by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12293work as normal.<wbr/></p>
12294<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12295occur (and that the test pattern remain unmodified,<wbr/> since the flash
12296would not actually affect it).<wbr/></p>
12297 </td>
12298 </tr>
12299
12300 <tr class="entries_header">
12301 <th class="th_details" colspan="5">HAL Implementation Details</th>
12302 </tr>
12303 <tr class="entry_cont">
12304 <td class="entry_details" colspan="5">
12305 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12306<p>The HAL may choose to substitute test patterns from the sensor
12307with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12308indistinguishable to the ISP whether the data came from the
12309sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12310 </td>
12311 </tr>
12312
12313 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12314 <!-- end of entry -->
12315
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012316
12317
12318 <!-- end of kind -->
12319 </tbody>
12320
12321 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012322 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012323
12324
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012325 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012326
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012327 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012328 <tr>
12329 <th class="th_name">Property Name</th>
12330 <th class="th_type">Type</th>
12331 <th class="th_description">Description</th>
12332 <th class="th_units">Units</th>
12333 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012334 <th class="th_tags">Tags</th>
12335 </tr>
12336 </thead>
12337
12338 <tbody>
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012350 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012351 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012352 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012353 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012354 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012355
Zhijun He2f86a212014-01-15 10:34:02 -080012356 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012357
12358 <ul class="entry_type_enum">
12359 <li>
12360 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012361 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012362 </li>
12363 <li>
12364 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012365 <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 -080012366 </li>
12367 <li>
12368 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012369 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012370 </li>
12371 </ul>
12372
12373 </td> <!-- entry_type -->
12374
12375 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012376 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012377to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012378 </td>
12379
12380 <td class="entry_units">
12381 </td>
12382
12383 <td class="entry_range">
12384 </td>
12385
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012386 <td class="entry_tags">
12387 </td>
12388
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012389 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012390 <tr class="entries_header">
12391 <th class="th_details" colspan="5">Details</th>
12392 </tr>
12393 <tr class="entry_cont">
12394 <td class="entry_details" colspan="5">
12395 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12396camera device,<wbr/> and an identity lens shading map data will be provided
12397if <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
12398shading 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/>
12399the 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
12400shown below:</p>
12401<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/>
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,<wbr/>
12405 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/>
12406 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 ]
12407</code></pre>
12408<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12409camera device.<wbr/> Applications can request lens shading map data by setting
12410<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
12411lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12412by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12413 </td>
12414 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012415
12416
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012417 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12418 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012419
12420
12421 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012422 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012423 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012424 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012425 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012426 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012427
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012428 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012429
12430
12431 </td> <!-- entry_type -->
12432
12433 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012434 <p>Control the amount of shading correction
12435applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012436 </td>
12437
12438 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012439 unitless: 1-10; 10 is full shading
12440 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012441 </td>
12442
12443 <td class="entry_range">
12444 </td>
12445
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012446 <td class="entry_tags">
12447 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012448 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012449 </ul>
12450 </td>
12451
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012452 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012453
12454
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012455 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12456 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012457
12458
12459
12460 <!-- end of kind -->
12461 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012462 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012463
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012464 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012465 <tr>
12466 <th class="th_name">Property Name</th>
12467 <th class="th_type">Type</th>
12468 <th class="th_description">Description</th>
12469 <th class="th_units">Units</th>
12470 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012471 <th class="th_tags">Tags</th>
12472 </tr>
12473 </thead>
12474
12475 <tbody>
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012487 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012488 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012489 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012490 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012491 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012492
Zhijun He2f86a212014-01-15 10:34:02 -080012493 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012494
12495 <ul class="entry_type_enum">
12496 <li>
12497 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012498 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012499 </li>
12500 <li>
12501 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012502 <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 -080012503 </li>
12504 <li>
12505 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012506 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012507 </li>
12508 </ul>
12509
12510 </td> <!-- entry_type -->
12511
12512 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012513 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012514to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012515 </td>
12516
12517 <td class="entry_units">
12518 </td>
12519
12520 <td class="entry_range">
12521 </td>
12522
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012523 <td class="entry_tags">
12524 </td>
12525
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012526 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012527 <tr class="entries_header">
12528 <th class="th_details" colspan="5">Details</th>
12529 </tr>
12530 <tr class="entry_cont">
12531 <td class="entry_details" colspan="5">
12532 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12533camera device,<wbr/> and an identity lens shading map data will be provided
12534if <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
12535shading 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/>
12536the 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
12537shown below:</p>
12538<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/>
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,<wbr/>
12542 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/>
12543 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 ]
12544</code></pre>
12545<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12546camera device.<wbr/> Applications can request lens shading map data by setting
12547<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
12548lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12549by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12550 </td>
12551 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012552
12553
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012554 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12555 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012556
12557
12558
12559 <!-- end of kind -->
12560 </tbody>
12561
12562 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012563 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012564
12565
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012566 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012567
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012568 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012569 <tr>
12570 <th class="th_name">Property Name</th>
12571 <th class="th_type">Type</th>
12572 <th class="th_description">Description</th>
12573 <th class="th_units">Units</th>
12574 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012575 <th class="th_tags">Tags</th>
12576 </tr>
12577 </thead>
12578
12579 <tbody>
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012591 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012592 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012593 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012594 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012595 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012596
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012597 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012598
12599 <ul class="entry_type_enum">
12600 <li>
12601 <span class="entry_type_enum_name">OFF</span>
12602 </li>
12603 <li>
12604 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012605 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12606only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012607 </li>
12608 <li>
12609 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012610 <span class="entry_type_enum_notes"><p>Optional Return all face
12611metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012612 </li>
12613 </ul>
12614
12615 </td> <!-- entry_type -->
12616
12617 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012618 <p>State of the face detector
12619unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012620 </td>
12621
12622 <td class="entry_units">
12623 </td>
12624
12625 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012626 <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 -080012627 </td>
12628
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012629 <td class="entry_tags">
12630 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012631 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012632 </ul>
12633 </td>
12634
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012635 </tr>
12636 <tr class="entries_header">
12637 <th class="th_details" colspan="5">Details</th>
12638 </tr>
12639 <tr class="entry_cont">
12640 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012641 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012642should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012643fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012644<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 -080012645 </td>
12646 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012647
12648
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012649 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12650 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012651
12652
12653 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012654 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012655 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012658 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012659
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012660 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012661
12662 <ul class="entry_type_enum">
12663 <li>
12664 <span class="entry_type_enum_name">OFF</span>
12665 </li>
12666 <li>
12667 <span class="entry_type_enum_name">ON</span>
12668 </li>
12669 </ul>
12670
12671 </td> <!-- entry_type -->
12672
12673 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012674 <p>Operating mode for histogram
12675generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012676 </td>
12677
12678 <td class="entry_units">
12679 </td>
12680
12681 <td class="entry_range">
12682 </td>
12683
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012684 <td class="entry_tags">
12685 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012686 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012687 </ul>
12688 </td>
12689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012690 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012691
12692
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012693 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12694 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012695
12696
12697 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012698 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012699 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012700 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012701 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012702 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012703
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012704 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012705
12706 <ul class="entry_type_enum">
12707 <li>
12708 <span class="entry_type_enum_name">OFF</span>
12709 </li>
12710 <li>
12711 <span class="entry_type_enum_name">ON</span>
12712 </li>
12713 </ul>
12714
12715 </td> <!-- entry_type -->
12716
12717 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012718 <p>Operating mode for sharpness map
12719generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012720 </td>
12721
12722 <td class="entry_units">
12723 </td>
12724
12725 <td class="entry_range">
12726 </td>
12727
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012728 <td class="entry_tags">
12729 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012730 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012731 </ul>
12732 </td>
12733
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012735
12736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012739
Zhijun He69fc0ea2013-07-17 09:42:58 -070012740
12741 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012742 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012743 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012744 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012745 <td class="entry_type">
12746 <span class="entry_type_name entry_type_name_enum">byte</span>
12747
12748 <span class="entry_type_visibility"> [public]</span>
12749
12750 <ul class="entry_type_enum">
12751 <li>
12752 <span class="entry_type_enum_name">OFF</span>
12753 </li>
12754 <li>
12755 <span class="entry_type_enum_name">ON</span>
12756 </li>
12757 </ul>
12758
12759 </td> <!-- entry_type -->
12760
12761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012762 <p>Whether the HAL needs to output the lens
12763shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012764 </td>
12765
12766 <td class="entry_units">
12767 </td>
12768
12769 <td class="entry_range">
12770 </td>
12771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012772 <td class="entry_tags">
12773 </td>
12774
12775 </tr>
12776 <tr class="entries_header">
12777 <th class="th_details" colspan="5">Details</th>
12778 </tr>
12779 <tr class="entry_cont">
12780 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012781 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012782<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 -080012783the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012784 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012785 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012786
12787
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012788 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12789 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012790
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012791
12792
12793 <!-- end of kind -->
12794 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012795 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012796
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012797 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012798 <tr>
12799 <th class="th_name">Property Name</th>
12800 <th class="th_type">Type</th>
12801 <th class="th_description">Description</th>
12802 <th class="th_units">Units</th>
12803 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012804 <th class="th_tags">Tags</th>
12805 </tr>
12806 </thead>
12807
12808 <tbody>
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012822 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012823 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012826 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012827 <span class="entry_type_container">x</span>
12828
12829 <span class="entry_type_array">
12830 n
12831 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012833 <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 -080012834
12835
12836 </td> <!-- entry_type -->
12837
12838 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012839 <p>Which face detection modes are available,<wbr/>
12840if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012841 </td>
12842
12843 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012844 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012845 OFF
12846 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012847 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012848 </td>
12849
12850 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012851 </td>
12852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012853 <td class="entry_tags">
12854 </td>
12855
12856 </tr>
12857 <tr class="entries_header">
12858 <th class="th_details" colspan="5">Details</th>
12859 </tr>
12860 <tr class="entry_cont">
12861 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012862 <p>OFF means face detection is disabled,<wbr/> it must
12863be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012864<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012865<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12866<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012867<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012868<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12869<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012870 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012871 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012872
12873
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012874 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12875 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012876
12877
12878 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012879 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012880 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012881 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012882 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012883 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012884
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012885 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012886
12887
12888 </td> <!-- entry_type -->
12889
12890 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012891 <p>Number of histogram buckets
12892supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012893 </td>
12894
12895 <td class="entry_units">
12896 </td>
12897
12898 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012899 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012900 </td>
12901
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012902 <td class="entry_tags">
12903 </td>
12904
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012906
12907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012910
12911
12912 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012913 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012914 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012915 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012916 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012917 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012918
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012919 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012920
12921
12922 </td> <!-- entry_type -->
12923
12924 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012925 <p>Maximum number of simultaneously detectable
12926faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012927 </td>
12928
12929 <td class="entry_units">
12930 </td>
12931
12932 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012933 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012934modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012935 </td>
12936
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012937 <td class="entry_tags">
12938 </td>
12939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012940 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012941
12942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012943 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12944 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012945
12946
12947 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012948 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012949 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012950 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012951 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012952 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012953
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012954 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012955
12956
12957 </td> <!-- entry_type -->
12958
12959 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012960 <p>Maximum value possible for a histogram
12961bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012962 </td>
12963
12964 <td class="entry_units">
12965 </td>
12966
12967 <td class="entry_range">
12968 </td>
12969
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012970 <td class="entry_tags">
12971 </td>
12972
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012973 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012974
12975
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012976 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12977 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012978
12979
12980 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012981 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012982 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012983 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012984 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012985 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012986
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012987 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012988
12989
12990 </td> <!-- entry_type -->
12991
12992 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012993 <p>Maximum value possible for a sharpness map
12994region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012995 </td>
12996
12997 <td class="entry_units">
12998 </td>
12999
13000 <td class="entry_range">
13001 </td>
13002
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013003 <td class="entry_tags">
13004 </td>
13005
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013006 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013007
13008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013009 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13010 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013011
13012
13013 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013014 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013015 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013016 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013017 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013018 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013019 <span class="entry_type_container">x</span>
13020
13021 <span class="entry_type_array">
13022 2
13023 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013024 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013025 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013026
13027
13028 </td> <!-- entry_type -->
13029
13030 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013031 <p>Dimensions of the sharpness
13032map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013033 </td>
13034
13035 <td class="entry_units">
13036 </td>
13037
13038 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013039 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013040 </td>
13041
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013042 <td class="entry_tags">
13043 </td>
13044
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013045 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013046
13047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013048 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13049 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013050
13051
13052
13053
13054
13055
13056 <!-- end of kind -->
13057 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013058 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013060 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013061 <tr>
13062 <th class="th_name">Property Name</th>
13063 <th class="th_type">Type</th>
13064 <th class="th_description">Description</th>
13065 <th class="th_units">Units</th>
13066 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013067 <th class="th_tags">Tags</th>
13068 </tr>
13069 </thead>
13070
13071 <tbody>
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013083 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013084 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013087 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013088
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013089 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013090
13091 <ul class="entry_type_enum">
13092 <li>
13093 <span class="entry_type_enum_name">OFF</span>
13094 </li>
13095 <li>
13096 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013097 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13098only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013099 </li>
13100 <li>
13101 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013102 <span class="entry_type_enum_notes"><p>Optional Return all face
13103metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013104 </li>
13105 </ul>
13106
13107 </td> <!-- entry_type -->
13108
13109 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013110 <p>State of the face detector
13111unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013112 </td>
13113
13114 <td class="entry_units">
13115 </td>
13116
13117 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013118 <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 -080013119 </td>
13120
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013121 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013122 <ul class="entry_tags">
13123 <li><a href="#tag_BC">BC</a></li>
13124 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013125 </td>
13126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013127 </tr>
13128 <tr class="entries_header">
13129 <th class="th_details" colspan="5">Details</th>
13130 </tr>
13131 <tr class="entry_cont">
13132 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013133 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013134should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013135fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013136<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 -080013137 </td>
13138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013139
13140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013141 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13142 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013143
13144
13145 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013146 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013147 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013148 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013150 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013151 <span class="entry_type_container">x</span>
13152
13153 <span class="entry_type_array">
13154 n
13155 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013156 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013157
13158
13159 </td> <!-- entry_type -->
13160
13161 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013162 <p>List of unique IDs for detected
13163faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013164 </td>
13165
13166 <td class="entry_units">
13167 </td>
13168
13169 <td class="entry_range">
13170 </td>
13171
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013172 <td class="entry_tags">
13173 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013174 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013175 </ul>
13176 </td>
13177
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013178 </tr>
13179 <tr class="entries_header">
13180 <th class="th_details" colspan="5">Details</th>
13181 </tr>
13182 <tr class="entry_cont">
13183 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013184 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013185 </td>
13186 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013187
13188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013189 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13190 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013191
13192
13193 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013194 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013195 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013196 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013197 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013198 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013199 <span class="entry_type_container">x</span>
13200
13201 <span class="entry_type_array">
13202 n x 6
13203 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013204 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013205 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013206
13207
13208 </td> <!-- entry_type -->
13209
13210 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013211 <p>List of landmarks for detected
13212faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013213 </td>
13214
13215 <td class="entry_units">
13216 </td>
13217
13218 <td class="entry_range">
13219 </td>
13220
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013221 <td class="entry_tags">
13222 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013223 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013224 </ul>
13225 </td>
13226
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013227 </tr>
13228 <tr class="entries_header">
13229 <th class="th_details" colspan="5">Details</th>
13230 </tr>
13231 <tr class="entry_cont">
13232 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013233 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013234 </td>
13235 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013236
13237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013238 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13239 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013240
13241
13242 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013243 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013244 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013245 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013246 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013247 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013248 <span class="entry_type_container">x</span>
13249
13250 <span class="entry_type_array">
13251 n x 4
13252 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013253 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013254 <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 -080013255
13256
13257 </td> <!-- entry_type -->
13258
13259 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013260 <p>List of the bounding rectangles for detected
13261faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013262 </td>
13263
13264 <td class="entry_units">
13265 </td>
13266
13267 <td class="entry_range">
13268 </td>
13269
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013270 <td class="entry_tags">
13271 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013272 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013273 </ul>
13274 </td>
13275
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013276 </tr>
13277 <tr class="entries_header">
13278 <th class="th_details" colspan="5">Details</th>
13279 </tr>
13280 <tr class="entry_cont">
13281 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013282 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013283 </td>
13284 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013285
13286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013287 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13288 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013289
13290
13291 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013292 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013293 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013294 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013295 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013296 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013297 <span class="entry_type_container">x</span>
13298
13299 <span class="entry_type_array">
13300 n
13301 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013302 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013303
13304
13305 </td> <!-- entry_type -->
13306
13307 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013308 <p>List of the face confidence scores for
13309detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013310 </td>
13311
13312 <td class="entry_units">
13313 </td>
13314
13315 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013316 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013317 </td>
13318
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013319 <td class="entry_tags">
13320 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013321 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013322 </ul>
13323 </td>
13324
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013325 </tr>
13326 <tr class="entries_header">
13327 <th class="th_details" colspan="5">Details</th>
13328 </tr>
13329 <tr class="entry_cont">
13330 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013331 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13332meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013333 </td>
13334 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013335
13336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013337 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13338 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013339
13340
13341 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013342 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013343 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013346 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013347 <span class="entry_type_container">x</span>
13348
13349 <span class="entry_type_array">
13350 n x 3
13351 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013352 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013353 <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 -080013354
13355
13356 </td> <!-- entry_type -->
13357
13358 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013359 <p>A 3-channel histogram based on the raw
13360sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013361 </td>
13362
13363 <td class="entry_units">
13364 </td>
13365
13366 <td class="entry_range">
13367 </td>
13368
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013369 <td class="entry_tags">
13370 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013371 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013372 </ul>
13373 </td>
13374
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013375 </tr>
13376 <tr class="entries_header">
13377 <th class="th_details" colspan="5">Details</th>
13378 </tr>
13379 <tr class="entry_cont">
13380 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013381 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013382(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 -080013383(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13384supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013385 </td>
13386 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013387
13388
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013389 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13390 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013391
13392
13393 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013394 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013395 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013396 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013397 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013398 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013399
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013400 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013401
13402 <ul class="entry_type_enum">
13403 <li>
13404 <span class="entry_type_enum_name">OFF</span>
13405 </li>
13406 <li>
13407 <span class="entry_type_enum_name">ON</span>
13408 </li>
13409 </ul>
13410
13411 </td> <!-- entry_type -->
13412
13413 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013414 <p>Operating mode for histogram
13415generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013416 </td>
13417
13418 <td class="entry_units">
13419 </td>
13420
13421 <td class="entry_range">
13422 </td>
13423
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013424 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013425 <ul class="entry_tags">
13426 <li><a href="#tag_V1">V1</a></li>
13427 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013428 </td>
13429
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013430 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013431
13432
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013433 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13434 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013435
13436
13437 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013438 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013439 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013440 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013441 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013442 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013443 <span class="entry_type_container">x</span>
13444
13445 <span class="entry_type_array">
13446 n x m x 3
13447 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013448 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013449 <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 -080013450
13451
13452 </td> <!-- entry_type -->
13453
13454 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013455 <p>A 3-channel sharpness map,<wbr/> based on the raw
13456sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013457 </td>
13458
13459 <td class="entry_units">
13460 </td>
13461
13462 <td class="entry_range">
13463 </td>
13464
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013465 <td class="entry_tags">
13466 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013467 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013468 </ul>
13469 </td>
13470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013471 </tr>
13472 <tr class="entries_header">
13473 <th class="th_details" colspan="5">Details</th>
13474 </tr>
13475 <tr class="entry_cont">
13476 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013477 <p>If only a monochrome sharpness map is supported,<wbr/>
13478all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013479 </td>
13480 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013481
13482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013483 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13484 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013485
13486
13487 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013488 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013489 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013490 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013491 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013492 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013494 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013495
13496 <ul class="entry_type_enum">
13497 <li>
13498 <span class="entry_type_enum_name">OFF</span>
13499 </li>
13500 <li>
13501 <span class="entry_type_enum_name">ON</span>
13502 </li>
13503 </ul>
13504
13505 </td> <!-- entry_type -->
13506
13507 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013508 <p>Operating mode for sharpness map
13509generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013510 </td>
13511
13512 <td class="entry_units">
13513 </td>
13514
13515 <td class="entry_range">
13516 </td>
13517
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013518 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013519 <ul class="entry_tags">
13520 <li><a href="#tag_V1">V1</a></li>
13521 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013522 </td>
13523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013524 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013525
13526
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013527 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13528 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013529
Zhijun He69fc0ea2013-07-17 09:42:58 -070013530
13531 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013532 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013533 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013534 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013535 <td class="entry_type">
13536 <span class="entry_type_name">float</span>
13537 <span class="entry_type_container">x</span>
13538
13539 <span class="entry_type_array">
13540 4 x n x m
13541 </span>
13542 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013543 <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 -070013544
13545
13546 </td> <!-- entry_type -->
13547
13548 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013549 <p>The shading map is a low-resolution floating-point map
13550that lists the coefficients used to correct for vignetting,<wbr/> for each
13551Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013552 </td>
13553
13554 <td class="entry_units">
13555 </td>
13556
13557 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013558 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013559 </td>
13560
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013561 <td class="entry_tags">
13562 </td>
13563
13564 </tr>
13565 <tr class="entries_header">
13566 <th class="th_details" colspan="5">Details</th>
13567 </tr>
13568 <tr class="entry_cont">
13569 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013570 <p>The least shaded section of the image should have a gain factor
13571of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013572<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 -080013573must take into account the colorCorrection settings.<wbr/></p>
13574<p>The shading map is for the entire active pixel array,<wbr/> and is not
13575affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013576entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013577pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13578map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13579(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13580pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13581The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13582<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13583channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13584The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013585is 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 -080013586<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13587and must be smaller than 64x64.<wbr/></p>
13588<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013589<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13590<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013591[ 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/>
13592 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/>
13593 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/>
13594 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/>
13595 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/>
13596 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 -080013597</code></pre>
13598<p>The low-resolution scaling map images for each channel are
13599(displayed using nearest-neighbor interpolation):</p>
13600<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13601<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13602<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13603<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013604<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013605image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013606<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 -070013607 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013609
13610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13612 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013613
13614
13615 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013616 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013617 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013618 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013619 <td class="entry_type">
13620 <span class="entry_type_name">float</span>
13621 <span class="entry_type_container">x</span>
13622
13623 <span class="entry_type_array">
13624 4
13625 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013626 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013627 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013628
13629
13630 </td> <!-- entry_type -->
13631
13632 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013633 <p>The best-fit color channel gains calculated
13634by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013635 </td>
13636
13637 <td class="entry_units">
13638 </td>
13639
13640 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013641 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013642 </td>
13643
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013644 <td class="entry_tags">
13645 </td>
13646
13647 </tr>
13648 <tr class="entries_header">
13649 <th class="th_details" colspan="5">Details</th>
13650 </tr>
13651 <tr class="entry_cont">
13652 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013653 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013654since statistics processing on data from a new frame
13655typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013656applied to that frame.<wbr/></p>
13657<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013658see <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 -080013659<p>This value should always be calculated by the AWB block,<wbr/>
13660regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013661 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013662 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013663
13664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013665 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13666 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013667
13668
13669 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013670 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013671 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013672 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013673 <td class="entry_type">
13674 <span class="entry_type_name">rational</span>
13675 <span class="entry_type_container">x</span>
13676
13677 <span class="entry_type_array">
13678 3 x 3
13679 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013680 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013681 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013682
13683
13684 </td> <!-- entry_type -->
13685
13686 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013687 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013688calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013689output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013690 </td>
13691
13692 <td class="entry_units">
13693 </td>
13694
13695 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013696 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013697 </td>
13698
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013699 <td class="entry_tags">
13700 </td>
13701
13702 </tr>
13703 <tr class="entries_header">
13704 <th class="th_details" colspan="5">Details</th>
13705 </tr>
13706 <tr class="entry_cont">
13707 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013708 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013709statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013710for the next frame.<wbr/> These are the values the HAL believes
13711are the best fit for the current output frame.<wbr/> This may
13712be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013713statistics processing on data from a new frame typically
13714completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013715that frame.<wbr/></p>
13716<p>These estimates must be provided for all frames,<wbr/> even if
13717capture settings and color transforms are set by the application.<wbr/></p>
13718<p>This value should always be calculated by the AWB block,<wbr/>
13719regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013720 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013721 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013722
13723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013724 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13725 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013726
13727
13728 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013729 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013730 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013731 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013732 <td class="entry_type">
13733 <span class="entry_type_name entry_type_name_enum">byte</span>
13734
13735 <span class="entry_type_visibility"> [public]</span>
13736
13737 <ul class="entry_type_enum">
13738 <li>
13739 <span class="entry_type_enum_name">NONE</span>
13740 </li>
13741 <li>
13742 <span class="entry_type_enum_name">50HZ</span>
13743 </li>
13744 <li>
13745 <span class="entry_type_enum_name">60HZ</span>
13746 </li>
13747 </ul>
13748
13749 </td> <!-- entry_type -->
13750
13751 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013752 <p>The HAL estimated scene illumination lighting
13753frequency</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013754 </td>
13755
13756 <td class="entry_units">
13757 </td>
13758
13759 <td class="entry_range">
13760 </td>
13761
Zhijun He69fc0ea2013-07-17 09:42:58 -070013762 <td class="entry_tags">
13763 </td>
13764
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013765 </tr>
13766 <tr class="entries_header">
13767 <th class="th_details" colspan="5">Details</th>
13768 </tr>
13769 <tr class="entry_cont">
13770 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013771 <p>Report NONE if there doesn't appear to be flickering
13772illumination</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013773 </td>
13774 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013775
13776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013777 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13778 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013779
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013780
13781
13782 <!-- end of kind -->
13783 </tbody>
13784
13785 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013786 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013787
13788
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013789 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013790
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013791 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013792 <tr>
13793 <th class="th_name">Property Name</th>
13794 <th class="th_type">Type</th>
13795 <th class="th_description">Description</th>
13796 <th class="th_units">Units</th>
13797 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013798 <th class="th_tags">Tags</th>
13799 </tr>
13800 </thead>
13801
13802 <tbody>
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013814 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013815 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013816 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013817 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013818 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013819 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013820
Zhijun He704d1282013-08-19 15:26:33 -070013821 <span class="entry_type_array">
13822 n x 2
13823 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013824 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013825 <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 -080013826
13827
13828 </td> <!-- entry_type -->
13829
13830 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013831 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13832channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13833CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013834 </td>
13835
13836 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013837 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013838 </td>
13839
13840 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013841 <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 -080013842 </td>
13843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013844 <td class="entry_tags">
13845 </td>
13846
13847 </tr>
13848 <tr class="entries_header">
13849 <th class="th_details" colspan="5">Details</th>
13850 </tr>
13851 <tr class="entry_cont">
13852 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013853 <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 -080013854 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013855 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013856
13857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13859 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013860
13861
13862 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013863 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013864 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013865 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013866 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013867 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013868 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013869
Zhijun He704d1282013-08-19 15:26:33 -070013870 <span class="entry_type_array">
13871 n x 2
13872 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013874 <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 -080013875
13876
13877 </td> <!-- entry_type -->
13878
13879 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013880 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13881channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13882CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013883 </td>
13884
13885 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013886 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013887 </td>
13888
13889 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013890 <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 -080013891 </td>
13892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013893 <td class="entry_tags">
13894 </td>
13895
13896 </tr>
13897 <tr class="entries_header">
13898 <th class="th_details" colspan="5">Details</th>
13899 </tr>
13900 <tr class="entry_cont">
13901 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013902 <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 -080013903 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013904 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013905
13906
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013907 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13908 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013909
13910
13911 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013912 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013913 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013914 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013915 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013916 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013917 <span class="entry_type_container">x</span>
13918
13919 <span class="entry_type_array">
13920 n x 2
13921 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013922 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013923 <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 -080013924
13925
13926 </td> <!-- entry_type -->
13927
13928 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013929 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
13930channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13931CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013932 </td>
13933
13934 <td class="entry_units">
13935 </td>
13936
13937 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013938 <p>0-1 on both input and output coordinates,<wbr/> normalized
13939as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013940 </td>
13941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013942 <td class="entry_tags">
13943 <ul class="entry_tags">
13944 <li><a href="#tag_DNG">DNG</a></li>
13945 </ul>
13946 </td>
13947
13948 </tr>
13949 <tr class="entries_header">
13950 <th class="th_details" colspan="5">Details</th>
13951 </tr>
13952 <tr class="entry_cont">
13953 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013954 <p>Each channel's curve is defined by an array of control points:</p>
13955<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
13956 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
139572 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
13958<p>These are sorted in order of increasing <code>Pin</code>; it is always
13959guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
13960define a complete mapping.<wbr/> For input values between control points,<wbr/>
13961the camera device must linearly interpolate between the control
13962points.<wbr/></p>
13963<p>Each curve can have an independent number of points,<wbr/> and the number
13964of points can be less than max (that is,<wbr/> the request doesn't have to
13965always provide a curve with number of points equivalent to
13966<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
13967<p>A few examples,<wbr/> and their corresponding graphical mappings; these
13968only specify the red channel and the precision is limited to 4
13969digits,<wbr/> for conciseness.<wbr/></p>
13970<p>Linear mapping:</p>
13971<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 ]
13972</code></pre>
13973<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
13974<p>Invert mapping:</p>
13975<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 ]
13976</code></pre>
13977<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
13978<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
13979<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13980 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/>
13981 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/>
13982 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/>
13983 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 ]
13984</code></pre>
13985<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
13986<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
13987<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13988 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/>
13989 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/>
13990 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/>
13991 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 ]
13992</code></pre>
13993<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013994 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013995 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013996
Igor Murashkin94e06c42014-01-13 16:51:17 -080013997 <tr class="entries_header">
13998 <th class="th_details" colspan="5">HAL Implementation Details</th>
13999 </tr>
14000 <tr class="entry_cont">
14001 <td class="entry_details" colspan="5">
14002 <p>For good quality of mapping,<wbr/> at least 128 control points are
14003preferred.<wbr/></p>
14004<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14005control points used as are available.<wbr/></p>
14006 </td>
14007 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014009 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14010 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014011
14012
14013 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014014 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014015 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014016 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014017 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014018 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014019
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014020 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014021
14022 <ul class="entry_type_enum">
14023 <li>
14024 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014025 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014026android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14027<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14028for applying the tonemapping curve specified by
14029<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
14030<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14031<p>Must not slow down frame rate relative to raw
14032sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014033 </li>
14034 <li>
14035 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014036 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14037<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014038 </li>
14039 <li>
14040 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014041 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14042<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014043 </li>
14044 </ul>
14045
14046 </td> <!-- entry_type -->
14047
14048 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014049 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014050 </td>
14051
14052 <td class="entry_units">
14053 </td>
14054
14055 <td class="entry_range">
14056 </td>
14057
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014058 <td class="entry_tags">
14059 </td>
14060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014061 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014062 <tr class="entries_header">
14063 <th class="th_details" colspan="5">Details</th>
14064 </tr>
14065 <tr class="entry_cont">
14066 <td class="entry_details" colspan="5">
14067 <p>When switching to an application-defined contrast curve by setting
14068<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14069per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14070mapping from input high-bit-depth pixel value to the output
14071low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14072and output may change depending on the camera pipeline,<wbr/> the values
14073are specified by normalized floating-point numbers.<wbr/></p>
14074<p>More-complex color mapping operations such as 3D color look-up
14075tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14076transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14077CONTRAST_<wbr/>CURVE.<wbr/></p>
14078<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14079emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14080<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/>
14081These values are always available,<wbr/> and as close as possible to the
14082actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14083<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14084provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14085roughly the same.<wbr/></p>
14086 </td>
14087 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014088
14089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014090 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14091 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014092
14093
14094
14095 <!-- end of kind -->
14096 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014097 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014098
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014099 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014100 <tr>
14101 <th class="th_name">Property Name</th>
14102 <th class="th_type">Type</th>
14103 <th class="th_description">Description</th>
14104 <th class="th_units">Units</th>
14105 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014106 <th class="th_tags">Tags</th>
14107 </tr>
14108 </thead>
14109
14110 <tbody>
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014122 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014123 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014126 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014127
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014128 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014129
14130
14131 </td> <!-- entry_type -->
14132
14133 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014134 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014135tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14136<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 -080014137 </td>
14138
14139 <td class="entry_units">
14140 </td>
14141
14142 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014143 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014144 </td>
14145
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014146 <td class="entry_tags">
14147 </td>
14148
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014149 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014150 <tr class="entries_header">
14151 <th class="th_details" colspan="5">Details</th>
14152 </tr>
14153 <tr class="entry_cont">
14154 <td class="entry_details" colspan="5">
14155 <p>If the actual number of points provided by the application (in
14156android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14157resample the curve to its internal representation,<wbr/> using linear
14158interpolation.<wbr/></p>
14159<p>The output curves in the result metadata may have a different number
14160of points than the input curves,<wbr/> and will represent the actual
14161hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14162 </td>
14163 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014164
Igor Murashkin94e06c42014-01-13 16:51:17 -080014165 <tr class="entries_header">
14166 <th class="th_details" colspan="5">HAL Implementation Details</th>
14167 </tr>
14168 <tr class="entry_cont">
14169 <td class="entry_details" colspan="5">
14170 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14171 </td>
14172 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014173
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014174 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14175 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014176
14177
14178
14179 <!-- end of kind -->
14180 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014181 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014182
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014183 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014184 <tr>
14185 <th class="th_name">Property Name</th>
14186 <th class="th_type">Type</th>
14187 <th class="th_description">Description</th>
14188 <th class="th_units">Units</th>
14189 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014190 <th class="th_tags">Tags</th>
14191 </tr>
14192 </thead>
14193
14194 <tbody>
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014206 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014207 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014209 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014210 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014211 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014212
Zhijun He704d1282013-08-19 15:26:33 -070014213 <span class="entry_type_array">
14214 n x 2
14215 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014216 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014217 <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 -080014218
14219
14220 </td> <!-- entry_type -->
14221
14222 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014223 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14224channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14225CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014226 </td>
14227
14228 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014229 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014230 </td>
14231
14232 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014233 <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 -080014234 </td>
14235
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014236 <td class="entry_tags">
14237 </td>
14238
14239 </tr>
14240 <tr class="entries_header">
14241 <th class="th_details" colspan="5">Details</th>
14242 </tr>
14243 <tr class="entry_cont">
14244 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014245 <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 -080014246 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014247 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014248
14249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014250 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14251 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014252
14253
14254 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014255 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014256 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014257 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014258 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014259 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014260 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014261
Zhijun He704d1282013-08-19 15:26:33 -070014262 <span class="entry_type_array">
14263 n x 2
14264 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014265 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014266 <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 -080014267
14268
14269 </td> <!-- entry_type -->
14270
14271 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014272 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14273channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14274CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014275 </td>
14276
14277 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014278 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014279 </td>
14280
14281 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014282 <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 -080014283 </td>
14284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014285 <td class="entry_tags">
14286 </td>
14287
14288 </tr>
14289 <tr class="entries_header">
14290 <th class="th_details" colspan="5">Details</th>
14291 </tr>
14292 <tr class="entry_cont">
14293 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014294 <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 -080014295 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014296 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014297
14298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014299 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14300 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014301
14302
14303 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014304 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014305 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014306 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014307 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014308 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014309 <span class="entry_type_container">x</span>
14310
14311 <span class="entry_type_array">
14312 n x 2
14313 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014314 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014315 <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 -080014316
14317
14318 </td> <!-- entry_type -->
14319
14320 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014321 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14322channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14323CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014324 </td>
14325
14326 <td class="entry_units">
14327 </td>
14328
14329 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014330 <p>0-1 on both input and output coordinates,<wbr/> normalized
14331as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014332 </td>
14333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014334 <td class="entry_tags">
14335 <ul class="entry_tags">
14336 <li><a href="#tag_DNG">DNG</a></li>
14337 </ul>
14338 </td>
14339
14340 </tr>
14341 <tr class="entries_header">
14342 <th class="th_details" colspan="5">Details</th>
14343 </tr>
14344 <tr class="entry_cont">
14345 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014346 <p>Each channel's curve is defined by an array of control points:</p>
14347<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14348 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
143492 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14350<p>These are sorted in order of increasing <code>Pin</code>; it is always
14351guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14352define a complete mapping.<wbr/> For input values between control points,<wbr/>
14353the camera device must linearly interpolate between the control
14354points.<wbr/></p>
14355<p>Each curve can have an independent number of points,<wbr/> and the number
14356of points can be less than max (that is,<wbr/> the request doesn't have to
14357always provide a curve with number of points equivalent to
14358<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14359<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14360only specify the red channel and the precision is limited to 4
14361digits,<wbr/> for conciseness.<wbr/></p>
14362<p>Linear mapping:</p>
14363<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 ]
14364</code></pre>
14365<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14366<p>Invert mapping:</p>
14367<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 ]
14368</code></pre>
14369<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14370<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14371<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14372 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/>
14373 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/>
14374 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/>
14375 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 ]
14376</code></pre>
14377<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14378<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14379<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14380 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/>
14381 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/>
14382 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/>
14383 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 ]
14384</code></pre>
14385<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014386 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014387 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014388
Igor Murashkin94e06c42014-01-13 16:51:17 -080014389 <tr class="entries_header">
14390 <th class="th_details" colspan="5">HAL Implementation Details</th>
14391 </tr>
14392 <tr class="entry_cont">
14393 <td class="entry_details" colspan="5">
14394 <p>For good quality of mapping,<wbr/> at least 128 control points are
14395preferred.<wbr/></p>
14396<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14397control points used as are available.<wbr/></p>
14398 </td>
14399 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014401 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14402 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014403
14404
14405 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014406 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014407 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014408 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014409 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014410 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014411
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014412 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014413
14414 <ul class="entry_type_enum">
14415 <li>
14416 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014417 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014418android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14419<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14420for applying the tonemapping curve specified by
14421<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
14422<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14423<p>Must not slow down frame rate relative to raw
14424sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014425 </li>
14426 <li>
14427 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014428 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14429<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014430 </li>
14431 <li>
14432 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014433 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14434<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014435 </li>
14436 </ul>
14437
14438 </td> <!-- entry_type -->
14439
14440 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014441 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014442 </td>
14443
14444 <td class="entry_units">
14445 </td>
14446
14447 <td class="entry_range">
14448 </td>
14449
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014450 <td class="entry_tags">
14451 </td>
14452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014453 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014454 <tr class="entries_header">
14455 <th class="th_details" colspan="5">Details</th>
14456 </tr>
14457 <tr class="entry_cont">
14458 <td class="entry_details" colspan="5">
14459 <p>When switching to an application-defined contrast curve by setting
14460<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14461per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14462mapping from input high-bit-depth pixel value to the output
14463low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14464and output may change depending on the camera pipeline,<wbr/> the values
14465are specified by normalized floating-point numbers.<wbr/></p>
14466<p>More-complex color mapping operations such as 3D color look-up
14467tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14468transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14469CONTRAST_<wbr/>CURVE.<wbr/></p>
14470<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14471emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14472<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/>
14473These values are always available,<wbr/> and as close as possible to the
14474actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14475<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14476provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14477roughly the same.<wbr/></p>
14478 </td>
14479 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014480
14481
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014482 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14483 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014484
14485
14486
14487 <!-- end of kind -->
14488 </tbody>
14489
14490 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014491 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014492
14493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014494 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014495
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014496 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014497 <tr>
14498 <th class="th_name">Property Name</th>
14499 <th class="th_type">Type</th>
14500 <th class="th_description">Description</th>
14501 <th class="th_units">Units</th>
14502 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014503 <th class="th_tags">Tags</th>
14504 </tr>
14505 </thead>
14506
14507 <tbody>
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014519 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014520 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014521 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014522 <td class="entry_type">
14523 <span class="entry_type_name entry_type_name_enum">byte</span>
14524
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014525 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014526
14527 <ul class="entry_type_enum">
14528 <li>
14529 <span class="entry_type_enum_name">OFF</span>
14530 </li>
14531 <li>
14532 <span class="entry_type_enum_name">ON</span>
14533 </li>
14534 </ul>
14535
14536 </td> <!-- entry_type -->
14537
14538 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014539 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014540that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014541Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014542disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014543any untrusted applications.<wbr/></p>
14544<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14545transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14546data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014547<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014548doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014549 </td>
14550
14551 <td class="entry_units">
14552 </td>
14553
14554 <td class="entry_range">
14555 </td>
14556
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014557 <td class="entry_tags">
14558 </td>
14559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014560 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014561
14562
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014563 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14564 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014565
14566
14567
14568 <!-- end of kind -->
14569 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014570 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014571
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014572 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014573 <tr>
14574 <th class="th_name">Property Name</th>
14575 <th class="th_type">Type</th>
14576 <th class="th_description">Description</th>
14577 <th class="th_units">Units</th>
14578 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014579 <th class="th_tags">Tags</th>
14580 </tr>
14581 </thead>
14582
14583 <tbody>
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014595 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014596 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014597 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014598 <td class="entry_type">
14599 <span class="entry_type_name entry_type_name_enum">byte</span>
14600
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014601 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014602
14603 <ul class="entry_type_enum">
14604 <li>
14605 <span class="entry_type_enum_name">OFF</span>
14606 </li>
14607 <li>
14608 <span class="entry_type_enum_name">ON</span>
14609 </li>
14610 </ul>
14611
14612 </td> <!-- entry_type -->
14613
14614 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014615 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014616that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014617Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014618disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014619any untrusted applications.<wbr/></p>
14620<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14621transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14622data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014623<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014624doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014625 </td>
14626
14627 <td class="entry_units">
14628 </td>
14629
14630 <td class="entry_range">
14631 </td>
14632
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014633 <td class="entry_tags">
14634 </td>
14635
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014637
14638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14640 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014641
14642
14643
14644 <!-- end of kind -->
14645 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014646 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014647
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014648 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014649 <tr>
14650 <th class="th_name">Property Name</th>
14651 <th class="th_type">Type</th>
14652 <th class="th_description">Description</th>
14653 <th class="th_units">Units</th>
14654 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014655 <th class="th_tags">Tags</th>
14656 </tr>
14657 </thead>
14658
14659 <tbody>
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014671 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014672 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014673 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014674 <td class="entry_type">
14675 <span class="entry_type_name entry_type_name_enum">byte</span>
14676 <span class="entry_type_container">x</span>
14677
14678 <span class="entry_type_array">
14679 n
14680 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014681 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014682
14683 <ul class="entry_type_enum">
14684 <li>
14685 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014686 <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 -070014687 </li>
14688 </ul>
14689
14690 </td> <!-- entry_type -->
14691
14692 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014693 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014694 </td>
14695
14696 <td class="entry_units">
14697 </td>
14698
14699 <td class="entry_range">
14700 </td>
14701
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014702 <td class="entry_tags">
14703 </td>
14704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014705 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014706
14707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014708 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14709 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014710
14711
14712
14713 <!-- end of kind -->
14714 </tbody>
14715
14716 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014717 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014718
14719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014720 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014721
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014722 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014723 <tr>
14724 <th class="th_name">Property Name</th>
14725 <th class="th_type">Type</th>
14726 <th class="th_description">Description</th>
14727 <th class="th_units">Units</th>
14728 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014729 <th class="th_tags">Tags</th>
14730 </tr>
14731 </thead>
14732
14733 <tbody>
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014745 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014746 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014747 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014748 <td class="entry_type">
14749 <span class="entry_type_name entry_type_name_enum">byte</span>
14750
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014751 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014752
14753 <ul class="entry_type_enum">
14754 <li>
14755 <span class="entry_type_enum_name">LIMITED</span>
14756 </li>
14757 <li>
14758 <span class="entry_type_enum_name">FULL</span>
14759 </li>
14760 </ul>
14761
14762 </td> <!-- entry_type -->
14763
14764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014765 <p>The camera 3 HAL device can implement one of two possible
14766operational modes; limited and full.<wbr/> Full support is
14767expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014768hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014769camera HAL device v1 implementation,<wbr/> and is expected from
14770older or inexpensive devices.<wbr/> Full is a strict superset of
14771limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14772<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014773 </td>
14774
14775 <td class="entry_units">
14776 </td>
14777
14778 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014779 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014780 </td>
14781
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014782 <td class="entry_tags">
14783 </td>
14784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014785 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014786
14787
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014788 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14789 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014790
14791
14792
14793 <!-- end of kind -->
14794 </tbody>
14795
14796 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014797 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014798
14799
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014800 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014801
14802 <thead class="entries_header">
14803 <tr>
14804 <th class="th_name">Property Name</th>
14805 <th class="th_type">Type</th>
14806 <th class="th_description">Description</th>
14807 <th class="th_units">Units</th>
14808 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014809 <th class="th_tags">Tags</th>
14810 </tr>
14811 </thead>
14812
14813 <tbody>
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014825 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014826 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014827 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014828 <td class="entry_type">
14829 <span class="entry_type_name entry_type_name_enum">byte</span>
14830
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014831 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014832
14833 <ul class="entry_type_enum">
14834 <li>
14835 <span class="entry_type_enum_name">OFF</span>
14836 </li>
14837 <li>
14838 <span class="entry_type_enum_name">ON</span>
14839 </li>
14840 </ul>
14841
14842 </td> <!-- entry_type -->
14843
14844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014845 <p>Whether black-level compensation is locked
14846to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014847 </td>
14848
14849 <td class="entry_units">
14850 </td>
14851
14852 <td class="entry_range">
14853 </td>
14854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014855 <td class="entry_tags">
14856 <ul class="entry_tags">
14857 <li><a href="#tag_HAL2">HAL2</a></li>
14858 </ul>
14859 </td>
14860
14861 </tr>
14862 <tr class="entries_header">
14863 <th class="th_details" colspan="5">Details</th>
14864 </tr>
14865 <tr class="entry_cont">
14866 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014867 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014868compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014869OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014870<p>Since changes to certain capture parameters (such as
14871exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014872compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014873the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014874metadata.<wbr/></p>
14875<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014876<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014877<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14878<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14879<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14880<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14881<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14882<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014883</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014884<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080014885device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014886result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014887<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014888<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14889<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14890<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14891<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
14892<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14893<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014894</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014895<p>This indicates to the application that on frame 4,<wbr/> black
14896levels were reset due to exposure value changes,<wbr/> and pixel
14897values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014898<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080014899possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014900other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080014901or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014902 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014903 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014904
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014905 <tr class="entries_header">
14906 <th class="th_details" colspan="5">HAL Implementation Details</th>
14907 </tr>
14908 <tr class="entry_cont">
14909 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014910 <p>If for some reason black level locking is no longer possible
14911(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14912black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014913override this request (and it must report 'OFF' when this
14914does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014915possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014916 </td>
14917 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014918
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014919 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14920 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014921
14922
14923
14924 <!-- end of kind -->
14925 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014926 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014927
14928 <thead class="entries_header">
14929 <tr>
14930 <th class="th_name">Property Name</th>
14931 <th class="th_type">Type</th>
14932 <th class="th_description">Description</th>
14933 <th class="th_units">Units</th>
14934 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014935 <th class="th_tags">Tags</th>
14936 </tr>
14937 </thead>
14938
14939 <tbody>
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014951 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014952 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014953 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014954 <td class="entry_type">
14955 <span class="entry_type_name entry_type_name_enum">byte</span>
14956
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014957 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014958
14959 <ul class="entry_type_enum">
14960 <li>
14961 <span class="entry_type_enum_name">OFF</span>
14962 </li>
14963 <li>
14964 <span class="entry_type_enum_name">ON</span>
14965 </li>
14966 </ul>
14967
14968 </td> <!-- entry_type -->
14969
14970 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014971 <p>Whether black-level compensation is locked
14972to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014973 </td>
14974
14975 <td class="entry_units">
14976 </td>
14977
14978 <td class="entry_range">
14979 </td>
14980
Zhijun He69fc0ea2013-07-17 09:42:58 -070014981 <td class="entry_tags">
14982 <ul class="entry_tags">
14983 <li><a href="#tag_HAL2">HAL2</a></li>
14984 </ul>
14985 </td>
14986
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014987 </tr>
14988 <tr class="entries_header">
14989 <th class="th_details" colspan="5">Details</th>
14990 </tr>
14991 <tr class="entry_cont">
14992 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014993 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014994ON 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 -080014995a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080014996perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014997 </td>
14998 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014999
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015000 <tr class="entries_header">
15001 <th class="th_details" colspan="5">HAL Implementation Details</th>
15002 </tr>
15003 <tr class="entry_cont">
15004 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015005 <p>If for some reason black level locking is no longer possible
15006(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15007black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015008override this request (and it must report 'OFF' when this
15009does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015010possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015011 </td>
15012 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015014 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15015 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015016
15017
15018
15019 <!-- end of kind -->
15020 </tbody>
15021
15022 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015023 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15024
15025
15026 <tr><td colspan="6" class="kind">dynamic</td></tr>
15027
15028 <thead class="entries_header">
15029 <tr>
15030 <th class="th_name">Property Name</th>
15031 <th class="th_type">Type</th>
15032 <th class="th_description">Description</th>
15033 <th class="th_units">Units</th>
15034 <th class="th_range">Range</th>
15035 <th class="th_tags">Tags</th>
15036 </tr>
15037 </thead>
15038
15039 <tbody>
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050 <tr class="entry" id="dynamic_android.sync.frameNumber">
15051 <td class="entry_name" rowspan="5">
15052 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15053 </td>
15054 <td class="entry_type">
15055 <span class="entry_type_name entry_type_name_enum">int64</span>
15056
15057 <span class="entry_type_visibility"> [hidden]</span>
15058
15059 <ul class="entry_type_enum">
15060 <li>
15061 <span class="entry_type_enum_name">CONVERGING</span>
15062 <span class="entry_type_enum_value">-1</span>
15063 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15064Synchronization is in progress,<wbr/> and reading metadata from this
15065result may include a mix of data that have taken effect since the
15066last synchronization time.<wbr/></p>
15067<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15068this value will update to the actual frame number frame number
15069the result is guaranteed to be synchronized to (as long as the
15070request settings remain constant).<wbr/></p></span>
15071 </li>
15072 <li>
15073 <span class="entry_type_enum_name">UNKNOWN</span>
15074 <span class="entry_type_enum_value">-2</span>
15075 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15076result may have already converged,<wbr/> or it may be in progress.<wbr/>
15077Reading from this result may include some mix of settings from
15078past requests.<wbr/></p>
15079<p>After a settings change,<wbr/> the new settings will eventually all
15080take effect for the output buffers and results.<wbr/> However,<wbr/> this
15081value will not change when that happens.<wbr/> Altering settings
15082rapidly may provide outcomes using mixes of settings from recent
15083requests.<wbr/></p>
15084<p>This value is intended primarily for backwards compatibility with
15085the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15086 </li>
15087 </ul>
15088
15089 </td> <!-- entry_type -->
15090
15091 <td class="entry_description">
15092 <p>The frame number corresponding to the last request
15093with which the output result (metadata + buffers) has been fully
15094synchronized.<wbr/></p>
15095 </td>
15096
15097 <td class="entry_units">
15098 </td>
15099
15100 <td class="entry_range">
15101 <p>Either a non-negative value corresponding to a
15102<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15103 </td>
15104
15105 <td class="entry_tags">
15106 <ul class="entry_tags">
15107 <li><a href="#tag_LIMITED">LIMITED</a></li>
15108 </ul>
15109 </td>
15110
15111 </tr>
15112 <tr class="entries_header">
15113 <th class="th_details" colspan="5">Details</th>
15114 </tr>
15115 <tr class="entry_cont">
15116 <td class="entry_details" colspan="5">
15117 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15118delay of several frames before the controls get applied.<wbr/> A camera
15119device may either choose to account for this delay by implementing a
15120pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15121it may start streaming control changes that span over several frame
15122boundaries.<wbr/></p>
15123<p>In the latter case,<wbr/> whenever a request's settings change relative to
15124the previous submitted request,<wbr/> the full set of changes may take
15125multiple frame durations to fully take effect.<wbr/> Some settings may
15126take effect sooner (in less frame durations) than others.<wbr/></p>
15127<p>While a set of control changes are being propagated,<wbr/> this value
15128will be CONVERGING.<wbr/></p>
15129<p>Once it is fully known that a set of control changes have been
15130finished propagating,<wbr/> and the resulting updated control settings
15131have been read back by the camera device,<wbr/> this value will be set
15132to a non-negative frame number (corresponding to the request to
15133which the results have synchronized to).<wbr/></p>
15134<p>Older camera device implementations may not have a way to detect
15135when all camera controls have been applied,<wbr/> and will always set this
15136value to UNKNOWN.<wbr/></p>
15137<p>FULL capability devices will always have this value set to the
15138frame number of the request corresponding to this result.<wbr/></p>
15139<p><em>Further details</em>:</p>
15140<ul>
15141<li>Whenever a request differs from the last request,<wbr/> any future
15142results not yet returned may have this value set to CONVERGING (this
15143could include any in-progress captures not yet returned by the camera
15144device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15145<li>Submitting a series of multiple requests that differ from the
15146previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15147moves the new synchronization frame to the last non-repeating
15148request (using the smallest frame number from the contiguous list of
15149repeating requests).<wbr/></li>
15150<li>Submitting the same request repeatedly will not change this value
15151to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15152<li>When this value changes to non-negative,<wbr/> that means that all of the
15153metadata controls from the request have been applied,<wbr/> all of the
15154metadata controls from the camera device have been read to the
15155updated values (into the result),<wbr/> and all of the graphics buffers
15156corresponding to this result are also synchronized to the request.<wbr/></li>
15157</ul>
15158<p><em>Pipeline considerations</em>:</p>
15159<p>Submitting a request with updated controls relative to the previously
15160submitted requests may also invalidate the synchronization state
15161of all the results corresponding to currently in-flight requests.<wbr/></p>
15162<p>In other words,<wbr/> results for this current request and up to
15163<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15164<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15165 </td>
15166 </tr>
15167
15168 <tr class="entries_header">
15169 <th class="th_details" colspan="5">HAL Implementation Details</th>
15170 </tr>
15171 <tr class="entry_cont">
15172 <td class="entry_details" colspan="5">
15173 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15174is also UNKNOWN.<wbr/></p>
15175<p>FULL capability devices should simply set this value to the
15176<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15177 </td>
15178 </tr>
15179
15180 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15181 <!-- end of entry -->
15182
15183
15184
15185 <!-- end of kind -->
15186 </tbody>
15187 <tr><td colspan="6" class="kind">static</td></tr>
15188
15189 <thead class="entries_header">
15190 <tr>
15191 <th class="th_name">Property Name</th>
15192 <th class="th_type">Type</th>
15193 <th class="th_description">Description</th>
15194 <th class="th_units">Units</th>
15195 <th class="th_range">Range</th>
15196 <th class="th_tags">Tags</th>
15197 </tr>
15198 </thead>
15199
15200 <tbody>
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211 <tr class="entry" id="static_android.sync.maxLatency">
15212 <td class="entry_name" rowspan="5">
15213 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15214 </td>
15215 <td class="entry_type">
15216 <span class="entry_type_name entry_type_name_enum">int32</span>
15217
15218 <span class="entry_type_visibility"> [public]</span>
15219
15220 <ul class="entry_type_enum">
15221 <li>
15222 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15223 <span class="entry_type_enum_value">0</span>
15224 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15225(and furthermore for all results,<wbr/>
15226<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>
15227<p>Changing controls over multiple requests one after another will
15228produce results that have those controls applied atomically
15229each frame.<wbr/></p>
15230<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15231 </li>
15232 <li>
15233 <span class="entry_type_enum_name">UNKNOWN</span>
15234 <span class="entry_type_enum_value">-1</span>
15235 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15236of the past requests applied to the camera settings.<wbr/></p>
15237<p>By submitting a series of identical requests,<wbr/> the camera device
15238will eventually have the camera settings applied,<wbr/> but it is
15239unknown when that exact point will be.<wbr/></p></span>
15240 </li>
15241 </ul>
15242
15243 </td> <!-- entry_type -->
15244
15245 <td class="entry_description">
15246 <p>The maximum number of frames that can occur after a request
15247(different than the previous) has been submitted,<wbr/> and before the
15248result's state becomes synchronized (by setting
15249<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15250 </td>
15251
15252 <td class="entry_units">
15253 number of processed requests
15254 </td>
15255
15256 <td class="entry_range">
15257 <p>&gt;= -1</p>
15258 </td>
15259
15260 <td class="entry_tags">
15261 <ul class="entry_tags">
15262 <li><a href="#tag_LIMITED">LIMITED</a></li>
15263 </ul>
15264 </td>
15265
15266 </tr>
15267 <tr class="entries_header">
15268 <th class="th_details" colspan="5">Details</th>
15269 </tr>
15270 <tr class="entry_cont">
15271 <td class="entry_details" colspan="5">
15272 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15273between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15274<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15275<p>In other words this acts as an upper boundary for how many frames
15276must occur before the camera device knows for a fact that the new
15277submitted camera settings have been applied in outgoing frames.<wbr/></p>
15278<p>For example if the distance was 2,<wbr/></p>
15279<pre><code>initial request = X (repeating)
15280request1 = X
15281request2 = Y
15282request3 = Y
15283request4 = Y
15284
15285where requestN has frameNumber N,<wbr/> and the first of the repeating
15286initial request's has frameNumber F (and F &lt; 1).<wbr/>
15287
15288initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15289result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15290result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15291result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15292result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15293
15294where resultN has frameNumber N.<wbr/>
15295</code></pre>
15296<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15297<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15298<code>4 - 2 = 2</code>.<wbr/></p>
15299 </td>
15300 </tr>
15301
15302 <tr class="entries_header">
15303 <th class="th_details" colspan="5">HAL Implementation Details</th>
15304 </tr>
15305 <tr class="entry_cont">
15306 <td class="entry_details" colspan="5">
15307 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15308<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15309<p>LIMITED devices are strongly encouraged to use a non-negative
15310value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15311to know when sensor settings have been applied.<wbr/></p>
15312 </td>
15313 </tr>
15314
15315 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15316 <!-- end of entry -->
15317
15318
15319
15320 <!-- end of kind -->
15321 </tbody>
15322
15323 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015324<!-- </namespace> -->
15325 </table>
15326
15327 <div class="tags" id="tag_index">
15328 <h2>Tags</h2>
15329 <ul>
15330 <li id="tag_AWB">AWB -
15331 Needed for auto white balance
15332
15333 <ul class="tags_entries">
15334 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15335 </ul>
15336 </li> <!-- tag_AWB -->
15337 <li id="tag_BC">BC -
15338 Needed for backwards compatibility with old Java API
15339
15340 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015341 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015342 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15343 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15344 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15345 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15346 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015347 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015348 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15349 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015350 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015351 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15352 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15353 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15354 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15355 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15356 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15357 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15358 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015359 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015360 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15361 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15362 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15363 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15364 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15365 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15366 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15367 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15368 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15369 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15370 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15371 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15372 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15373 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15374 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15375 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15376 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15377 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15378 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15379 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15380 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15381 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15382 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15383 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15384 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15385 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15386 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15387 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015388 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015389 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15390 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15391 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015392 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015393 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015394 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15395 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15396 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15397 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15398 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15399 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15400 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15401 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15402 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15403 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15404 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15405 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15406 </ul>
15407 </li> <!-- tag_BC -->
15408 <li id="tag_V1">V1 -
15409 New features for first camera 2 release (API1)
15410
15411 <ul class="tags_entries">
15412 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15413 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15414 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15415 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15416 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15417 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15418 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15419 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15420 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15421 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15422 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15423 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15424 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15425 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15426 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15427 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15428 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15429 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15430 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15431 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15432 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15433 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15434 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15435 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015436 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015437 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15438 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15439 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15440 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15441 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15442 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15443 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15444 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15445 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15446 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15447 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15448 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15449 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15450 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15451 </ul>
15452 </li> <!-- tag_V1 -->
15453 <li id="tag_ADV">ADV - None
15454 <ul class="tags_entries">
15455 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15456 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15457 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15458 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15459 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15460 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15461 </ul>
15462 </li> <!-- tag_ADV -->
15463 <li id="tag_DNG">DNG -
15464 Needed for DNG file support
15465
15466 <ul class="tags_entries">
15467 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015468 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15469 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15470 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15471 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15472 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15473 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15474 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15475 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15476 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15477 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15478 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15479 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15480 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15481 </ul>
15482 </li> <!-- tag_DNG -->
15483 <li id="tag_EXIF">EXIF - None
15484 <ul class="tags_entries">
15485 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15486 </ul>
15487 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015488 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015489 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015490
15491 <ul class="tags_entries">
15492 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15493 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15494 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015495 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015496 </ul>
15497 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015498 <li id="tag_FULL">FULL -
15499 Entry is required for full hardware level devices, and optional for other hardware levels
15500
15501 <ul class="tags_entries">
15502 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15503 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15504 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15505 </ul>
15506 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015507 <li id="tag_LIMITED">LIMITED -
15508 Entry assists with LIMITED device implementation. LIMITED devices
15509 must implement all entries with this tag. Optional for FULL devices.
15510
15511 <ul class="tags_entries">
15512 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15513 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15514 </ul>
15515 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015516 </ul>
15517 </div>
15518
15519 [ <a href="#">top</a> ]
15520
15521</body>
15522</html>