blob: f01210edf50a692ec41d63b7c5f2cb67bbf4bbad [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001470metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001477 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001478 </td>
1479
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001480 <td class="entry_tags">
1481 <ul class="entry_tags">
1482 <li><a href="#tag_BC">BC</a></li>
1483 </ul>
1484 </td>
1485
1486 </tr>
1487 <tr class="entries_header">
1488 <th class="th_details" colspan="5">Details</th>
1489 </tr>
1490 <tr class="entry_cont">
1491 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001492 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001493xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001494specified coordinates.<wbr/></p>
1495<p>The coordinate system is based on the active pixel array,<wbr/>
1496with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001497(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1498<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001499bottom-right pixel in the active pixel array.<wbr/> The weight
1500should be nonnegative.<wbr/></p>
1501<p>If all regions have 0 weight,<wbr/> then no specific metering area
1502needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001503outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001504should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001505used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001506 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001507 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001508
1509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001510 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1511 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001512
1513
1514 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001515 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001516 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001517 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001518 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001519 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001520 <span class="entry_type_container">x</span>
1521
1522 <span class="entry_type_array">
1523 2
1524 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001525 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001526
1527
1528 </td> <!-- entry_type -->
1529
1530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001531 <p>Range over which fps can be adjusted to
1532maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001533 </td>
1534
1535 <td class="entry_units">
1536 </td>
1537
1538 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001539 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001540 </td>
1541
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001542 <td class="entry_tags">
1543 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001544 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001545 </ul>
1546 </td>
1547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001548 </tr>
1549 <tr class="entries_header">
1550 <th class="th_details" colspan="5">Details</th>
1551 </tr>
1552 <tr class="entry_cont">
1553 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001554 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001555of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001556 </td>
1557 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001558
1559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001560 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1561 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001562
1563
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001564 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001565 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001566 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001567 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001568 <td class="entry_type">
1569 <span class="entry_type_name entry_type_name_enum">byte</span>
1570
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001571 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001572
1573 <ul class="entry_type_enum">
1574 <li>
1575 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001576 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001577 </li>
1578 <li>
1579 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001580 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1581by the camera device.<wbr/> The exact effect of the precapture
1582trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001583 </li>
1584 </ul>
1585
1586 </td> <!-- entry_type -->
1587
1588 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001589 <p>Whether the camera device will trigger a precapture
1590metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001591 </td>
1592
1593 <td class="entry_units">
1594 </td>
1595
1596 <td class="entry_range">
1597 </td>
1598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001599 <td class="entry_tags">
1600 <ul class="entry_tags">
1601 <li><a href="#tag_BC">BC</a></li>
1602 </ul>
1603 </td>
1604
1605 </tr>
1606 <tr class="entries_header">
1607 <th class="th_details" colspan="5">Details</th>
1608 </tr>
1609 <tr class="entry_cont">
1610 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001611 <p>This entry is normally set to IDLE,<wbr/> or is not
1612included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001613set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001614precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001615<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001616AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1617state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001618 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001619 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001620
1621
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001622 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1623 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001624
1625
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001626 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001627 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001628 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001633 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001634
1635 <ul class="entry_type_enum">
1636 <li>
1637 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001638 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1639<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1640application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001641 </li>
1642 <li>
1643 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001644 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1645<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
1646is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1647the autofocus trigger action is called.<wbr/> When that trigger
1648is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1649the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1650<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1651and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001652 </li>
1653 <li>
1654 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001655 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1656autofocus trigger action is called.<wbr/></p>
1657<p>When that trigger is activated,<wbr/> AF must transition to
1658ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1659NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1660position to default,<wbr/> and sets the AF state to
1661INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001662 </li>
1663 <li>
1664 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001665 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1666position continually to attempt to provide a
1667constantly-in-focus image stream.<wbr/></p>
1668<p>The focusing behavior should be suitable for good quality
1669video recording; typically this means slower focus
1670movement and no overshoots.<wbr/> When the AF trigger is not
1671involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1672and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1673states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1674the algorithm should immediately transition into
1675AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1676lens position until a cancel AF trigger is received.<wbr/></p>
1677<p>Once cancel is received,<wbr/> the algorithm should transition
1678back to INACTIVE and resume passive scan.<wbr/> Note that this
1679behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1680ongoing PASSIVE_<wbr/>SCAN must immediately be
1681canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001682 </li>
1683 <li>
1684 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001685 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1686position continually to attempt to provide a
1687constantly-in-focus image stream.<wbr/></p>
1688<p>The focusing behavior should be suitable for still image
1689capture; typically this means focusing as fast as
1690possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1691algorithm should start in INACTIVE state,<wbr/> and then
1692transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1693appropriate as it attempts to maintain focus.<wbr/> When the AF
1694trigger is activated,<wbr/> the algorithm should finish its
1695PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1696AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1697lens position until a cancel AF trigger is received.<wbr/></p>
1698<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1699should transition back to INACTIVE and then act as if it
1700has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001701 </li>
1702 <li>
1703 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001704 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1705trigger is ignored,<wbr/> AF state should always be
1706INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001707 </li>
1708 </ul>
1709
1710 </td> <!-- entry_type -->
1711
1712 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001713 <p>Whether AF is currently enabled,<wbr/> and what
1714mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001715 </td>
1716
1717 <td class="entry_units">
1718 </td>
1719
1720 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001721 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001722 </td>
1723
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001724 <td class="entry_tags">
1725 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001726 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001727 </ul>
1728 </td>
1729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001730 </tr>
1731 <tr class="entries_header">
1732 <th class="th_details" colspan="5">Details</th>
1733 </tr>
1734 <tr class="entry_cont">
1735 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001736 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08001737<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1738the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1739in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001740 </td>
1741 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001742
1743
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001744 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1745 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001746
1747
1748 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001749 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001750 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001751 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001752 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001753 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001754 <span class="entry_type_container">x</span>
1755
1756 <span class="entry_type_array">
1757 5 x area_count
1758 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001759 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001760
1761
1762 </td> <!-- entry_type -->
1763
1764 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001765 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001766estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001767 </td>
1768
1769 <td class="entry_units">
1770 </td>
1771
1772 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001773 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001774 </td>
1775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001776 <td class="entry_tags">
1777 <ul class="entry_tags">
1778 <li><a href="#tag_BC">BC</a></li>
1779 </ul>
1780 </td>
1781
1782 </tr>
1783 <tr class="entries_header">
1784 <th class="th_details" colspan="5">Details</th>
1785 </tr>
1786 <tr class="entry_cont">
1787 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001788 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001789xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001790specified coordinates.<wbr/></p>
1791<p>The coordinate system is based on the active pixel array,<wbr/>
1792with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001793(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1794<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001795bottom-right pixel in the active pixel array.<wbr/> The weight
1796should be nonnegative.<wbr/></p>
1797<p>If all regions have 0 weight,<wbr/> then no specific focus area
1798needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001799outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001800should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001801used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001802 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001803 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001804
1805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001806 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1807 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001808
1809
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001810 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001812 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001813 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001814 <td class="entry_type">
1815 <span class="entry_type_name entry_type_name_enum">byte</span>
1816
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001817 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001818
1819 <ul class="entry_type_enum">
1820 <li>
1821 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001822 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001823 </li>
1824 <li>
1825 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001826 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001827 </li>
1828 <li>
1829 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001830 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1831state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001832 </li>
1833 </ul>
1834
1835 </td> <!-- entry_type -->
1836
1837 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001838 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001839 </td>
1840
1841 <td class="entry_units">
1842 </td>
1843
1844 <td class="entry_range">
1845 </td>
1846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001847 <td class="entry_tags">
1848 <ul class="entry_tags">
1849 <li><a href="#tag_BC">BC</a></li>
1850 </ul>
1851 </td>
1852
1853 </tr>
1854 <tr class="entries_header">
1855 <th class="th_details" colspan="5">Details</th>
1856 </tr>
1857 <tr class="entry_cont">
1858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001859 <p>This entry is normally set to IDLE,<wbr/> or is not
1860included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001861<p>When included and set to START,<wbr/> the camera device will trigger the
1862autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1863<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1864and return to its initial AF state.<wbr/></p>
1865<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001866 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001867 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001868
1869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1871 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001872
1873
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001874 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001876 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001879 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001881 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001882
1883 <ul class="entry_type_enum">
1884 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001885 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001886 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1887algorithm is free to update its parameters if in AUTO
1888mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001889 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001890 <li>
1891 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001892 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1893algorithm must not update the exposure and sensitivity
1894parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001895 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001896 </ul>
1897
1898 </td> <!-- entry_type -->
1899
1900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001901 <p>Whether AWB is currently locked to its
1902latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001903 </td>
1904
1905 <td class="entry_units">
1906 </td>
1907
1908 <td class="entry_range">
1909 </td>
1910
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001911 <td class="entry_tags">
1912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001913 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001914 </ul>
1915 </td>
1916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001917 </tr>
1918 <tr class="entries_header">
1919 <th class="th_details" colspan="5">Details</th>
1920 </tr>
1921 <tr class="entry_cont">
1922 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001923 <p>Note that AWB lock is only meaningful for AUTO
1924mode; in other modes,<wbr/> AWB is already fixed to a specific
1925setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001926 </td>
1927 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001928
1929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001930 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1931 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001932
1933
1934 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001936 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001937 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001939 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001941 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001942
1943 <ul class="entry_type_enum">
1944 <li>
1945 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001946 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1947the application-selected color transform matrix
1948(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1949(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1950device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001951 </li>
1952 <li>
1953 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001954 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1955the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1956and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001957 </li>
1958 <li>
1959 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001960 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1961the camera device uses incandescent light as the assumed scene
1962illumination for white balance.<wbr/> While the exact white balance
1963transforms are up to the camera device,<wbr/> they will approximately
1964match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001965 </li>
1966 <li>
1967 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001968 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1969the camera device uses fluorescent light as the assumed scene
1970illumination for white balance.<wbr/> While the exact white balance
1971transforms are up to the camera device,<wbr/> they will approximately
1972match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001973 </li>
1974 <li>
1975 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001976 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1977the camera device uses warm fluorescent light as the assumed scene
1978illumination for white balance.<wbr/> While the exact white balance
1979transforms are up to the camera device,<wbr/> they will approximately
1980match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001981 </li>
1982 <li>
1983 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001984 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1985the camera device uses daylight light as the assumed scene
1986illumination for white balance.<wbr/> While the exact white balance
1987transforms are up to the camera device,<wbr/> they will approximately
1988match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001989 </li>
1990 <li>
1991 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001992 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1993the camera device uses cloudy daylight light as the assumed scene
1994illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001995 </li>
1996 <li>
1997 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001998 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1999the camera device uses twilight light as the assumed scene
2000illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002001 </li>
2002 <li>
2003 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002004 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2005the camera device uses shade light as the assumed scene
2006illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002007 </li>
2008 </ul>
2009
2010 </td> <!-- entry_type -->
2011
2012 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002013 <p>Whether AWB is currently setting the color
2014transform fields,<wbr/> and what its illumination target
2015is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002016 </td>
2017
2018 <td class="entry_units">
2019 </td>
2020
2021 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002022 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 </td>
2024
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002025 <td class="entry_tags">
2026 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002027 <li><a href="#tag_BC">BC</a></li>
2028 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002029 </ul>
2030 </td>
2031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002032 </tr>
2033 <tr class="entries_header">
2034 <th class="th_details" colspan="5">Details</th>
2035 </tr>
2036 <tr class="entry_cont">
2037 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002038 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2039<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2040routine is enabled,<wbr/> overriding the application's selected
2041<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
2042<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2043<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2044routine is disabled.<wbr/> The applicantion manually controls the white
2045balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2046and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2047<p>When set to any other modes,<wbr/> the camera device's auto white balance
2048routine is disabled.<wbr/> The camera device uses each particular illumination
2049target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002050 </td>
2051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002052
2053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2055 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002056
2057
2058 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002060 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002061 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002063 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002064 <span class="entry_type_container">x</span>
2065
2066 <span class="entry_type_array">
2067 5 x area_count
2068 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002069 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002070
2071
2072 </td> <!-- entry_type -->
2073
2074 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002075 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002076estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002077 </td>
2078
2079 <td class="entry_units">
2080 </td>
2081
2082 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002083 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002084 </td>
2085
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002086 <td class="entry_tags">
2087 <ul class="entry_tags">
2088 <li><a href="#tag_BC">BC</a></li>
2089 </ul>
2090 </td>
2091
2092 </tr>
2093 <tr class="entries_header">
2094 <th class="th_details" colspan="5">Details</th>
2095 </tr>
2096 <tr class="entry_cont">
2097 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002098 <p>Only used in AUTO mode.<wbr/></p>
2099<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002100xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002101specified coordinates.<wbr/></p>
2102<p>The coordinate system is based on the active pixel array,<wbr/>
2103with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002104(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2105<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08002106bottom-right pixel in the active pixel array.<wbr/> The weight
2107should be nonnegative.<wbr/></p>
2108<p>If all regions have 0 weight,<wbr/> then no specific metering area
2109needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002110outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08002111should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002112used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002113 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002115
2116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002117 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2118 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002119
2120
2121 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002122 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002123 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002126 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002127
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002128 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002129
2130 <ul class="entry_type_enum">
2131 <li>
2132 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002133 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2134categories.<wbr/> Default to preview-like
2135behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002136 </li>
2137 <li>
2138 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002139 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2140precapture trigger may be used to start off a metering
2141w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002142 </li>
2143 <li>
2144 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002145 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2146usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002147 </li>
2148 <li>
2149 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002150 <span class="entry_type_enum_notes"><p>This request is for a video recording
2151usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002152 </li>
2153 <li>
2154 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002155 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2156image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002157 </li>
2158 <li>
2159 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002160 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2161application will stream full-resolution images and
2162reprocess one or several later for a final
2163capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002164 </li>
2165 </ul>
2166
2167 </td> <!-- entry_type -->
2168
2169 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002170 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2171auto-focus,<wbr/> auto-white balance) routines about the purpose
2172of this capture,<wbr/> to help the camera device to decide optimal 3A
2173strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002174 </td>
2175
2176 <td class="entry_units">
2177 </td>
2178
2179 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002180 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002181 </td>
2182
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 <td class="entry_tags">
2184 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002185 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002186 </ul>
2187 </td>
2188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002189 </tr>
2190 <tr class="entries_header">
2191 <th class="th_details" colspan="5">Details</th>
2192 </tr>
2193 <tr class="entry_cont">
2194 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002195 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2196and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002197 </td>
2198 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002199
2200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2202 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002203
2204
2205 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002206 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002207 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002208 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002209 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002210 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002211
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002212 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002213
2214 <ul class="entry_type_enum">
2215 <li>
2216 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002217 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002218 </li>
2219 <li>
2220 <span class="entry_type_enum_name">MONO</span>
2221 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002222 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2223a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002224 </li>
2225 <li>
2226 <span class="entry_type_enum_name">NEGATIVE</span>
2227 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002228 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2229are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002230 </li>
2231 <li>
2232 <span class="entry_type_enum_name">SOLARIZE</span>
2233 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002234 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2235image is wholly or partially reversed in
2236tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002237 </li>
2238 <li>
2239 <span class="entry_type_enum_name">SEPIA</span>
2240 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002241 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2242gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002243 </li>
2244 <li>
2245 <span class="entry_type_enum_name">POSTERIZE</span>
2246 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002247 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2248discrete regions of tone rather than a continuous
2249gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002250 </li>
2251 <li>
2252 <span class="entry_type_enum_name">WHITEBOARD</span>
2253 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002254 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2255as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002256 </li>
2257 <li>
2258 <span class="entry_type_enum_name">BLACKBOARD</span>
2259 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002260 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2261as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002262 </li>
2263 <li>
2264 <span class="entry_type_enum_name">AQUA</span>
2265 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002266 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002267 </li>
2268 </ul>
2269
2270 </td> <!-- entry_type -->
2271
2272 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002273 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002274 </td>
2275
2276 <td class="entry_units">
2277 </td>
2278
2279 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002280 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002281 </td>
2282
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 <td class="entry_tags">
2284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002285 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002286 </ul>
2287 </td>
2288
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002289 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002290 <tr class="entries_header">
2291 <th class="th_details" colspan="5">Details</th>
2292 </tr>
2293 <tr class="entry_cont">
2294 <td class="entry_details" colspan="5">
2295 <p>When this mode is set,<wbr/> a color effect will be applied
2296to images produced by the camera device.<wbr/> The interpretation
2297and implementation of these color effects is left to the
2298implementor of the camera device,<wbr/> and should not be
2299depended on to be consistent (or present) across all
2300devices.<wbr/></p>
2301<p>A color effect will only be applied if
2302<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2303 </td>
2304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002305
2306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002309
2310
2311 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002313 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002316 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002319
2320 <ul class="entry_type_enum">
2321 <li>
2322 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002323 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2324routines are disabled,<wbr/> no other settings in
2325android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002326 </li>
2327 <li>
2328 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002329 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2330Manual control of capture parameters is disabled.<wbr/> All
2331controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2332effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002333 </li>
2334 <li>
2335 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002336 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2337control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2338controls; the HAL must ignore those settings while
2339USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2340scene mode).<wbr/> Other control entries are still active.<wbr/>
2341This setting can only be used if availableSceneModes !=
2342UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002343 </li>
2344 </ul>
2345
2346 </td> <!-- entry_type -->
2347
2348 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002349 <p>Overall mode of 3A control
2350routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002351 </td>
2352
2353 <td class="entry_units">
2354 </td>
2355
2356 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002357 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002358 </td>
2359
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002360 <td class="entry_tags">
2361 <ul class="entry_tags">
2362 <li><a href="#tag_BC">BC</a></li>
2363 </ul>
2364 </td>
2365
2366 </tr>
2367 <tr class="entries_header">
2368 <th class="th_details" colspan="5">Details</th>
2369 </tr>
2370 <tr class="entry_cont">
2371 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002372 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002373by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002374capture parameters itself.<wbr/></p>
2375<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002376android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08002377<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002378android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002379one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002380as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002381<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002382 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002384
2385
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002386 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2387 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002388
2389
2390 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002391 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002392 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002393 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002394 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002395 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002396
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002397 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002398
2399 <ul class="entry_type_enum">
2400 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002401 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002402 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002403 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002404 </li>
2405 <li>
2406 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002407 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2408detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2409auto-exposure routines.<wbr/> If face detection statistics are
2410disabled (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
2411this should still operate correctly (but will not return
2412face detection statistics to the framework).<wbr/></p>
2413<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2414<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2415remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002416 </li>
2417 <li>
2418 <span class="entry_type_enum_name">ACTION</span>
2419 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002420 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2421Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002422 </li>
2423 <li>
2424 <span class="entry_type_enum_name">PORTRAIT</span>
2425 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002426 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002427 </li>
2428 <li>
2429 <span class="entry_type_enum_name">LANDSCAPE</span>
2430 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002431 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002432 </li>
2433 <li>
2434 <span class="entry_type_enum_name">NIGHT</span>
2435 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002436 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002437 </li>
2438 <li>
2439 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2440 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002441 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2442settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002443 </li>
2444 <li>
2445 <span class="entry_type_enum_name">THEATRE</span>
2446 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002447 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2448remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002449 </li>
2450 <li>
2451 <span class="entry_type_enum_name">BEACH</span>
2452 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002453 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002454 </li>
2455 <li>
2456 <span class="entry_type_enum_name">SNOW</span>
2457 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002458 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002459 </li>
2460 <li>
2461 <span class="entry_type_enum_name">SUNSET</span>
2462 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002463 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 </li>
2465 <li>
2466 <span class="entry_type_enum_name">STEADYPHOTO</span>
2467 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002468 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2469device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002470 </li>
2471 <li>
2472 <span class="entry_type_enum_name">FIREWORKS</span>
2473 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002474 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002475 </li>
2476 <li>
2477 <span class="entry_type_enum_name">SPORTS</span>
2478 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002479 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2480Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002481 </li>
2482 <li>
2483 <span class="entry_type_enum_name">PARTY</span>
2484 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002485 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2486people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002487 </li>
2488 <li>
2489 <span class="entry_type_enum_name">CANDLELIGHT</span>
2490 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002491 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2492is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002493 </li>
2494 <li>
2495 <span class="entry_type_enum_name">BARCODE</span>
2496 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002497 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2498for use by camera applications that wish to read the
2499barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002500 </li>
2501 </ul>
2502
2503 </td> <!-- entry_type -->
2504
2505 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002506 <p>A camera mode optimized for conditions typical in a particular
2507capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002508 </td>
2509
2510 <td class="entry_units">
2511 </td>
2512
2513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002514 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002515 </td>
2516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 <td class="entry_tags">
2518 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002519 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002520 </ul>
2521 </td>
2522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002523 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002524 <tr class="entries_header">
2525 <th class="th_details" colspan="5">Details</th>
2526 </tr>
2527 <tr class="entry_cont">
2528 <td class="entry_details" colspan="5">
2529 <p>This is the mode that that is active when
2530<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
2531these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2532<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2533<p>The interpretation and implementation of these scene modes is left
2534to the implementor of the camera device.<wbr/> Their behavior will not be
2535consistent across all devices,<wbr/> and any given device may only implement
2536a subset of these modes.<wbr/></p>
2537 </td>
2538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002539
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002540 <tr class="entries_header">
2541 <th class="th_details" colspan="5">HAL Implementation Details</th>
2542 </tr>
2543 <tr class="entry_cont">
2544 <td class="entry_details" colspan="5">
2545 <p>HAL implementations that include scene modes are expected to provide
2546the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2547<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
2548<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2549 </td>
2550 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002554
2555
2556 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002558 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002561 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002562
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002563 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002564
2565 <ul class="entry_type_enum">
2566 <li>
2567 <span class="entry_type_enum_name">OFF</span>
2568 </li>
2569 <li>
2570 <span class="entry_type_enum_name">ON</span>
2571 </li>
2572 </ul>
2573
2574 </td> <!-- entry_type -->
2575
2576 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002577 <p>Whether video stabilization is
2578active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002579 </td>
2580
2581 <td class="entry_units">
2582 </td>
2583
2584 <td class="entry_range">
2585 </td>
2586
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 <td class="entry_tags">
2588 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002589 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002590 </ul>
2591 </td>
2592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002593 </tr>
2594 <tr class="entries_header">
2595 <th class="th_details" colspan="5">Details</th>
2596 </tr>
2597 <tr class="entry_cont">
2598 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002599 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002600<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
Igor Murashkin0b080452013-12-27 15:30:25 -08002601stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002602 </td>
2603 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002604
2605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002606 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2607 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002608
2609
2610
2611 <!-- end of kind -->
2612 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002613 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002614
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002615 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002616 <tr>
2617 <th class="th_name">Property Name</th>
2618 <th class="th_type">Type</th>
2619 <th class="th_description">Description</th>
2620 <th class="th_units">Units</th>
2621 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002622 <th class="th_tags">Tags</th>
2623 </tr>
2624 </thead>
2625
2626 <tbody>
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002638 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002639 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002640 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002641 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002642 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002643 <span class="entry_type_container">x</span>
2644
2645 <span class="entry_type_array">
2646 n
2647 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002648 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002649 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002650
2651
2652 </td> <!-- entry_type -->
2653
2654 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002655 <p>The set of auto-exposure antibanding modes that are
2656supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002657 </td>
2658
2659 <td class="entry_units">
2660 </td>
2661
2662 <td class="entry_range">
2663 </td>
2664
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002665 <td class="entry_tags">
2666 </td>
2667
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002668 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002669 <tr class="entries_header">
2670 <th class="th_details" colspan="5">Details</th>
2671 </tr>
2672 <tr class="entry_cont">
2673 <td class="entry_details" colspan="5">
2674 <p>Not all of the auto-exposure anti-banding modes may be
2675supported by a given camera device.<wbr/> This field lists the
2676valid anti-banding modes that the application may request
2677for this camera device; they must include AUTO.<wbr/></p>
2678 </td>
2679 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002680
2681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002682 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2683 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002684
2685
2686 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002687 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002688 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002689 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002690 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002691 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002692 <span class="entry_type_container">x</span>
2693
2694 <span class="entry_type_array">
2695 n
2696 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002697 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002698 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002699
2700
2701 </td> <!-- entry_type -->
2702
2703 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002704 <p>The set of auto-exposure modes that are supported by this
2705camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002706 </td>
2707
2708 <td class="entry_units">
2709 </td>
2710
2711 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002712 </td>
2713
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002714 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002715 <ul class="entry_tags">
2716 <li><a href="#tag_BC">BC</a></li>
2717 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002718 </td>
2719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002720 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002721 <tr class="entries_header">
2722 <th class="th_details" colspan="5">Details</th>
2723 </tr>
2724 <tr class="entry_cont">
2725 <td class="entry_details" colspan="5">
2726 <p>Not all the auto-exposure modes may be supported by a
2727given camera device,<wbr/> especially if no flash unit is
2728available.<wbr/> This entry lists the valid modes for
2729<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2730<p>All camera devices support ON,<wbr/> and all camera devices with
2731flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2732ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2733<p>Full-capability camera devices always support OFF mode,<wbr/>
2734which enables application control of camera exposure time,<wbr/>
2735sensitivity,<wbr/> and frame duration.<wbr/></p>
2736 </td>
2737 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002738
2739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002742
2743
2744 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002745 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002746 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002749 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002750 <span class="entry_type_container">x</span>
2751
2752 <span class="entry_type_array">
2753 2 x n
2754 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002755 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002756 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002757
2758
2759 </td> <!-- entry_type -->
2760
2761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002762 <p>List of frame rate ranges supported by the
2763AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002764 </td>
2765
2766 <td class="entry_units">
2767 </td>
2768
2769 <td class="entry_range">
2770 </td>
2771
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002772 <td class="entry_tags">
2773 </td>
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002776
2777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002780
2781
2782 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002784 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002787 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002788 <span class="entry_type_container">x</span>
2789
2790 <span class="entry_type_array">
2791 2
2792 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002793 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002794
2795
2796 </td> <!-- entry_type -->
2797
2798 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002799 <p>Maximum and minimum exposure compensation
2800setting,<wbr/> in counts of
2801android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002802 </td>
2803
2804 <td class="entry_units">
2805 </td>
2806
2807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002808 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2809size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002810 </td>
2811
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 <td class="entry_tags">
2813 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002814 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002815 </ul>
2816 </td>
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002819
2820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002821 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2822 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002823
2824
2825 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002826 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002827 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002828 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002829 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002830 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002831
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002833
2834
2835 </td> <!-- entry_type -->
2836
2837 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002838 <p>Smallest step by which exposure compensation
2839can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002840 </td>
2841
2842 <td class="entry_units">
2843 </td>
2844
2845 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002846 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002847 </td>
2848
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 <td class="entry_tags">
2850 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002851 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002852 </ul>
2853 </td>
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002856
2857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2859 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002860
2861
2862 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002863 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002864 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002865 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002866 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002867 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002868 <span class="entry_type_container">x</span>
2869
2870 <span class="entry_type_array">
2871 n
2872 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002874 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002875
2876
2877 </td> <!-- entry_type -->
2878
2879 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002880 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002881selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002882 </td>
2883
2884 <td class="entry_units">
2885 </td>
2886
2887 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002888 </td>
2889
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 <td class="entry_tags">
2891 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002892 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002893 </ul>
2894 </td>
2895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002896 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002897 <tr class="entries_header">
2898 <th class="th_details" colspan="5">Details</th>
2899 </tr>
2900 <tr class="entry_cont">
2901 <td class="entry_details" colspan="5">
2902 <p>Not all the auto-focus modes may be supported by a
2903given camera device.<wbr/> This entry lists the valid modes for
2904<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2905<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2906adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>)
2907will support AUTO mode.<wbr/></p>
2908 </td>
2909 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002910
2911
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002912 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2913 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002914
2915
2916 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002917 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002918 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002919 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002920 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002921 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002922 <span class="entry_type_container">x</span>
2923
2924 <span class="entry_type_array">
2925 n
2926 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002927 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002928 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002929
2930
2931 </td> <!-- entry_type -->
2932
2933 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002934 <p>List containing the subset of color effects
2935specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2936this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002937 </td>
2938
2939 <td class="entry_units">
2940 </td>
2941
2942 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002943 <p>Any subset of enums from those specified in
2944<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/> OFF must be included in any subset.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002945 </td>
2946
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 <td class="entry_tags">
2948 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002949 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002950 </ul>
2951 </td>
2952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002953 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002954 <tr class="entries_header">
2955 <th class="th_details" colspan="5">Details</th>
2956 </tr>
2957 <tr class="entry_cont">
2958 <td class="entry_details" colspan="5">
2959 <p>This list contains the color effect modes that can be applied to
2960images produced by the camera device.<wbr/> Only modes that have
2961been fully implemented for the current device may be included here.<wbr/>
2962Implementations are not expected to be consistent across all devices.<wbr/>
2963If no color effect modes are available for a device,<wbr/> this should
2964simply be set to OFF.<wbr/></p>
2965<p>A color effect will only be applied if
2966<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2967 </td>
2968 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002969
2970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002971 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2972 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002973
2974
2975 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002976 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002977 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002978 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002979 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002980 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002981 <span class="entry_type_container">x</span>
2982
2983 <span class="entry_type_array">
2984 n
2985 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002986 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002987 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002988
2989
2990 </td> <!-- entry_type -->
2991
2992 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002993 <p>List containing a subset of scene modes
2994specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002995 </td>
2996
2997 <td class="entry_units">
2998 </td>
2999
3000 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003001 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3002not including DISABLED,<wbr/> or solely DISABLED if no
3003scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3004if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003005 </td>
3006
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 <td class="entry_tags">
3008 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003009 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003010 </ul>
3011 </td>
3012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003013 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003014 <tr class="entries_header">
3015 <th class="th_details" colspan="5">Details</th>
3016 </tr>
3017 <tr class="entry_cont">
3018 <td class="entry_details" colspan="5">
3019 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3020Only scene modes that have been fully implemented for the
3021camera device may be included here.<wbr/> Implementations are not expected
3022to be consistent across all devices.<wbr/> If no scene modes are supported
3023by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3024 </td>
3025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003026
3027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003028 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3029 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003030
3031
3032 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003033 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003034 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003035 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003036 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003037 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003038 <span class="entry_type_container">x</span>
3039
3040 <span class="entry_type_array">
3041 n
3042 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003043 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003044 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003045
3046
3047 </td> <!-- entry_type -->
3048
3049 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003050 <p>List of video stabilization modes that can
3051be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003052 </td>
3053
3054 <td class="entry_units">
3055 </td>
3056
3057 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003058 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003059 </td>
3060
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 <td class="entry_tags">
3062 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003063 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003064 </ul>
3065 </td>
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003068
3069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003072
3073
3074 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003075 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003076 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003079 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003080 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003081
Alex Raya4251d92013-04-30 16:43:44 -07003082 <span class="entry_type_array">
3083 n
3084 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003085 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003086 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003087
3088
3089 </td> <!-- entry_type -->
3090
3091 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003092 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3093that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
3099 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003100 </td>
3101
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 <td class="entry_tags">
3103 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003104 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003105 </ul>
3106 </td>
3107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003108 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003109 <tr class="entries_header">
3110 <th class="th_details" colspan="5">Details</th>
3111 </tr>
3112 <tr class="entry_cont">
3113 <td class="entry_details" colspan="5">
3114 <p>Not all the auto-white-balance modes may be supported by a
3115given camera device.<wbr/> This entry lists the valid modes for
3116<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3117<p>All camera devices will support ON mode.<wbr/></p>
3118<p>Full-capability camera devices will always support OFF mode,<wbr/>
3119which enables application control of white balance,<wbr/> by using
3120<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/></p>
3121 </td>
3122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003123
3124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003127
3128
3129 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003130 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003131 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003134 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08003135 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003136
Ruben Brunk120eea42014-01-15 15:55:08 -08003137 <span class="entry_type_array">
3138 3
3139 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003140 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141
3142
3143 </td> <!-- entry_type -->
3144
3145 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08003146 <p>List of the maximum number of regions that can be used for metering in
3147auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3148this corresponds to the the maximum number of elements in
3149<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
3150and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003151 </td>
3152
3153 <td class="entry_units">
3154 </td>
3155
3156 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08003157 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3158this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3159<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003160 </td>
3161
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003162 <td class="entry_tags">
3163 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003164 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003165 </ul>
3166 </td>
3167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003168 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003169
3170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003171 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3172 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173
3174
3175 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003176 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003177 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003178 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003179 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003180 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003181 <span class="entry_type_container">x</span>
3182
3183 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003184 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003185 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003186 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003187
3188
3189 </td> <!-- entry_type -->
3190
3191 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003192 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3193settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003194 </td>
3195
3196 <td class="entry_units">
3197 </td>
3198
3199 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003200 <p>For each available scene mode,<wbr/> the list must contain three
3201entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3202<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
3203by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3204where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003205 </td>
3206
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003207 <td class="entry_tags">
3208 <ul class="entry_tags">
3209 <li><a href="#tag_BC">BC</a></li>
3210 </ul>
3211 </td>
3212
3213 </tr>
3214 <tr class="entries_header">
3215 <th class="th_details" colspan="5">Details</th>
3216 </tr>
3217 <tr class="entry_cont">
3218 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003219 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3220to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
3221and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3222that scene mode.<wbr/></p>
3223<p>The order of this list matches that of availableSceneModes,<wbr/>
3224with 3 entries for each mode.<wbr/> The overrides listed
3225for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3226mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3227<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
3228used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3229is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3230overrides should be set to 0.<wbr/></p>
3231<p>For example,<wbr/> if availableSceneModes contains
3232<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3233expects sceneModeOverrides to have 9 entries formatted like:
3234<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3235ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003236 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003237 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003238
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003239 <tr class="entries_header">
3240 <th class="th_details" colspan="5">HAL Implementation Details</th>
3241 </tr>
3242 <tr class="entry_cont">
3243 <td class="entry_details" colspan="5">
3244 <p>To maintain backward compatibility,<wbr/> this list will be made available
3245in the static metadata of the camera service.<wbr/> The camera service will
3246use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3247<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
3248mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3249 </td>
3250 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003251
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003252 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3253 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003254
3255
3256
3257 <!-- end of kind -->
3258 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003259 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003260
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003261 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003262 <tr>
3263 <th class="th_name">Property Name</th>
3264 <th class="th_type">Type</th>
3265 <th class="th_description">Description</th>
3266 <th class="th_units">Units</th>
3267 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003268 <th class="th_tags">Tags</th>
3269 </tr>
3270 </thead>
3271
3272 <tbody>
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003284 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003285 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003286 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003287 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003288 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003289
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003290 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003291
3292
3293 </td> <!-- entry_type -->
3294
3295 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003296 <p>The ID sent with the latest
3297CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003298 </td>
3299
3300 <td class="entry_units">
3301 </td>
3302
3303 <td class="entry_range">
3304 </td>
3305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003306 <td class="entry_tags">
3307 </td>
3308
3309 </tr>
3310 <tr class="entries_header">
3311 <th class="th_details" colspan="5">Details</th>
3312 </tr>
3313 <tr class="entry_cont">
3314 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003315 <p>Must be 0 if no
3316CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3317by HAL.<wbr/> Always updated even if AE algorithm ignores the
3318trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003319 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003320 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003321
3322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003323 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3324 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003325
3326
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003327 <tr class="entry" id="dynamic_android.control.aeMode">
3328 <td class="entry_name" rowspan="3">
3329 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3330 </td>
3331 <td class="entry_type">
3332 <span class="entry_type_name entry_type_name_enum">byte</span>
3333
3334 <span class="entry_type_visibility"> [public]</span>
3335
3336 <ul class="entry_type_enum">
3337 <li>
3338 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003339 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3340the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3341<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3342<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3343device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3344a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003345 </li>
3346 <li>
3347 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003348 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3349with no flash control.<wbr/> The application's values for
3350<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3351<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3352<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3353application has control over the various
3354android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003355 </li>
3356 <li>
3357 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003358 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3359the camera's flash unit,<wbr/> firing it in low-light
3360conditions.<wbr/> The flash may be fired during a
3361precapture sequence (triggered by
3362<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3363for captures for which the
3364<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3365STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003366 </li>
3367 <li>
3368 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003369 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3370the camera's flash unit,<wbr/> always firing it for still
3371captures.<wbr/> The flash may be fired during a precapture
3372sequence (triggered by
3373<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3374be fired for captures for which the
3375<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3376STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003377 </li>
3378 <li>
3379 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003380 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3381reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3382a red eye reduction flash will fire during the
3383precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003384 </li>
3385 </ul>
3386
3387 </td> <!-- entry_type -->
3388
3389 <td class="entry_description">
3390 <p>The desired mode for the camera device's
3391auto-exposure routine.<wbr/></p>
3392 </td>
3393
3394 <td class="entry_units">
3395 </td>
3396
3397 <td class="entry_range">
3398 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3399 </td>
3400
3401 <td class="entry_tags">
3402 <ul class="entry_tags">
3403 <li><a href="#tag_BC">BC</a></li>
3404 </ul>
3405 </td>
3406
3407 </tr>
3408 <tr class="entries_header">
3409 <th class="th_details" colspan="5">Details</th>
3410 </tr>
3411 <tr class="entry_cont">
3412 <td class="entry_details" colspan="5">
3413 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3414AUTO.<wbr/></p>
3415<p>When set to any of the ON modes,<wbr/> the camera device's
3416auto-exposure routine is enabled,<wbr/> overriding the
3417application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3418and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3419<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3420<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3421is selected,<wbr/> the camera device's flash unit controls are
3422also overridden.<wbr/></p>
3423<p>The FLASH modes are only available if the camera device
3424has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3425<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3426ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3427<p>When set to any of the ON modes,<wbr/> the values chosen by the
3428camera device auto-exposure routine for the overridden
3429fields for a given capture will be available in its
3430CaptureResult.<wbr/></p>
3431 </td>
3432 </tr>
3433
3434
3435 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3436 <!-- end of entry -->
3437
3438
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003439 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003440 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003441 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003442 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003443 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003444 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003445 <span class="entry_type_container">x</span>
3446
3447 <span class="entry_type_array">
3448 5 x area_count
3449 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003450 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003451
3452
3453 </td> <!-- entry_type -->
3454
3455 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003456 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003457metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003458 </td>
3459
3460 <td class="entry_units">
3461 </td>
3462
3463 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003464 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003465 </td>
3466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003467 <td class="entry_tags">
3468 <ul class="entry_tags">
3469 <li><a href="#tag_BC">BC</a></li>
3470 </ul>
3471 </td>
3472
3473 </tr>
3474 <tr class="entries_header">
3475 <th class="th_details" colspan="5">Details</th>
3476 </tr>
3477 <tr class="entry_cont">
3478 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003479 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003480xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003481specified coordinates.<wbr/></p>
3482<p>The coordinate system is based on the active pixel array,<wbr/>
3483with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003484(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3485<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003486bottom-right pixel in the active pixel array.<wbr/> The weight
3487should be nonnegative.<wbr/></p>
3488<p>If all regions have 0 weight,<wbr/> then no specific metering area
3489needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003490outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003491should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003492used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003493 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003494 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003495
3496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003497 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3498 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003499
3500
3501 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003502 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003503 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003504 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003505 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003506 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003508 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003509
3510 <ul class="entry_type_enum">
3511 <li>
3512 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003513 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
Igor Murashkina10351a2014-01-15 17:05:22 -08003514this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003515 </li>
3516 <li>
3517 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003518 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
Zhijun He92e698d2014-01-13 16:24:31 -08003519for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003520 </li>
3521 <li>
3522 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003523 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003524current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003525 </li>
3526 <li>
3527 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003528 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003529 </li>
3530 <li>
3531 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003532 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3533needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003534capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003535 </li>
3536 <li>
3537 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003538 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003539(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3540and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003541completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003542FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003543 </li>
3544 </ul>
3545
3546 </td> <!-- entry_type -->
3547
3548 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003549 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003550 </td>
3551
3552 <td class="entry_units">
3553 </td>
3554
3555 <td class="entry_range">
3556 </td>
3557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003558 <td class="entry_tags">
3559 </td>
3560
3561 </tr>
3562 <tr class="entries_header">
3563 <th class="th_details" colspan="5">Details</th>
3564 </tr>
3565 <tr class="entry_cont">
3566 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003567 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3568resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3569or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3570the algorithm states to INACTIVE.<wbr/></p>
3571<p>The camera device can do several state transitions between two results,<wbr/> if it is
3572allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3573seen in a result.<wbr/></p>
3574<p>The state in the result is the state for this image (in sync with this image): if
3575AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3576be good to use.<wbr/></p>
3577<p>Below are state transition tables for different AE modes.<wbr/></p>
3578<table>
3579<thead>
3580<tr>
3581<th align="center">State</th>
3582<th align="center">Transition Cause</th>
3583<th align="center">New State</th>
3584<th align="center">Notes</th>
3585</tr>
3586</thead>
3587<tbody>
3588<tr>
3589<td align="center">INACTIVE</td>
3590<td align="center"></td>
3591<td align="center">INACTIVE</td>
3592<td align="center">Camera device auto exposure algorithm is disabled</td>
3593</tr>
3594</tbody>
3595</table>
3596<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3597<table>
3598<thead>
3599<tr>
3600<th align="center">State</th>
3601<th align="center">Transition Cause</th>
3602<th align="center">New State</th>
3603<th align="center">Notes</th>
3604</tr>
3605</thead>
3606<tbody>
3607<tr>
3608<td align="center">INACTIVE</td>
3609<td align="center">Camera device initiates AE scan</td>
3610<td align="center">SEARCHING</td>
3611<td align="center">Values changing</td>
3612</tr>
3613<tr>
3614<td align="center">INACTIVE</td>
3615<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3616<td align="center">LOCKED</td>
3617<td align="center">Values locked</td>
3618</tr>
3619<tr>
3620<td align="center">SEARCHING</td>
3621<td align="center">Camera device finishes AE scan</td>
3622<td align="center">CONVERGED</td>
3623<td align="center">Good values,<wbr/> not changing</td>
3624</tr>
3625<tr>
3626<td align="center">SEARCHING</td>
3627<td align="center">Camera device finishes AE scan</td>
3628<td align="center">FLASH_<wbr/>REQUIRED</td>
3629<td align="center">Converged but too dark w/<wbr/>o flash</td>
3630</tr>
3631<tr>
3632<td align="center">SEARCHING</td>
3633<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3634<td align="center">LOCKED</td>
3635<td align="center">Values locked</td>
3636</tr>
3637<tr>
3638<td align="center">CONVERGED</td>
3639<td align="center">Camera device initiates AE scan</td>
3640<td align="center">SEARCHING</td>
3641<td align="center">Values changing</td>
3642</tr>
3643<tr>
3644<td align="center">CONVERGED</td>
3645<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3646<td align="center">LOCKED</td>
3647<td align="center">Values locked</td>
3648</tr>
3649<tr>
3650<td align="center">FLASH_<wbr/>REQUIRED</td>
3651<td align="center">Camera device initiates AE scan</td>
3652<td align="center">SEARCHING</td>
3653<td align="center">Values changing</td>
3654</tr>
3655<tr>
3656<td align="center">FLASH_<wbr/>REQUIRED</td>
3657<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3658<td align="center">LOCKED</td>
3659<td align="center">Values locked</td>
3660</tr>
3661<tr>
3662<td align="center">LOCKED</td>
3663<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3664<td align="center">SEARCHING</td>
3665<td align="center">Values not good after unlock</td>
3666</tr>
3667<tr>
3668<td align="center">LOCKED</td>
3669<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3670<td align="center">CONVERGED</td>
3671<td align="center">Values good after unlock</td>
3672</tr>
3673<tr>
3674<td align="center">LOCKED</td>
3675<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3676<td align="center">FLASH_<wbr/>REQUIRED</td>
3677<td align="center">Exposure good,<wbr/> but too dark</td>
3678</tr>
3679<tr>
3680<td align="center">PRECAPTURE</td>
3681<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3682<td align="center">CONVERGED</td>
3683<td align="center">Ready for high-quality capture</td>
3684</tr>
3685<tr>
3686<td align="center">PRECAPTURE</td>
3687<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3688<td align="center">LOCKED</td>
3689<td align="center">Ready for high-quality capture</td>
3690</tr>
3691<tr>
3692<td align="center">Any state</td>
3693<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3694<td align="center">PRECAPTURE</td>
3695<td align="center">Start AE precapture metering sequence</td>
3696</tr>
3697</tbody>
3698</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003699 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003700 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003701
3702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003703 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3704 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003705
3706
3707 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003708 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003709 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003710 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003711 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003712 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003713
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003714 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003715
3716 <ul class="entry_type_enum">
3717 <li>
3718 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003719 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3720<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3721application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003722 </li>
3723 <li>
3724 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003725 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3726<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
3727is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3728the autofocus trigger action is called.<wbr/> When that trigger
3729is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3730the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3731<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3732and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003733 </li>
3734 <li>
3735 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003736 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3737autofocus trigger action is called.<wbr/></p>
3738<p>When that trigger is activated,<wbr/> AF must transition to
3739ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3740NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3741position to default,<wbr/> and sets the AF state to
3742INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003743 </li>
3744 <li>
3745 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003746 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3747position continually to attempt to provide a
3748constantly-in-focus image stream.<wbr/></p>
3749<p>The focusing behavior should be suitable for good quality
3750video recording; typically this means slower focus
3751movement and no overshoots.<wbr/> When the AF trigger is not
3752involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3753and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3754states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3755the algorithm should immediately transition into
3756AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3757lens position until a cancel AF trigger is received.<wbr/></p>
3758<p>Once cancel is received,<wbr/> the algorithm should transition
3759back to INACTIVE and resume passive scan.<wbr/> Note that this
3760behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3761ongoing PASSIVE_<wbr/>SCAN must immediately be
3762canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003763 </li>
3764 <li>
3765 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003766 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3767position continually to attempt to provide a
3768constantly-in-focus image stream.<wbr/></p>
3769<p>The focusing behavior should be suitable for still image
3770capture; typically this means focusing as fast as
3771possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3772algorithm should start in INACTIVE state,<wbr/> and then
3773transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3774appropriate as it attempts to maintain focus.<wbr/> When the AF
3775trigger is activated,<wbr/> the algorithm should finish its
3776PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3777AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3778lens position until a cancel AF trigger is received.<wbr/></p>
3779<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3780should transition back to INACTIVE and then act as if it
3781has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003782 </li>
3783 <li>
3784 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003785 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3786trigger is ignored,<wbr/> AF state should always be
3787INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003788 </li>
3789 </ul>
3790
3791 </td> <!-- entry_type -->
3792
3793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003794 <p>Whether AF is currently enabled,<wbr/> and what
3795mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 </td>
3797
3798 <td class="entry_units">
3799 </td>
3800
3801 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003802 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003803 </td>
3804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003805 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003806 <ul class="entry_tags">
3807 <li><a href="#tag_BC">BC</a></li>
3808 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003809 </td>
3810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003811 </tr>
3812 <tr class="entries_header">
3813 <th class="th_details" colspan="5">Details</th>
3814 </tr>
3815 <tr class="entry_cont">
3816 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003817 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08003818<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3819the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3820in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003821 </td>
3822 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003823
3824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003825 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3826 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003827
3828
3829 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003830 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003831 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003832 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003833 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003834 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 <span class="entry_type_container">x</span>
3836
3837 <span class="entry_type_array">
3838 5 x area_count
3839 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003840 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003841
3842
3843 </td> <!-- entry_type -->
3844
3845 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003846 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003847estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003848 </td>
3849
3850 <td class="entry_units">
3851 </td>
3852
3853 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003854 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003855 </td>
3856
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003857 <td class="entry_tags">
3858 <ul class="entry_tags">
3859 <li><a href="#tag_BC">BC</a></li>
3860 </ul>
3861 </td>
3862
3863 </tr>
3864 <tr class="entries_header">
3865 <th class="th_details" colspan="5">Details</th>
3866 </tr>
3867 <tr class="entry_cont">
3868 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003869 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003870xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003871specified coordinates.<wbr/></p>
3872<p>The coordinate system is based on the active pixel array,<wbr/>
3873with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003874(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3875<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003876bottom-right pixel in the active pixel array.<wbr/> The weight
3877should be nonnegative.<wbr/></p>
3878<p>If all regions have 0 weight,<wbr/> then no specific focus area
3879needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003880outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003881should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003882used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003884 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003885
3886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003887 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3888 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003889
3890
3891 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003892 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003893 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003894 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003895 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003896 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003897
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003898 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003899
3900 <ul class="entry_type_enum">
3901 <li>
3902 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003903 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3904to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3905this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003906 </li>
3907 <li>
3908 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003909 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3910currently doing an AF scan initiated by a continuous
3911autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003912 </li>
3913 <li>
3914 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003915 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3916believes it is in focus,<wbr/> but may restart scanning at
3917any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003918 </li>
3919 <li>
3920 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003921 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3922an AF scan because it was triggered by AF
3923trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003924 </li>
3925 <li>
3926 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003927 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3928believes it is focused correctly and is
3929locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003930 </li>
3931 <li>
3932 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003933 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3934failed to focus successfully and is
3935locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003936 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003937 <li>
3938 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003939 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3940passive scan without finding focus,<wbr/> and may restart
3941scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003942 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003943 </ul>
3944
3945 </td> <!-- entry_type -->
3946
3947 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003948 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003949 </td>
3950
3951 <td class="entry_units">
3952 </td>
3953
3954 <td class="entry_range">
3955 </td>
3956
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003957 <td class="entry_tags">
3958 </td>
3959
3960 </tr>
3961 <tr class="entries_header">
3962 <th class="th_details" colspan="5">Details</th>
3963 </tr>
3964 <tr class="entry_cont">
3965 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003966 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3967resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3968or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3969the algorithm states to INACTIVE.<wbr/></p>
3970<p>The camera device can do several state transitions between two results,<wbr/> if it is
3971allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3972seen in a result.<wbr/></p>
3973<p>The state in the result is the state for this image (in sync with this image): if
3974AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3975be sharp.<wbr/></p>
3976<p>Below are state transition tables for different AF modes.<wbr/></p>
3977<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>OFF or AF_<wbr/>MODE_<wbr/>EDOF:</p>
3978<table>
3979<thead>
3980<tr>
3981<th align="center">State</th>
3982<th align="center">Transition Cause</th>
3983<th align="center">New State</th>
3984<th align="center">Notes</th>
3985</tr>
3986</thead>
3987<tbody>
3988<tr>
3989<td align="center">INACTIVE</td>
3990<td align="center"></td>
3991<td align="center">INACTIVE</td>
3992<td align="center">Never changes</td>
3993</tr>
3994</tbody>
3995</table>
3996<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>AUTO or AF_<wbr/>MODE_<wbr/>MACRO:</p>
3997<table>
3998<thead>
3999<tr>
4000<th align="center">State</th>
4001<th align="center">Transition Cause</th>
4002<th align="center">New State</th>
4003<th align="center">Notes</th>
4004</tr>
4005</thead>
4006<tbody>
4007<tr>
4008<td align="center">INACTIVE</td>
4009<td align="center">AF_<wbr/>TRIGGER</td>
4010<td align="center">ACTIVE_<wbr/>SCAN</td>
4011<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4012</tr>
4013<tr>
4014<td align="center">ACTIVE_<wbr/>SCAN</td>
4015<td align="center">AF sweep done</td>
4016<td align="center">FOCUSED_<wbr/>LOCKED</td>
4017<td align="center">Focused,<wbr/> Lens now locked</td>
4018</tr>
4019<tr>
4020<td align="center">ACTIVE_<wbr/>SCAN</td>
4021<td align="center">AF sweep done</td>
4022<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4023<td align="center">Not focused,<wbr/> Lens now locked</td>
4024</tr>
4025<tr>
4026<td align="center">ACTIVE_<wbr/>SCAN</td>
4027<td align="center">AF_<wbr/>CANCEL</td>
4028<td align="center">INACTIVE</td>
4029<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4030</tr>
4031<tr>
4032<td align="center">FOCUSED_<wbr/>LOCKED</td>
4033<td align="center">AF_<wbr/>CANCEL</td>
4034<td align="center">INACTIVE</td>
4035<td align="center">Cancel/<wbr/>reset AF</td>
4036</tr>
4037<tr>
4038<td align="center">FOCUSED_<wbr/>LOCKED</td>
4039<td align="center">AF_<wbr/>TRIGGER</td>
4040<td align="center">ACTIVE_<wbr/>SCAN</td>
4041<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4042</tr>
4043<tr>
4044<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4045<td align="center">AF_<wbr/>CANCEL</td>
4046<td align="center">INACTIVE</td>
4047<td align="center">Cancel/<wbr/>reset AF</td>
4048</tr>
4049<tr>
4050<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4051<td align="center">AF_<wbr/>TRIGGER</td>
4052<td align="center">ACTIVE_<wbr/>SCAN</td>
4053<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4054</tr>
4055<tr>
4056<td align="center">Any state</td>
4057<td align="center">Mode change</td>
4058<td align="center">INACTIVE</td>
4059<td align="center"></td>
4060</tr>
4061</tbody>
4062</table>
4063<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>VIDEO:</p>
4064<table>
4065<thead>
4066<tr>
4067<th align="center">State</th>
4068<th align="center">Transition Cause</th>
4069<th align="center">New State</th>
4070<th align="center">Notes</th>
4071</tr>
4072</thead>
4073<tbody>
4074<tr>
4075<td align="center">INACTIVE</td>
4076<td align="center">Camera device initiates new scan</td>
4077<td align="center">PASSIVE_<wbr/>SCAN</td>
4078<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4079</tr>
4080<tr>
4081<td align="center">INACTIVE</td>
4082<td align="center">AF_<wbr/>TRIGGER</td>
4083<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4084<td align="center">AF state query,<wbr/> Lens now locked</td>
4085</tr>
4086<tr>
4087<td align="center">PASSIVE_<wbr/>SCAN</td>
4088<td align="center">Camera device completes current scan</td>
4089<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4090<td align="center">End AF scan,<wbr/> Lens now locked</td>
4091</tr>
4092<tr>
4093<td align="center">PASSIVE_<wbr/>SCAN</td>
4094<td align="center">Camera device fails current scan</td>
4095<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4096<td align="center">End AF scan,<wbr/> Lens now locked</td>
4097</tr>
4098<tr>
4099<td align="center">PASSIVE_<wbr/>SCAN</td>
4100<td align="center">AF_<wbr/>TRIGGER</td>
4101<td align="center">FOCUSED_<wbr/>LOCKED</td>
4102<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4103</tr>
4104<tr>
4105<td align="center">PASSIVE_<wbr/>SCAN</td>
4106<td align="center">AF_<wbr/>TRIGGER</td>
4107<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4108<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4109</tr>
4110<tr>
4111<td align="center">PASSIVE_<wbr/>SCAN</td>
4112<td align="center">AF_<wbr/>CANCEL</td>
4113<td align="center">INACTIVE</td>
4114<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4115</tr>
4116<tr>
4117<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4118<td align="center">Camera device initiates new scan</td>
4119<td align="center">PASSIVE_<wbr/>SCAN</td>
4120<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4121</tr>
4122<tr>
4123<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4124<td align="center">Camera device initiates new scan</td>
4125<td align="center">PASSIVE_<wbr/>SCAN</td>
4126<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4127</tr>
4128<tr>
4129<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4130<td align="center">AF_<wbr/>TRIGGER</td>
4131<td align="center">FOCUSED_<wbr/>LOCKED</td>
4132<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4133</tr>
4134<tr>
4135<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4136<td align="center">AF_<wbr/>TRIGGER</td>
4137<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4138<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4139</tr>
4140<tr>
4141<td align="center">FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">AF_<wbr/>TRIGGER</td>
4143<td align="center">FOCUSED_<wbr/>LOCKED</td>
4144<td align="center">No effect</td>
4145</tr>
4146<tr>
4147<td align="center">FOCUSED_<wbr/>LOCKED</td>
4148<td align="center">AF_<wbr/>CANCEL</td>
4149<td align="center">INACTIVE</td>
4150<td align="center">Restart AF scan</td>
4151</tr>
4152<tr>
4153<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4154<td align="center">AF_<wbr/>TRIGGER</td>
4155<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4156<td align="center">No effect</td>
4157</tr>
4158<tr>
4159<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4160<td align="center">AF_<wbr/>CANCEL</td>
4161<td align="center">INACTIVE</td>
4162<td align="center">Restart AF scan</td>
4163</tr>
4164</tbody>
4165</table>
4166<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>PICTURE:</p>
4167<table>
4168<thead>
4169<tr>
4170<th align="center">State</th>
4171<th align="center">Transition Cause</th>
4172<th align="center">New State</th>
4173<th align="center">Notes</th>
4174</tr>
4175</thead>
4176<tbody>
4177<tr>
4178<td align="center">INACTIVE</td>
4179<td align="center">Camera device initiates new scan</td>
4180<td align="center">PASSIVE_<wbr/>SCAN</td>
4181<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4182</tr>
4183<tr>
4184<td align="center">INACTIVE</td>
4185<td align="center">AF_<wbr/>TRIGGER</td>
4186<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4187<td align="center">AF state query,<wbr/> Lens now locked</td>
4188</tr>
4189<tr>
4190<td align="center">PASSIVE_<wbr/>SCAN</td>
4191<td align="center">Camera device completes current scan</td>
4192<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4193<td align="center">End AF scan,<wbr/> Lens now locked</td>
4194</tr>
4195<tr>
4196<td align="center">PASSIVE_<wbr/>SCAN</td>
4197<td align="center">Camera device fails current scan</td>
4198<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4199<td align="center">End AF scan,<wbr/> Lens now locked</td>
4200</tr>
4201<tr>
4202<td align="center">PASSIVE_<wbr/>SCAN</td>
4203<td align="center">AF_<wbr/>TRIGGER</td>
4204<td align="center">FOCUSED_<wbr/>LOCKED</td>
4205<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4206</tr>
4207<tr>
4208<td align="center">PASSIVE_<wbr/>SCAN</td>
4209<td align="center">AF_<wbr/>TRIGGER</td>
4210<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4211<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4212</tr>
4213<tr>
4214<td align="center">PASSIVE_<wbr/>SCAN</td>
4215<td align="center">AF_<wbr/>CANCEL</td>
4216<td align="center">INACTIVE</td>
4217<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4218</tr>
4219<tr>
4220<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4221<td align="center">Camera device initiates new scan</td>
4222<td align="center">PASSIVE_<wbr/>SCAN</td>
4223<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4224</tr>
4225<tr>
4226<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4227<td align="center">Camera device initiates new scan</td>
4228<td align="center">PASSIVE_<wbr/>SCAN</td>
4229<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4230</tr>
4231<tr>
4232<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4233<td align="center">AF_<wbr/>TRIGGER</td>
4234<td align="center">FOCUSED_<wbr/>LOCKED</td>
4235<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4236</tr>
4237<tr>
4238<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4239<td align="center">AF_<wbr/>TRIGGER</td>
4240<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4241<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4242</tr>
4243<tr>
4244<td align="center">FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">AF_<wbr/>TRIGGER</td>
4246<td align="center">FOCUSED_<wbr/>LOCKED</td>
4247<td align="center">No effect</td>
4248</tr>
4249<tr>
4250<td align="center">FOCUSED_<wbr/>LOCKED</td>
4251<td align="center">AF_<wbr/>CANCEL</td>
4252<td align="center">INACTIVE</td>
4253<td align="center">Restart AF scan</td>
4254</tr>
4255<tr>
4256<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4257<td align="center">AF_<wbr/>TRIGGER</td>
4258<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4259<td align="center">No effect</td>
4260</tr>
4261<tr>
4262<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4263<td align="center">AF_<wbr/>CANCEL</td>
4264<td align="center">INACTIVE</td>
4265<td align="center">Restart AF scan</td>
4266</tr>
4267</tbody>
4268</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004269 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004270 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004271
4272
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004273 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4274 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004275
4276
4277 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004278 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004279 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004280 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004281 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004282 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004283
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004284 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004285
4286
4287 </td> <!-- entry_type -->
4288
4289 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004290 <p>The ID sent with the latest
4291CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004292 </td>
4293
4294 <td class="entry_units">
4295 </td>
4296
4297 <td class="entry_range">
4298 </td>
4299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004300 <td class="entry_tags">
4301 </td>
4302
4303 </tr>
4304 <tr class="entries_header">
4305 <th class="th_details" colspan="5">Details</th>
4306 </tr>
4307 <tr class="entry_cont">
4308 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004309 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4310received yet by HAL.<wbr/> Always updated even if AF algorithm
4311ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004312 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004313 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004314
4315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004316 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4317 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004318
4319
4320 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004321 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004322 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004323 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004324 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004325 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004326
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004327 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004328
4329 <ul class="entry_type_enum">
4330 <li>
4331 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004332 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4333the application-selected color transform matrix
4334(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4335(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4336device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004337 </li>
4338 <li>
4339 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004340 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4341the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4342and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004343 </li>
4344 <li>
4345 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004346 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4347the camera device uses incandescent light as the assumed scene
4348illumination for white balance.<wbr/> While the exact white balance
4349transforms are up to the camera device,<wbr/> they will approximately
4350match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004351 </li>
4352 <li>
4353 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004354 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4355the camera device uses fluorescent light as the assumed scene
4356illumination for white balance.<wbr/> While the exact white balance
4357transforms are up to the camera device,<wbr/> they will approximately
4358match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004359 </li>
4360 <li>
4361 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004362 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4363the camera device uses warm fluorescent light as the assumed scene
4364illumination for white balance.<wbr/> While the exact white balance
4365transforms are up to the camera device,<wbr/> they will approximately
4366match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004367 </li>
4368 <li>
4369 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004370 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4371the camera device uses daylight light as the assumed scene
4372illumination for white balance.<wbr/> While the exact white balance
4373transforms are up to the camera device,<wbr/> they will approximately
4374match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004375 </li>
4376 <li>
4377 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004378 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4379the camera device uses cloudy daylight light as the assumed scene
4380illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004381 </li>
4382 <li>
4383 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004384 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4385the camera device uses twilight light as the assumed scene
4386illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004387 </li>
4388 <li>
4389 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004390 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4391the camera device uses shade light as the assumed scene
4392illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004393 </li>
4394 </ul>
4395
4396 </td> <!-- entry_type -->
4397
4398 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004399 <p>Whether AWB is currently setting the color
4400transform fields,<wbr/> and what its illumination target
4401is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 </td>
4403
4404 <td class="entry_units">
4405 </td>
4406
4407 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004408 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004409 </td>
4410
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004411 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004412 <ul class="entry_tags">
4413 <li><a href="#tag_BC">BC</a></li>
4414 <li><a href="#tag_AWB">AWB</a></li>
4415 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004416 </td>
4417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004418 </tr>
4419 <tr class="entries_header">
4420 <th class="th_details" colspan="5">Details</th>
4421 </tr>
4422 <tr class="entry_cont">
4423 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004424 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4425<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4426routine is enabled,<wbr/> overriding the application's selected
4427<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
4428<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4429<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4430routine is disabled.<wbr/> The applicantion manually controls the white
4431balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4432and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4433<p>When set to any other modes,<wbr/> the camera device's auto white balance
4434routine is disabled.<wbr/> The camera device uses each particular illumination
4435target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004436 </td>
4437 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004438
4439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004440 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4441 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004442
4443
4444 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004445 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004446 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004447 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004448 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004449 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004450 <span class="entry_type_container">x</span>
4451
4452 <span class="entry_type_array">
4453 5 x area_count
4454 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004455 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004456
4457
4458 </td> <!-- entry_type -->
4459
4460 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004461 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004462estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004463 </td>
4464
4465 <td class="entry_units">
4466 </td>
4467
4468 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004469 <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004470 </td>
4471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004472 <td class="entry_tags">
4473 <ul class="entry_tags">
4474 <li><a href="#tag_BC">BC</a></li>
4475 </ul>
4476 </td>
4477
4478 </tr>
4479 <tr class="entries_header">
4480 <th class="th_details" colspan="5">Details</th>
4481 </tr>
4482 <tr class="entry_cont">
4483 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004484 <p>Only used in AUTO mode.<wbr/></p>
4485<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004486xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004487specified coordinates.<wbr/></p>
4488<p>The coordinate system is based on the active pixel array,<wbr/>
4489with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004490(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4491<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08004492bottom-right pixel in the active pixel array.<wbr/> The weight
4493should be nonnegative.<wbr/></p>
4494<p>If all regions have 0 weight,<wbr/> then no specific metering area
4495needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004496outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08004497should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004498used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004499 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004500 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004501
4502
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004503 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4504 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004505
4506
4507 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004508 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004509 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004510 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004512 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004513
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004514 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004515
4516 <ul class="entry_type_enum">
4517 <li>
4518 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004519 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4520starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004521 </li>
4522 <li>
4523 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004524 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004525values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004526 </li>
4527 <li>
4528 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004529 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004530current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004531 </li>
4532 <li>
4533 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004534 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004535 </li>
4536 </ul>
4537
4538 </td> <!-- entry_type -->
4539
4540 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004541 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004542 </td>
4543
4544 <td class="entry_units">
4545 </td>
4546
4547 <td class="entry_range">
4548 </td>
4549
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004550 <td class="entry_tags">
4551 </td>
4552
4553 </tr>
4554 <tr class="entries_header">
4555 <th class="th_details" colspan="5">Details</th>
4556 </tr>
4557 <tr class="entry_cont">
4558 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004559 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4560resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4561or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
4562the algorithm states to INACTIVE.<wbr/></p>
4563<p>The camera device can do several state transitions between two results,<wbr/> if it is
4564allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4565a result.<wbr/></p>
4566<p>The state in the result is the state for this image (in sync with this image): if
4567AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4568be good to use.<wbr/></p>
4569<p>Below are state transition tables for different AWB modes.<wbr/></p>
4570<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4571<table>
4572<thead>
4573<tr>
4574<th align="center">State</th>
4575<th align="center">Transition Cause</th>
4576<th align="center">New State</th>
4577<th align="center">Notes</th>
4578</tr>
4579</thead>
4580<tbody>
4581<tr>
4582<td align="center">INACTIVE</td>
4583<td align="center"></td>
4584<td align="center">INACTIVE</td>
4585<td align="center">Camera device auto white balance algorithm is disabled</td>
4586</tr>
4587</tbody>
4588</table>
4589<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4590<table>
4591<thead>
4592<tr>
4593<th align="center">State</th>
4594<th align="center">Transition Cause</th>
4595<th align="center">New State</th>
4596<th align="center">Notes</th>
4597</tr>
4598</thead>
4599<tbody>
4600<tr>
4601<td align="center">INACTIVE</td>
4602<td align="center">Camera device initiates AWB scan</td>
4603<td align="center">SEARCHING</td>
4604<td align="center">Values changing</td>
4605</tr>
4606<tr>
4607<td align="center">INACTIVE</td>
4608<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4609<td align="center">LOCKED</td>
4610<td align="center">Values locked</td>
4611</tr>
4612<tr>
4613<td align="center">SEARCHING</td>
4614<td align="center">Camera device finishes AWB scan</td>
4615<td align="center">CONVERGED</td>
4616<td align="center">Good values,<wbr/> not changing</td>
4617</tr>
4618<tr>
4619<td align="center">SEARCHING</td>
4620<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4621<td align="center">LOCKED</td>
4622<td align="center">Values locked</td>
4623</tr>
4624<tr>
4625<td align="center">CONVERGED</td>
4626<td align="center">Camera device initiates AWB scan</td>
4627<td align="center">SEARCHING</td>
4628<td align="center">Values changing</td>
4629</tr>
4630<tr>
4631<td align="center">CONVERGED</td>
4632<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4633<td align="center">LOCKED</td>
4634<td align="center">Values locked</td>
4635</tr>
4636<tr>
4637<td align="center">LOCKED</td>
4638<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4639<td align="center">SEARCHING</td>
4640<td align="center">Values not good after unlock</td>
4641</tr>
4642<tr>
4643<td align="center">LOCKED</td>
4644<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4645<td align="center">CONVERGED</td>
4646<td align="center">Values good after unlock</td>
4647</tr>
4648</tbody>
4649</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004650 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004651 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004652
4653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004654 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4655 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004656
4657
4658 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004659 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004660 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004661 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004662 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004663 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004664
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004665 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004666
4667 <ul class="entry_type_enum">
4668 <li>
4669 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004670 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4671routines are disabled,<wbr/> no other settings in
4672android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004673 </li>
4674 <li>
4675 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004676 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4677Manual control of capture parameters is disabled.<wbr/> All
4678controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4679effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004680 </li>
4681 <li>
4682 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004683 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4684control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4685controls; the HAL must ignore those settings while
4686USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4687scene mode).<wbr/> Other control entries are still active.<wbr/>
4688This setting can only be used if availableSceneModes !=
4689UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </li>
4691 </ul>
4692
4693 </td> <!-- entry_type -->
4694
4695 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004696 <p>Overall mode of 3A control
4697routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004698 </td>
4699
4700 <td class="entry_units">
4701 </td>
4702
4703 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004704 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004705 </td>
4706
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004707 <td class="entry_tags">
4708 <ul class="entry_tags">
4709 <li><a href="#tag_BC">BC</a></li>
4710 </ul>
4711 </td>
4712
4713 </tr>
4714 <tr class="entries_header">
4715 <th class="th_details" colspan="5">Details</th>
4716 </tr>
4717 <tr class="entry_cont">
4718 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004719 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004720by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004721capture parameters itself.<wbr/></p>
4722<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004723android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08004724<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004725android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004726one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004727as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004728<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004729 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004730 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004731
4732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004733 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4734 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004735
4736
4737
4738 <!-- end of kind -->
4739 </tbody>
4740
4741 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004742 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004743
4744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004745 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004746
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004747 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004748 <tr>
4749 <th class="th_name">Property Name</th>
4750 <th class="th_type">Type</th>
4751 <th class="th_description">Description</th>
4752 <th class="th_units">Units</th>
4753 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004754 <th class="th_tags">Tags</th>
4755 </tr>
4756 </thead>
4757
4758 <tbody>
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004770 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004771 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004772 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004773 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004774 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004775
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004776 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004777
4778 <ul class="entry_type_enum">
4779 <li>
4780 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004781 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4782Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004783 </li>
4784 <li>
4785 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004786 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4787rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004788 </li>
4789 </ul>
4790
4791 </td> <!-- entry_type -->
4792
4793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004794 <p>Controls the quality of the demosaicing
4795processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004796 </td>
4797
4798 <td class="entry_units">
4799 </td>
4800
4801 <td class="entry_range">
4802 </td>
4803
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004804 <td class="entry_tags">
4805 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004806 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004807 </ul>
4808 </td>
4809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004810 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004811
4812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004813 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4814 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004815
4816
4817
4818 <!-- end of kind -->
4819 </tbody>
4820
4821 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004822 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004823
4824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004825 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004827 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004828 <tr>
4829 <th class="th_name">Property Name</th>
4830 <th class="th_type">Type</th>
4831 <th class="th_description">Description</th>
4832 <th class="th_units">Units</th>
4833 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004834 <th class="th_tags">Tags</th>
4835 </tr>
4836 </thead>
4837
4838 <tbody>
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004850 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004851 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004852 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004853 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004854 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004855
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004856 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857
4858 <ul class="entry_type_enum">
4859 <li>
4860 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004861 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004862 </li>
4863 <li>
4864 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004865 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4866output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004867 </li>
4868 <li>
4869 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004870 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4871quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004872 </li>
4873 </ul>
4874
4875 </td> <!-- entry_type -->
4876
4877 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004878 <p>Operation mode for edge
4879enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004880 </td>
4881
4882 <td class="entry_units">
4883 </td>
4884
4885 <td class="entry_range">
4886 </td>
4887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004888 <td class="entry_tags">
4889 </td>
4890
4891 </tr>
4892 <tr class="entries_header">
4893 <th class="th_details" colspan="5">Details</th>
4894 </tr>
4895 <tr class="entry_cont">
4896 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004897 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4898enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004899<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004900will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004901camera device will use the highest-quality enhancement algorithms,<wbr/>
4902even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004903not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004904 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004906
4907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004910
4911
4912 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004913 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004914 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004915 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004917 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004918
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004919 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004920
4921
4922 </td> <!-- entry_type -->
4923
4924 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004925 <p>Control the amount of edge enhancement
4926applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004927 </td>
4928
4929 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004930 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004931 </td>
4932
4933 <td class="entry_range">
4934 </td>
4935
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004936 <td class="entry_tags">
4937 </td>
4938
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004939 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004940
4941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004942 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4943 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004944
4945
4946
4947 <!-- end of kind -->
4948 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004949 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004950
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004951 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004952 <tr>
4953 <th class="th_name">Property Name</th>
4954 <th class="th_type">Type</th>
4955 <th class="th_description">Description</th>
4956 <th class="th_units">Units</th>
4957 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004958 <th class="th_tags">Tags</th>
4959 </tr>
4960 </thead>
4961
4962 <tbody>
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004974 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004975 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004978 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004980 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004981
4982 <ul class="entry_type_enum">
4983 <li>
4984 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004985 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004986 </li>
4987 <li>
4988 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004989 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4990output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004991 </li>
4992 <li>
4993 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004994 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4995quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004996 </li>
4997 </ul>
4998
4999 </td> <!-- entry_type -->
5000
5001 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005002 <p>Operation mode for edge
5003enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005004 </td>
5005
5006 <td class="entry_units">
5007 </td>
5008
5009 <td class="entry_range">
5010 </td>
5011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005012 <td class="entry_tags">
5013 </td>
5014
5015 </tr>
5016 <tr class="entries_header">
5017 <th class="th_details" colspan="5">Details</th>
5018 </tr>
5019 <tr class="entry_cont">
5020 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005021 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5022enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005023<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005024will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005025camera device will use the highest-quality enhancement algorithms,<wbr/>
5026even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005027not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005028 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005030
5031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5033 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005034
5035
5036
5037 <!-- end of kind -->
5038 </tbody>
5039
5040 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005041 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005042
5043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005044 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005045
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005046 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005047 <tr>
5048 <th class="th_name">Property Name</th>
5049 <th class="th_type">Type</th>
5050 <th class="th_description">Description</th>
5051 <th class="th_units">Units</th>
5052 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005053 <th class="th_tags">Tags</th>
5054 </tr>
5055 </thead>
5056
5057 <tbody>
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005069 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005070 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005071 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005072 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005073 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005074
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005075 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005076
5077
5078 </td> <!-- entry_type -->
5079
5080 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005081 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005082 </td>
5083
5084 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005085 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005086 </td>
5087
5088 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005089 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005090 </td>
5091
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005092 <td class="entry_tags">
5093 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005094 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005095 </ul>
5096 </td>
5097
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005098 </tr>
5099 <tr class="entries_header">
5100 <th class="th_details" colspan="5">Details</th>
5101 </tr>
5102 <tr class="entry_cont">
5103 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005104 <p>Power for snapshot may use a different scale than
5105for torch mode.<wbr/> Only one entry for torch mode will be
5106used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005107 </td>
5108 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005109
5110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005111 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5112 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005113
5114
5115 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005116 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005117 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005118 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005120 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005121
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005122 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123
5124
5125 </td> <!-- entry_type -->
5126
5127 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005128 <p>Firing time of flash relative to start of
5129exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005130 </td>
5131
5132 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005133 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005134 </td>
5135
5136 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005137 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005138 </td>
5139
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005140 <td class="entry_tags">
5141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005142 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005143 </ul>
5144 </td>
5145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005146 </tr>
5147 <tr class="entries_header">
5148 <th class="th_details" colspan="5">Details</th>
5149 </tr>
5150 <tr class="entry_cont">
5151 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005152 <p>Clamped to (0,<wbr/> exposure time - flash
5153duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005154 </td>
5155 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005156
5157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005158 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5159 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005160
5161
5162 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005163 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005164 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005165 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005166 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005167 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005168
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005169 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170
5171 <ul class="entry_type_enum">
5172 <li>
5173 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005174 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005175 </li>
5176 <li>
5177 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005178 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5179for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5180<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005181 </li>
5182 <li>
5183 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005184 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 </li>
5186 </ul>
5187
5188 </td> <!-- entry_type -->
5189
5190 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005191 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005192 </td>
5193
5194 <td class="entry_units">
5195 </td>
5196
5197 <td class="entry_range">
5198 </td>
5199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005200 <td class="entry_tags">
5201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005202 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005203 </ul>
5204 </td>
5205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005206 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005207 <tr class="entries_header">
5208 <th class="th_details" colspan="5">Details</th>
5209 </tr>
5210 <tr class="entry_cont">
5211 <td class="entry_details" colspan="5">
5212 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005213(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005214<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5215Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5216ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5217<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5218<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5219device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5220control should be used along with AE precapture metering sequence
5221(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5222<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5223for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08005224<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005225 </td>
5226 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005227
5228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005229 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5230 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005231
5232
5233
5234 <!-- end of kind -->
5235 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005236 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005237
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005238 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005239 <tr>
5240 <th class="th_name">Property Name</th>
5241 <th class="th_type">Type</th>
5242 <th class="th_description">Description</th>
5243 <th class="th_units">Units</th>
5244 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005245 <th class="th_tags">Tags</th>
5246 </tr>
5247 </thead>
5248
5249 <tbody>
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005263 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005264 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005266 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005267 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005268
Zhijun He5169ce12014-01-24 16:48:25 -08005269 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270
Zhijun He5169ce12014-01-24 16:48:25 -08005271 <ul class="entry_type_enum">
5272 <li>
5273 <span class="entry_type_enum_name">FALSE</span>
5274 </li>
5275 <li>
5276 <span class="entry_type_enum_name">TRUE</span>
5277 </li>
5278 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005279
5280 </td> <!-- entry_type -->
5281
5282 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005283 <p>Whether this camera device has a
5284flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005285 </td>
5286
5287 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005288 </td>
5289
5290 <td class="entry_range">
5291 </td>
5292
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005293 <td class="entry_tags">
5294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005295 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296 </ul>
5297 </td>
5298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005299 </tr>
5300 <tr class="entries_header">
5301 <th class="th_details" colspan="5">Details</th>
5302 </tr>
5303 <tr class="entry_cont">
5304 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005305 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005306anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005307 </td>
5308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005309
5310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005313
5314
5315 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005316 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005317 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005318 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005319 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005320 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005321
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005322 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005323
5324
5325 </td> <!-- entry_type -->
5326
5327 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005328 <p>Time taken before flash can fire
5329again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005330 </td>
5331
5332 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005333 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005334 </td>
5335
5336 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005337 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005338 </td>
5339
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005340 <td class="entry_tags">
5341 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005342 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005343 </ul>
5344 </td>
5345
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005346 </tr>
5347 <tr class="entries_header">
5348 <th class="th_details" colspan="5">Details</th>
5349 </tr>
5350 <tr class="entry_cont">
5351 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005352 <p>1 second too long/<wbr/>too short for recharge? Should
5353this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005354 </td>
5355 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005356
5357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005358 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5359 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005360
5361
5362
5363
5364
5365 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005366 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005367 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005368 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005370 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005371
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005372 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005373
5374
5375 </td> <!-- entry_type -->
5376
5377 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005378 <p>The x,<wbr/>y whitepoint of the
5379flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005380 </td>
5381
5382 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005383 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384 </td>
5385
5386 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005387 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005388 </td>
5389
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005390 <td class="entry_tags">
5391 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005392 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005393 </ul>
5394 </td>
5395
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005396 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005397
5398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005399 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5400 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005401
5402
5403 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005404 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005405 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005406 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005407 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005408 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005409
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005410 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005411
5412
5413 </td> <!-- entry_type -->
5414
5415 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005416 <p>Max energy output of the flash for a full
5417power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005418 </td>
5419
5420 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005421 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422 </td>
5423
5424 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005425 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005426 </td>
5427
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005428 <td class="entry_tags">
5429 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005430 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005431 </ul>
5432 </td>
5433
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005434 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005435
5436
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005437 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5438 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005439
5440
5441
5442 <!-- end of kind -->
5443 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005444 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005445
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005446 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005447 <tr>
5448 <th class="th_name">Property Name</th>
5449 <th class="th_type">Type</th>
5450 <th class="th_description">Description</th>
5451 <th class="th_units">Units</th>
5452 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005453 <th class="th_tags">Tags</th>
5454 </tr>
5455 </thead>
5456
5457 <tbody>
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005469 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005470 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005471 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005472 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005473 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005474
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005475 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005476
5477
5478 </td> <!-- entry_type -->
5479
5480 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005481 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005482 </td>
5483
5484 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005485 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005486 </td>
5487
5488 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005489 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005490 </td>
5491
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005492 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005493 <ul class="entry_tags">
5494 <li><a href="#tag_V1">V1</a></li>
5495 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496 </td>
5497
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005498 </tr>
5499 <tr class="entries_header">
5500 <th class="th_details" colspan="5">Details</th>
5501 </tr>
5502 <tr class="entry_cont">
5503 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005504 <p>Power for snapshot may use a different scale than
5505for torch mode.<wbr/> Only one entry for torch mode will be
5506used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005507 </td>
5508 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005509
5510
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005511 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5512 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005513
5514
5515 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005516 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005517 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005518 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005519 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005520 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005522 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005523
5524
5525 </td> <!-- entry_type -->
5526
5527 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005528 <p>Firing time of flash relative to start of
5529exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005530 </td>
5531
5532 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005533 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005534 </td>
5535
5536 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005537 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005538 </td>
5539
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005540 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005541 <ul class="entry_tags">
5542 <li><a href="#tag_V1">V1</a></li>
5543 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005544 </td>
5545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005546 </tr>
5547 <tr class="entries_header">
5548 <th class="th_details" colspan="5">Details</th>
5549 </tr>
5550 <tr class="entry_cont">
5551 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005552 <p>Clamped to (0,<wbr/> exposure time - flash
5553duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005554 </td>
5555 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005556
5557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5559 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005560
5561
5562 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005563 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005564 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005565 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005566 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005567 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005568
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005569 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005570
5571 <ul class="entry_type_enum">
5572 <li>
5573 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005574 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005575 </li>
5576 <li>
5577 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005578 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5579for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5580<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005581 </li>
5582 <li>
5583 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005584 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005585 </li>
5586 </ul>
5587
5588 </td> <!-- entry_type -->
5589
5590 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005591 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005592 </td>
5593
5594 <td class="entry_units">
5595 </td>
5596
5597 <td class="entry_range">
5598 </td>
5599
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005600 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005601 <ul class="entry_tags">
5602 <li><a href="#tag_BC">BC</a></li>
5603 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005604 </td>
5605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005606 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005607 <tr class="entries_header">
5608 <th class="th_details" colspan="5">Details</th>
5609 </tr>
5610 <tr class="entry_cont">
5611 <td class="entry_details" colspan="5">
5612 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005613(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005614<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5615Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5616ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5617<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5618<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5619device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5620control should be used along with AE precapture metering sequence
5621(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5622<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5623for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08005624<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -08005625 </td>
5626 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005627
5628
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005629 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5630 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005631
5632
5633 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005634 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005635 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005636 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005637 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005638 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005639
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005640 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005641
5642 <ul class="entry_type_enum">
5643 <li>
5644 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005645 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005646 </li>
5647 <li>
5648 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005649 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005650charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005651 </li>
5652 <li>
5653 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005654 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005655ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005656 </li>
5657 <li>
5658 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005659 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash fired
Igor Murashkina10351a2014-01-15 17:05:22 -08005660for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005661 </li>
5662 </ul>
5663
5664 </td> <!-- entry_type -->
5665
5666 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005667 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005668unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005669 </td>
5670
5671 <td class="entry_units">
5672 </td>
5673
5674 <td class="entry_range">
5675 </td>
5676
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005677 <td class="entry_tags">
5678 </td>
5679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005680 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005681 <tr class="entries_header">
5682 <th class="th_details" colspan="5">Details</th>
5683 </tr>
5684 <tr class="entry_cont">
5685 <td class="entry_details" colspan="5">
5686 <p>When the camera device doesn't have flash unit
5687(i.<wbr/>e.<wbr/> <code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == false</code>),<wbr/> this state will always be UNAVAILABLE.<wbr/>
5688Other states indicate the current flash status.<wbr/></p>
5689 </td>
5690 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005691
5692
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005693 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5694 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005695
5696
5697
5698 <!-- end of kind -->
5699 </tbody>
5700
5701 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005702 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005703
5704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005705 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005706
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005707 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005708 <tr>
5709 <th class="th_name">Property Name</th>
5710 <th class="th_type">Type</th>
5711 <th class="th_description">Description</th>
5712 <th class="th_units">Units</th>
5713 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005714 <th class="th_tags">Tags</th>
5715 </tr>
5716 </thead>
5717
5718 <tbody>
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005730 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005731 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005732 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005733 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005734 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005735
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005736 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005737
5738 <ul class="entry_type_enum">
5739 <li>
5740 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005741 <span class="entry_type_enum_notes"><p>No geometric correction is
5742applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005743 </li>
5744 <li>
5745 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005746 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5747bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005748 </li>
5749 <li>
5750 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005751 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5752quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005753 </li>
5754 </ul>
5755
5756 </td> <!-- entry_type -->
5757
5758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005759 <p>Operating mode of geometric
5760correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005761 </td>
5762
5763 <td class="entry_units">
5764 </td>
5765
5766 <td class="entry_range">
5767 </td>
5768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005769 <td class="entry_tags">
5770 </td>
5771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005773
5774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005777
5778
5779 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005781 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005784 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005785
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005786 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005787
5788
5789 </td> <!-- entry_type -->
5790
5791 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005792 <p>Control the amount of shading correction
5793applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005794 </td>
5795
5796 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005797 unitless: 1-10; 10 is full shading
5798 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005799 </td>
5800
5801 <td class="entry_range">
5802 </td>
5803
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005804 <td class="entry_tags">
5805 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005806 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005807 </ul>
5808 </td>
5809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005810 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005811
5812
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005813 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5814 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005815
5816
5817
5818 <!-- end of kind -->
5819 </tbody>
5820
5821 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005822 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005823
5824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005825 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005827 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005828 <tr>
5829 <th class="th_name">Property Name</th>
5830 <th class="th_type">Type</th>
5831 <th class="th_description">Description</th>
5832 <th class="th_units">Units</th>
5833 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005834 <th class="th_tags">Tags</th>
5835 </tr>
5836 </thead>
5837
5838 <tbody>
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005850 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005851 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005852 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005853 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005854 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005855
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005856 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005857
5858 <ul class="entry_type_enum">
5859 <li>
5860 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005861 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5862applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005863 </li>
5864 <li>
5865 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005866 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5867Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005868 </li>
5869 <li>
5870 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005871 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5872quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005873 </li>
5874 </ul>
5875
5876 </td> <!-- entry_type -->
5877
5878 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005879 <p>Set operational mode for hot pixel
5880correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005881 </td>
5882
5883 <td class="entry_units">
5884 </td>
5885
5886 <td class="entry_range">
5887 </td>
5888
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005889 <td class="entry_tags">
5890 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005891 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005892 </ul>
5893 </td>
5894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005896
5897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005898 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5899 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005900
5901
5902
5903 <!-- end of kind -->
5904 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005905 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005906
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005907 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005908 <tr>
5909 <th class="th_name">Property Name</th>
5910 <th class="th_type">Type</th>
5911 <th class="th_description">Description</th>
5912 <th class="th_units">Units</th>
5913 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005914 <th class="th_tags">Tags</th>
5915 </tr>
5916 </thead>
5917
5918 <tbody>
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005932 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005933 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005934 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005935 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005936 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005937 <span class="entry_type_container">x</span>
5938
5939 <span class="entry_type_array">
5940 2 x n
5941 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005942 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005943 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005944
5945
5946 </td> <!-- entry_type -->
5947
5948 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005949 <p>Location of hot/<wbr/>defective pixels on
5950sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005951 </td>
5952
5953 <td class="entry_units">
5954 </td>
5955
5956 <td class="entry_range">
5957 </td>
5958
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005959 <td class="entry_tags">
5960 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005961 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005962 </ul>
5963 </td>
5964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005966
5967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005970
5971
5972
5973
5974
5975
5976 <!-- end of kind -->
5977 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005978 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005980 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005981 <tr>
5982 <th class="th_name">Property Name</th>
5983 <th class="th_type">Type</th>
5984 <th class="th_description">Description</th>
5985 <th class="th_units">Units</th>
5986 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005987 <th class="th_tags">Tags</th>
5988 </tr>
5989 </thead>
5990
5991 <tbody>
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006003 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006004 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006005 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006006 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006007 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006008
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006009 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006010
6011 <ul class="entry_type_enum">
6012 <li>
6013 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006014 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6015applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006016 </li>
6017 <li>
6018 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006019 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6020Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006021 </li>
6022 <li>
6023 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006024 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6025quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006026 </li>
6027 </ul>
6028
6029 </td> <!-- entry_type -->
6030
6031 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006032 <p>Set operational mode for hot pixel
6033correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006034 </td>
6035
6036 <td class="entry_units">
6037 </td>
6038
6039 <td class="entry_range">
6040 </td>
6041
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006042 <td class="entry_tags">
6043 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006044 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006045 </ul>
6046 </td>
6047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006048 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006049
6050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006051 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6052 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006053
6054
6055
6056 <!-- end of kind -->
6057 </tbody>
6058
6059 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006060 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006061
6062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006063 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006064
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006065 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006066 <tr>
6067 <th class="th_name">Property Name</th>
6068 <th class="th_type">Type</th>
6069 <th class="th_description">Description</th>
6070 <th class="th_units">Units</th>
6071 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006072 <th class="th_tags">Tags</th>
6073 </tr>
6074 </thead>
6075
6076 <tbody>
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006088 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006089 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006090 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006091 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006092 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006093 <span class="entry_type_container">x</span>
6094
6095 <span class="entry_type_array">
6096 3
6097 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006098 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006099 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006100
6101
6102 </td> <!-- entry_type -->
6103
6104 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006105 <p>GPS coordinates to include in output JPEG
6106EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006107 </td>
6108
6109 <td class="entry_units">
6110 </td>
6111
6112 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006113 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006114 </td>
6115
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006116 <td class="entry_tags">
6117 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006118 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 </ul>
6120 </td>
6121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006122 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006123
6124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6126 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006127
6128
6129 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006130 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006131 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006132 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006133 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006134 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006135
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006136 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006137
6138
6139 </td> <!-- entry_type -->
6140
6141 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006142 <p>32 characters describing GPS algorithm to
6143include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006144 </td>
6145
6146 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006147 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006148 </td>
6149
6150 <td class="entry_range">
6151 </td>
6152
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006153 <td class="entry_tags">
6154 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006155 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 </ul>
6157 </td>
6158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006160
6161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006164
6165
6166 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006167 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006168 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006169 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006170 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006171 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006172
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006173 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006174
6175
6176 </td> <!-- entry_type -->
6177
6178 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006179 <p>Time GPS fix was made to include in
6180EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006181 </td>
6182
6183 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006184 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006185 </td>
6186
6187 <td class="entry_range">
6188 </td>
6189
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006190 <td class="entry_tags">
6191 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006192 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006193 </ul>
6194 </td>
6195
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006196 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006197
6198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006199 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6200 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006201
6202
6203 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006204 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006205 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006206 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006207 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006208 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006209
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006210 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211
6212
6213 </td> <!-- entry_type -->
6214
6215 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006216 <p>Orientation of JPEG image to
6217write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006218 </td>
6219
6220 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006221 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006222 </td>
6223
6224 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006225 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006226 </td>
6227
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006228 <td class="entry_tags">
6229 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006230 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006231 </ul>
6232 </td>
6233
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006235
6236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006237 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6238 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006239
6240
6241 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006242 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006243 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006244 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006245 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006246 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006247
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006248 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006249
6250
6251 </td> <!-- entry_type -->
6252
6253 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006254 <p>Compression quality of the final JPEG
6255image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 </td>
6257
6258 <td class="entry_units">
6259 </td>
6260
6261 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006262 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006263 </td>
6264
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006265 <td class="entry_tags">
6266 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006267 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006268 </ul>
6269 </td>
6270
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006271 </tr>
6272 <tr class="entries_header">
6273 <th class="th_details" colspan="5">Details</th>
6274 </tr>
6275 <tr class="entry_cont">
6276 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006277 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006278 </td>
6279 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006280
6281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006282 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6283 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006284
6285
6286 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006287 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006288 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006289 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006290 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006291 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006292
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006293 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006294
6295
6296 </td> <!-- entry_type -->
6297
6298 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006299 <p>Compression quality of JPEG
6300thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301 </td>
6302
6303 <td class="entry_units">
6304 </td>
6305
6306 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006307 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006308 </td>
6309
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006310 <td class="entry_tags">
6311 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006312 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006313 </ul>
6314 </td>
6315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006317
6318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006319 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006321
6322
6323 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006324 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006325 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006326 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006328 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006329 <span class="entry_type_container">x</span>
6330
6331 <span class="entry_type_array">
6332 2
6333 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006334 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006335
6336
6337 </td> <!-- entry_type -->
6338
6339 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006340 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006341 </td>
6342
6343 <td class="entry_units">
6344 </td>
6345
6346 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006347 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006348 </td>
6349
6350 <td class="entry_tags">
6351 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006352 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006353 </ul>
6354 </td>
6355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006356 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006357 <tr class="entries_header">
6358 <th class="th_details" colspan="5">Details</th>
6359 </tr>
6360 <tr class="entry_cont">
6361 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006362 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6363but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006364<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6365the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006366 </td>
6367 </tr>
6368
6369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6371 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006372
6373
6374
6375 <!-- end of kind -->
6376 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006377 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006378
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006379 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006380 <tr>
6381 <th class="th_name">Property Name</th>
6382 <th class="th_type">Type</th>
6383 <th class="th_description">Description</th>
6384 <th class="th_units">Units</th>
6385 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006386 <th class="th_tags">Tags</th>
6387 </tr>
6388 </thead>
6389
6390 <tbody>
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006402 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006403 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006404 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006405 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006406 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006407 <span class="entry_type_container">x</span>
6408
6409 <span class="entry_type_array">
6410 2 x n
6411 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006412 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006413
6414
6415 </td> <!-- entry_type -->
6416
6417 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006418 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006419 </td>
6420
6421 <td class="entry_units">
6422 </td>
6423
6424 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006425 <p>Will include at least one valid resolution,<wbr/> plus
6426(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006427 </td>
6428
6429 <td class="entry_tags">
6430 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006431 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006432 </ul>
6433 </td>
6434
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006435 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006436 <tr class="entries_header">
6437 <th class="th_details" colspan="5">Details</th>
6438 </tr>
6439 <tr class="entry_cont">
6440 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006441 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006442<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006443<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6444If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6445<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006446aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006447The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006448in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006449<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
Igor Murashkin0b080452013-12-27 15:30:25 -08006450one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6451and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006452<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006453</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006454 </td>
6455 </tr>
6456
6457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006458 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6459 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006460
6461
6462 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006463 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006464 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006465 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006466 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006467 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006468
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006469 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470
6471
6472 </td> <!-- entry_type -->
6473
6474 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006475 <p>Maximum size in bytes for the compressed
6476JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006477 </td>
6478
6479 <td class="entry_units">
6480 </td>
6481
6482 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006483 <p>Must be large enough to fit any JPEG produced by
6484the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006485 </td>
6486
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006487 <td class="entry_tags">
6488 </td>
6489
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006490 </tr>
6491 <tr class="entries_header">
6492 <th class="th_details" colspan="5">Details</th>
6493 </tr>
6494 <tr class="entry_cont">
6495 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006496 <p>This is used for sizing the gralloc buffers for
6497JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006498 </td>
6499 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006500
6501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006502 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6503 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006504
6505
6506
6507 <!-- end of kind -->
6508 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006509 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006510
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006511 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006512 <tr>
6513 <th class="th_name">Property Name</th>
6514 <th class="th_type">Type</th>
6515 <th class="th_description">Description</th>
6516 <th class="th_units">Units</th>
6517 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006518 <th class="th_tags">Tags</th>
6519 </tr>
6520 </thead>
6521
6522 <tbody>
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006534 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006535 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006536 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006537 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006538 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006539 <span class="entry_type_container">x</span>
6540
6541 <span class="entry_type_array">
6542 3
6543 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006544 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006545 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006546
6547
6548 </td> <!-- entry_type -->
6549
6550 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006551 <p>GPS coordinates to include in output JPEG
6552EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006553 </td>
6554
6555 <td class="entry_units">
6556 </td>
6557
6558 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006559 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006560 </td>
6561
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006562 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006563 <ul class="entry_tags">
6564 <li><a href="#tag_BC">BC</a></li>
6565 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006566 </td>
6567
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006568 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006569
6570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006571 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6572 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006573
6574
6575 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006576 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006577 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006578 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006579 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006580 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006581
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006582 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006583
6584
6585 </td> <!-- entry_type -->
6586
6587 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006588 <p>32 characters describing GPS algorithm to
6589include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006590 </td>
6591
6592 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006593 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006594 </td>
6595
6596 <td class="entry_range">
6597 </td>
6598
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006599 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006600 <ul class="entry_tags">
6601 <li><a href="#tag_BC">BC</a></li>
6602 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006603 </td>
6604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006605 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006606
6607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006608 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6609 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006610
6611
6612 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006613 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006614 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006615 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006616 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006617 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006618
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006619 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006620
6621
6622 </td> <!-- entry_type -->
6623
6624 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006625 <p>Time GPS fix was made to include in
6626EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006627 </td>
6628
6629 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006630 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006631 </td>
6632
6633 <td class="entry_range">
6634 </td>
6635
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006636 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006637 <ul class="entry_tags">
6638 <li><a href="#tag_BC">BC</a></li>
6639 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640 </td>
6641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006642 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006643
6644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006645 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6646 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006647
6648
6649 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006650 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006651 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006652 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006653 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006654 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006655
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006656 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657
6658
6659 </td> <!-- entry_type -->
6660
6661 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006662 <p>Orientation of JPEG image to
6663write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006664 </td>
6665
6666 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006667 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006668 </td>
6669
6670 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006671 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006672 </td>
6673
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006674 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006675 <ul class="entry_tags">
6676 <li><a href="#tag_BC">BC</a></li>
6677 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006678 </td>
6679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006680 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006681
6682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006683 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6684 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006685
6686
6687 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006688 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006689 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006690 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006691 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006692 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006693
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006694 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006695
6696
6697 </td> <!-- entry_type -->
6698
6699 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006700 <p>Compression quality of the final JPEG
6701image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 </td>
6703
6704 <td class="entry_units">
6705 </td>
6706
6707 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006708 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006709 </td>
6710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006711 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006712 <ul class="entry_tags">
6713 <li><a href="#tag_BC">BC</a></li>
6714 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006715 </td>
6716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006717 </tr>
6718 <tr class="entries_header">
6719 <th class="th_details" colspan="5">Details</th>
6720 </tr>
6721 <tr class="entry_cont">
6722 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006723 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006724 </td>
6725 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006726
6727
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006728 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6729 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006730
6731
6732 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006734 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006737 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006739 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006740
6741
6742 </td> <!-- entry_type -->
6743
6744 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006745 <p>The size of the compressed JPEG image,<wbr/> in
6746bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006747 </td>
6748
6749 <td class="entry_units">
6750 </td>
6751
6752 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006753 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006754 </td>
6755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006756 <td class="entry_tags">
6757 </td>
6758
6759 </tr>
6760 <tr class="entries_header">
6761 <th class="th_details" colspan="5">Details</th>
6762 </tr>
6763 <tr class="entry_cont">
6764 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006765 <p>If no JPEG output is produced for the request,<wbr/>
6766this must be 0.<wbr/></p>
6767<p>Otherwise,<wbr/> this describes the real size of the compressed
6768JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006769if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6770has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
Igor Murashkin0b080452013-12-27 15:30:25 -08006771the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6772500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006773 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006774 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006775
6776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006777 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6778 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006779
6780
6781 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006782 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006783 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006784 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006785 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006786 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006787
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006788 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006789
6790
6791 </td> <!-- entry_type -->
6792
6793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006794 <p>Compression quality of JPEG
6795thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796 </td>
6797
6798 <td class="entry_units">
6799 </td>
6800
6801 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006802 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006803 </td>
6804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006805 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006806 <ul class="entry_tags">
6807 <li><a href="#tag_BC">BC</a></li>
6808 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006809 </td>
6810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006812
6813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006816
6817
6818 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006819 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006820 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006821 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006822 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006823 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006824 <span class="entry_type_container">x</span>
6825
6826 <span class="entry_type_array">
6827 2
6828 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006829 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006830
6831
6832 </td> <!-- entry_type -->
6833
6834 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006835 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006836 </td>
6837
6838 <td class="entry_units">
6839 </td>
6840
6841 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006842 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006843 </td>
6844
6845 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006846 <ul class="entry_tags">
6847 <li><a href="#tag_BC">BC</a></li>
6848 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006849 </td>
6850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006851 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006852 <tr class="entries_header">
6853 <th class="th_details" colspan="5">Details</th>
6854 </tr>
6855 <tr class="entry_cont">
6856 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006857 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6858but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006859<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6860the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006861 </td>
6862 </tr>
6863
6864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006865 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6866 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006867
6868
6869
6870 <!-- end of kind -->
6871 </tbody>
6872
6873 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006874 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006875
6876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006877 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006879 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006880 <tr>
6881 <th class="th_name">Property Name</th>
6882 <th class="th_type">Type</th>
6883 <th class="th_description">Description</th>
6884 <th class="th_units">Units</th>
6885 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006886 <th class="th_tags">Tags</th>
6887 </tr>
6888 </thead>
6889
6890 <tbody>
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006902 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006903 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006904 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006905 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006906 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006907
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006908 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006909
6910
6911 </td> <!-- entry_type -->
6912
6913 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006914 <p>The ratio of lens focal length to the effective
6915aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006916 </td>
6917
6918 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006919 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006920 </td>
6921
6922 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006923 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006924 </td>
6925
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006926 <td class="entry_tags">
6927 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006928 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006929 </ul>
6930 </td>
6931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006932 </tr>
6933 <tr class="entries_header">
6934 <th class="th_details" colspan="5">Details</th>
6935 </tr>
6936 <tr class="entry_cont">
6937 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006938 <p>This will only be supported on the camera devices that
6939have variable aperture lens.<wbr/> The aperture value can only be
6940one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6941<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6942this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6943<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6944to achieve manual exposure control.<wbr/></p>
6945<p>The requested aperture value may take several frames to reach the
6946requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006947aperture size in capture result metadata while the aperture is changing.<wbr/>
6948While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -08006949<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6950the ON modes,<wbr/> this will be overridden by the camera device
6951auto-exposure algorithm,<wbr/> the overridden values are then provided
6952back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006953 </td>
6954 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006955
6956
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006957 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6958 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006959
6960
6961 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006962 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006963 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006964 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006965 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006966 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006967
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006968 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006969
6970
6971 </td> <!-- entry_type -->
6972
6973 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006974 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006975 </td>
6976
6977 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006978 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979 </td>
6980
6981 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006982 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006983 </td>
6984
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 <td class="entry_tags">
6986 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006987 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006988 </ul>
6989 </td>
6990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006991 </tr>
6992 <tr class="entries_header">
6993 <th class="th_details" colspan="5">Details</th>
6994 </tr>
6995 <tr class="entry_cont">
6996 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006997 <p>This will not be supported on most camera devices.<wbr/> On devices
6998where this is supported,<wbr/> this may only be set to one of the
6999values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7000<p>Lens filters are typically used to lower the amount of light the
7001sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7002step is the standard logarithmic representation,<wbr/> which are
7003non-negative,<wbr/> and inversely proportional to the amount of light
7004hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7005in no reduction of the incoming light,<wbr/> and setting this to 2 would
7006mean that the filter is set to reduce incoming light by two stops
7007(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007008<p>It may take several frames before the lens filter density changes
7009to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7010<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007011 </td>
7012 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007013
7014
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007015 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7016 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007017
7018
7019 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007020 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007021 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007022 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007023 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007024 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007025
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007026 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007027
7028
7029 </td> <!-- entry_type -->
7030
7031 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007032 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007033 </td>
7034
7035 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007036 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007037 </td>
7038
7039 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007040 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007041 </td>
7042
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007043 <td class="entry_tags">
7044 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007045 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007046 </ul>
7047 </td>
7048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007049 </tr>
7050 <tr class="entries_header">
7051 <th class="th_details" colspan="5">Details</th>
7052 </tr>
7053 <tr class="entry_cont">
7054 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007055 <p>This setting controls the physical focal length of the camera
7056device's lens.<wbr/> Changing the focal length changes the field of
7057view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7058<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7059setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007060frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007061While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7062be set to MOVING.<wbr/></p>
7063<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007064 </td>
7065 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007066
7067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007068 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7069 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007070
7071
7072 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007073 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007074 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007075 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007076 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007077 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007078
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007079 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080
7081
7082 </td> <!-- entry_type -->
7083
7084 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007085 <p>Distance to plane of sharpest focus,<wbr/>
7086measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007087 </td>
7088
7089 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007090 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007091 </td>
7092
7093 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007094 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007095 </td>
7096
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007097 <td class="entry_tags">
7098 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007099 <li><a href="#tag_BC">BC</a></li>
7100 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007101 </ul>
7102 </td>
7103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007104 </tr>
7105 <tr class="entries_header">
7106 <th class="th_details" colspan="5">Details</th>
7107 </tr>
7108 <tr class="entry_cont">
7109 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007110 <p>0 means infinity focus.<wbr/> Used value will be clamped
7111to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7112<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7113instantaneously,<wbr/> and it may take several frames before the lens
7114can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7115<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007116 </td>
7117 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007118
7119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007120 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7121 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007122
7123
7124 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007125 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007126 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007127 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007128 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007129 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007130
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007131 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007132
7133 <ul class="entry_type_enum">
7134 <li>
7135 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007136 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007137 </li>
7138 <li>
7139 <span class="entry_type_enum_name">ON</span>
7140 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007141 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007142 </li>
7143 </ul>
7144
7145 </td> <!-- entry_type -->
7146
7147 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007148 <p>Sets whether the camera device uses optical image stabilization (OIS)
7149when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007150 </td>
7151
7152 <td class="entry_units">
7153 </td>
7154
7155 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007156 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007157 </td>
7158
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007159 <td class="entry_tags">
7160 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007161 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007162 </ul>
7163 </td>
7164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007165 </tr>
7166 <tr class="entries_header">
7167 <th class="th_details" colspan="5">Details</th>
7168 </tr>
7169 <tr class="entry_cont">
7170 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007171 <p>OIS is used to compensate for motion blur due to small movements of
7172the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7173use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7174allows for longer exposure times before camera shake becomes
7175apparent.<wbr/></p>
7176<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007177 </td>
7178 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007179
7180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007183
7184
7185
7186 <!-- end of kind -->
7187 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007188 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007189
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007190 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007191 <tr>
7192 <th class="th_name">Property Name</th>
7193 <th class="th_type">Type</th>
7194 <th class="th_description">Description</th>
7195 <th class="th_units">Units</th>
7196 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007197 <th class="th_tags">Tags</th>
7198 </tr>
7199 </thead>
7200
7201 <tbody>
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007215 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007216 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007217 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007218 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007219 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007220 <span class="entry_type_container">x</span>
7221
7222 <span class="entry_type_array">
7223 n
7224 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007225 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007226
7227
7228 </td> <!-- entry_type -->
7229
7230 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007231 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007232values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007233 </td>
7234
7235 <td class="entry_units">
7236 </td>
7237
7238 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007239 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007240 </td>
7241
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007242 <td class="entry_tags">
7243 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007244 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007245 </ul>
7246 </td>
7247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007248 </tr>
7249 <tr class="entries_header">
7250 <th class="th_details" colspan="5">Details</th>
7251 </tr>
7252 <tr class="entry_cont">
7253 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007254 <p>If the camera device doesn't support variable apertures,<wbr/>
7255listed value will be the fixed aperture.<wbr/></p>
7256<p>If the camera device supports variable apertures,<wbr/> the aperture value
7257in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007258 </td>
7259 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007260
7261
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007262 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7263 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007264
7265
7266 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007267 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007268 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007269 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007270 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007271 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007272 <span class="entry_type_container">x</span>
7273
7274 <span class="entry_type_array">
7275 n
7276 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007277 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007278
7279
7280 </td> <!-- entry_type -->
7281
7282 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007283 <p>List of supported neutral density filter values for
7284<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007285 </td>
7286
7287 <td class="entry_units">
7288 </td>
7289
7290 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007291 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007292 </td>
7293
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007294 <td class="entry_tags">
7295 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007296 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007297 </ul>
7298 </td>
7299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007300 </tr>
7301 <tr class="entries_header">
7302 <th class="th_details" colspan="5">Details</th>
7303 </tr>
7304 <tr class="entry_cont">
7305 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007306 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7307availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7308list contains only the exact filter density values available on
7309this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007310 </td>
7311 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007312
7313
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007314 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7315 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007316
7317
7318 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007319 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007320 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007321 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007322 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007323 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007324 <span class="entry_type_container">x</span>
7325
7326 <span class="entry_type_array">
7327 n
7328 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007329 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007330 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007331
7332
7333 </td> <!-- entry_type -->
7334
7335 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007336 <p>The available focal lengths for this device for use with
7337<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007338 </td>
7339
7340 <td class="entry_units">
7341 </td>
7342
7343 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007344 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7345contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007346 </td>
7347
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007348 <td class="entry_tags">
7349 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007350 <li><a href="#tag_BC">BC</a></li>
7351 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007352 </ul>
7353 </td>
7354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007355 </tr>
7356 <tr class="entries_header">
7357 <th class="th_details" colspan="5">Details</th>
7358 </tr>
7359 <tr class="entry_cont">
7360 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007361 <p>If optical zoom is not supported,<wbr/> this will only report
7362a single value corresponding to the static focal length of the
7363device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7364by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007365 </td>
7366 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007367
7368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007369 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7370 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007371
7372
7373 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007374 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007375 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007376 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007377 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007378 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007379 <span class="entry_type_container">x</span>
7380
7381 <span class="entry_type_array">
7382 n
7383 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007384 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007385 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386
7387
7388 </td> <!-- entry_type -->
7389
7390 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007391 <p>List containing a subset of the optical image
7392stabilization (OIS) modes specified in
7393<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007394 </td>
7395
7396 <td class="entry_units">
7397 </td>
7398
7399 <td class="entry_range">
7400 </td>
7401
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007402 <td class="entry_tags">
7403 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007404 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007405 </ul>
7406 </td>
7407
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007408 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007409 <tr class="entries_header">
7410 <th class="th_details" colspan="5">Details</th>
7411 </tr>
7412 <tr class="entry_cont">
7413 <td class="entry_details" colspan="5">
7414 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7415contain only OFF.<wbr/></p>
7416 </td>
7417 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007418
7419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007420 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7421 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007422
7423
7424 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007425 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007426 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007427 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007428 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007429 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007430 <span class="entry_type_container">x</span>
7431
7432 <span class="entry_type_array">
7433 2 x 3 x n x m
7434 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007435 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007436 <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr/> per color channel.<wbr/> Size in the range of 2x3x40x30</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007437
7438
7439 </td> <!-- entry_type -->
7440
7441 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007442 <p>A low-resolution map for correction of
7443geometric distortions and chromatic aberrations,<wbr/> per
7444color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007445 </td>
7446
7447 <td class="entry_units">
7448 </td>
7449
7450 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007451 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007452 </td>
7453
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007454 <td class="entry_tags">
7455 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007456 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 </ul>
7458 </td>
7459
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007460 </tr>
7461 <tr class="entries_header">
7462 <th class="th_details" colspan="5">Details</th>
7463 </tr>
7464 <tr class="entry_cont">
7465 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007466 <p>[DNG wants a function instead].<wbr/> What's easiest
7467for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7468j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7469j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7470entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007471 </td>
7472 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007473
7474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7476 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007477
7478
7479 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007480 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007481 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007482 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007483 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007484 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007485 <span class="entry_type_container">x</span>
7486
7487 <span class="entry_type_array">
7488 2
7489 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007490 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007491 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007492
7493
7494 </td> <!-- entry_type -->
7495
7496 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007497 <p>Dimensions of geometric correction
7498map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007499 </td>
7500
7501 <td class="entry_units">
7502 </td>
7503
7504 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007505 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007506 </td>
7507
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007508 <td class="entry_tags">
7509 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007510 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007511 </ul>
7512 </td>
7513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007514 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007515
7516
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007517 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7518 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007519
7520
7521 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007522 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007523 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007524 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007525 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007526 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007527
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007528 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007529
7530
7531 </td> <!-- entry_type -->
7532
7533 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007534 <p>Hyperfocal distance for this lens; set to
75350 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007536 </td>
7537
7538 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007539 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007540 </td>
7541
7542 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007543 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007544 </td>
7545
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007546 <td class="entry_tags">
7547 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007548 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007549 </ul>
7550 </td>
7551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007552 </tr>
7553 <tr class="entries_header">
7554 <th class="th_details" colspan="5">Details</th>
7555 </tr>
7556 <tr class="entry_cont">
7557 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007558 <p>The hyperfocal distance is used for the old
7559API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007560 </td>
7561 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007562
7563
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007564 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7565 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007566
7567
7568 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007569 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007570 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007571 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007572 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007573 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007574
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007575 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007576
7577
7578 </td> <!-- entry_type -->
7579
7580 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007581 <p>Shortest distance from frontmost surface
7582of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007583 </td>
7584
7585 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007586 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007587 </td>
7588
7589 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007590 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007591 </td>
7592
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007593 <td class="entry_tags">
7594 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007595 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007596 </ul>
7597 </td>
7598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007599 </tr>
7600 <tr class="entries_header">
7601 <th class="th_details" colspan="5">Details</th>
7602 </tr>
7603 <tr class="entry_cont">
7604 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007605 <p>If the lens is fixed-focus,<wbr/> this should be
76060</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007607 </td>
7608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007609
7610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007613
7614
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007615 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007616 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007617 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007620 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007621 <span class="entry_type_container">x</span>
7622
7623 <span class="entry_type_array">
7624 2
7625 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007626 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007627 <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007628
7629
7630 </td> <!-- entry_type -->
7631
7632 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007633 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007634 </td>
7635
7636 <td class="entry_units">
7637 </td>
7638
7639 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007640 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007641 </td>
7642
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007643 <td class="entry_tags">
7644 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007645 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007646 </ul>
7647 </td>
7648
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007649 </tr>
7650 <tr class="entries_header">
7651 <th class="th_details" colspan="5">Details</th>
7652 </tr>
7653 <tr class="entry_cont">
7654 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007655 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7656must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007657 </td>
7658 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007659
7660
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007661 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7662 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007663
7664
7665
7666
7667
7668 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007669 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007670 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007671 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007672 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007673 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007674
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007675 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007676
7677 <ul class="entry_type_enum">
7678 <li>
7679 <span class="entry_type_enum_name">FRONT</span>
7680 </li>
7681 <li>
7682 <span class="entry_type_enum_name">BACK</span>
7683 </li>
7684 </ul>
7685
7686 </td> <!-- entry_type -->
7687
7688 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007689 <p>Direction the camera faces relative to
7690device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007691 </td>
7692
7693 <td class="entry_units">
7694 </td>
7695
7696 <td class="entry_range">
7697 </td>
7698
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007699 <td class="entry_tags">
7700 </td>
7701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007702 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007703
7704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007705 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7706 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007707
7708
7709 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007710 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007711 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007712 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007713 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007714 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007715 <span class="entry_type_container">x</span>
7716
7717 <span class="entry_type_array">
7718 2
7719 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007720 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007721 <div class="entry_type_notes">degrees.<wbr/> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr/> The second then defines the clockwise rotation of the optical axis from native device up.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007722
7723
7724 </td> <!-- entry_type -->
7725
7726 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007727 <p>Relative angle of camera optical axis to the
7728perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007729 </td>
7730
7731 <td class="entry_units">
7732 </td>
7733
7734 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007735 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007736 </td>
7737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007738 <td class="entry_tags">
7739 <ul class="entry_tags">
7740 <li><a href="#tag_ADV">ADV</a></li>
7741 </ul>
7742 </td>
7743
7744 </tr>
7745 <tr class="entries_header">
7746 <th class="th_details" colspan="5">Details</th>
7747 </tr>
7748 <tr class="entry_cont">
7749 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007750 <p>Examples:</p>
7751<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007752is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007753<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007754device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007755<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7756the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007757<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007758direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007759 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007760 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007761
7762
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007763 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7764 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007765
7766
7767 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007768 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007769 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007770 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007771 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007772 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007773 <span class="entry_type_container">x</span>
7774
7775 <span class="entry_type_array">
7776 3, location in mm, in the sensor coordinate
7777 system
7778 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007779 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007780
7781
7782 </td> <!-- entry_type -->
7783
7784 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007785 <p>Coordinates of camera optical axis on
7786device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007787 </td>
7788
7789 <td class="entry_units">
7790 </td>
7791
7792 <td class="entry_range">
7793 </td>
7794
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007795 <td class="entry_tags">
7796 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007797 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007798 </ul>
7799 </td>
7800
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007802
7803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007806
7807
7808
7809 <!-- end of kind -->
7810 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007811 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007812
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007813 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007814 <tr>
7815 <th class="th_name">Property Name</th>
7816 <th class="th_type">Type</th>
7817 <th class="th_description">Description</th>
7818 <th class="th_units">Units</th>
7819 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007820 <th class="th_tags">Tags</th>
7821 </tr>
7822 </thead>
7823
7824 <tbody>
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007836 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007837 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007840 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007842 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007843
7844
7845 </td> <!-- entry_type -->
7846
7847 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007848 <p>The ratio of lens focal length to the effective
7849aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007850 </td>
7851
7852 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007853 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007854 </td>
7855
7856 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007857 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007858 </td>
7859
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007860 <td class="entry_tags">
7861 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007862 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007863 </ul>
7864 </td>
7865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007866 </tr>
7867 <tr class="entries_header">
7868 <th class="th_details" colspan="5">Details</th>
7869 </tr>
7870 <tr class="entry_cont">
7871 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007872 <p>This will only be supported on the camera devices that
7873have variable aperture lens.<wbr/> The aperture value can only be
7874one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7875<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7876this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7877<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7878to achieve manual exposure control.<wbr/></p>
7879<p>The requested aperture value may take several frames to reach the
7880requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007881aperture size in capture result metadata while the aperture is changing.<wbr/>
7882While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -08007883<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7884the ON modes,<wbr/> this will be overridden by the camera device
7885auto-exposure algorithm,<wbr/> the overridden values are then provided
7886back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007887 </td>
7888 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007889
7890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007891 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7892 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007893
7894
7895 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007896 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007897 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007898 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007899 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007900 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007901
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007902 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007903
7904
7905 </td> <!-- entry_type -->
7906
7907 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007908 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007909 </td>
7910
7911 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007912 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913 </td>
7914
7915 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007916 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007917 </td>
7918
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007919 <td class="entry_tags">
7920 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007921 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007922 </ul>
7923 </td>
7924
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007925 </tr>
7926 <tr class="entries_header">
7927 <th class="th_details" colspan="5">Details</th>
7928 </tr>
7929 <tr class="entry_cont">
7930 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007931 <p>This will not be supported on most camera devices.<wbr/> On devices
7932where this is supported,<wbr/> this may only be set to one of the
7933values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7934<p>Lens filters are typically used to lower the amount of light the
7935sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7936step is the standard logarithmic representation,<wbr/> which are
7937non-negative,<wbr/> and inversely proportional to the amount of light
7938hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7939in no reduction of the incoming light,<wbr/> and setting this to 2 would
7940mean that the filter is set to reduce incoming light by two stops
7941(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007942<p>It may take several frames before the lens filter density changes
7943to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7944<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007945 </td>
7946 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007947
7948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007949 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7950 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007951
7952
7953 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007954 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007955 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007956 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007957 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007958 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007960 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007961
7962
7963 </td> <!-- entry_type -->
7964
7965 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007966 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007967 </td>
7968
7969 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007970 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007971 </td>
7972
7973 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007974 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007975 </td>
7976
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007977 <td class="entry_tags">
7978 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007979 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007980 </ul>
7981 </td>
7982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007983 </tr>
7984 <tr class="entries_header">
7985 <th class="th_details" colspan="5">Details</th>
7986 </tr>
7987 <tr class="entry_cont">
7988 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007989 <p>This setting controls the physical focal length of the camera
7990device's lens.<wbr/> Changing the focal length changes the field of
7991view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7992<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7993setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007994frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007995While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7996be set to MOVING.<wbr/></p>
7997<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007998 </td>
7999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008000
8001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008004
8005
8006 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008007 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008008 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008009 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008010 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008011 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008012
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008013 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008014
8015
8016 </td> <!-- entry_type -->
8017
8018 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008019 <p>Distance to plane of sharpest focus,<wbr/>
8020measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008021 </td>
8022
8023 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008024 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008025 </td>
8026
8027 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008028 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008029 </td>
8030
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008031 <td class="entry_tags">
8032 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008033 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008034 </ul>
8035 </td>
8036
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008037 </tr>
8038 <tr class="entries_header">
8039 <th class="th_details" colspan="5">Details</th>
8040 </tr>
8041 <tr class="entry_cont">
8042 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008043 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008044 </td>
8045 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008046
8047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008048 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8049 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008050
8051
8052 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008053 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008054 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008055 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008056 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008057 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008058 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008059
Zhijun He50451ad2013-09-26 10:27:47 -07008060 <span class="entry_type_array">
8061 2
8062 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008063 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008064 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008065
8066
8067 </td> <!-- entry_type -->
8068
8069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008070 <p>The range of scene distances that are in
8071sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </td>
8073
8074 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008075 pair of focus distances in diopters: (near,<wbr/>
8076 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008077 </td>
8078
8079 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008080 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008081 </td>
8082
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008083 <td class="entry_tags">
8084 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008085 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008086 </ul>
8087 </td>
8088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008089 </tr>
8090 <tr class="entries_header">
8091 <th class="th_details" colspan="5">Details</th>
8092 </tr>
8093 <tr class="entry_cont">
8094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008095 <p>If variable focus not supported,<wbr/> can still report
8096fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008097 </td>
8098 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008099
8100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008101 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8102 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008103
8104
8105 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008106 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008107 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008108 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008109 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008110 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008111
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008112 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008113
8114 <ul class="entry_type_enum">
8115 <li>
8116 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008117 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008118 </li>
8119 <li>
8120 <span class="entry_type_enum_name">ON</span>
8121 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008122 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008123 </li>
8124 </ul>
8125
8126 </td> <!-- entry_type -->
8127
8128 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008129 <p>Sets whether the camera device uses optical image stabilization (OIS)
8130when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008131 </td>
8132
8133 <td class="entry_units">
8134 </td>
8135
8136 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008137 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008138 </td>
8139
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008140 <td class="entry_tags">
8141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008142 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008143 </ul>
8144 </td>
8145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008146 </tr>
8147 <tr class="entries_header">
8148 <th class="th_details" colspan="5">Details</th>
8149 </tr>
8150 <tr class="entry_cont">
8151 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008152 <p>OIS is used to compensate for motion blur due to small movements of
8153the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8154use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8155allows for longer exposure times before camera shake becomes
8156apparent.<wbr/></p>
8157<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008158 </td>
8159 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008160
8161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008162 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8163 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008164
8165
8166 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008167 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008168 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008169 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008170 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008171 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008172
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008173 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008174
8175 <ul class="entry_type_enum">
8176 <li>
8177 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008178 <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8179android.<wbr/>lens.<wbr/>filter<wbr/>Density and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008180 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008181 <li>
8182 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008183 <span class="entry_type_enum_notes"><p>Any of the lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8184android.<wbr/>lens.<wbr/>filter<wbr/>Density or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is changing.<wbr/></p></span>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008185 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008186 </ul>
8187
8188 </td> <!-- entry_type -->
8189
8190 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008191 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008192 </td>
8193
8194 <td class="entry_units">
8195 </td>
8196
8197 <td class="entry_range">
8198 </td>
8199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008200 <td class="entry_tags">
8201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008202 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008203 </ul>
8204 </td>
8205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008206 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008207 <tr class="entries_header">
8208 <th class="th_details" colspan="5">Details</th>
8209 </tr>
8210 <tr class="entry_cont">
8211 <td class="entry_details" colspan="5">
8212 <p>For lens parameters <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
8213<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> when changes are requested,<wbr/>
8214they may take several frames to reach the requested values.<wbr/> This state indicates
8215the current status of the lens parameters.<wbr/></p>
8216<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8217either because the parameters are all fixed,<wbr/> or because the lens has had enough
8218time to reach the most recently-requested values.<wbr/>
8219If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8220<ul>
8221<li>Fixed focus (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> == 0</code>),<wbr/> which means
8222<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8223<li>Fixed focal length (<a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a> contains single value),<wbr/>
8224which means the optical zoom is not supported.<wbr/></li>
8225<li>No ND filter (<a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a> contains only 0).<wbr/></li>
8226<li>Fixed aperture (<a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a> contains single value).<wbr/></li>
8227</ul>
8228<p>Then this state will always be STATIONARY.<wbr/></p>
8229<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8230is changing.<wbr/></p>
8231 </td>
8232 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008233
8234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008235 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8236 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008237
8238
8239
8240 <!-- end of kind -->
8241 </tbody>
8242
8243 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008244 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008245
8246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008247 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008249 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008250 <tr>
8251 <th class="th_name">Property Name</th>
8252 <th class="th_type">Type</th>
8253 <th class="th_description">Description</th>
8254 <th class="th_units">Units</th>
8255 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008256 <th class="th_tags">Tags</th>
8257 </tr>
8258 </thead>
8259
8260 <tbody>
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008273 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008276 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008278 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008279
8280 <ul class="entry_type_enum">
8281 <li>
8282 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008283 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008284 </li>
8285 <li>
8286 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008287 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8288output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008289 </li>
8290 <li>
8291 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008292 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8293quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008294 </li>
8295 </ul>
8296
8297 </td> <!-- entry_type -->
8298
8299 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008300 <p>Mode of operation for the noise reduction
8301algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008302 </td>
8303
8304 <td class="entry_units">
8305 </td>
8306
8307 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008308 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008309 </td>
8310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008311 <td class="entry_tags">
8312 <ul class="entry_tags">
8313 <li><a href="#tag_V1">V1</a></li>
8314 </ul>
8315 </td>
8316
8317 </tr>
8318 <tr class="entries_header">
8319 <th class="th_details" colspan="5">Details</th>
8320 </tr>
8321 <tr class="entry_cont">
8322 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008323 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8324will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008325<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8326will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8327will use the highest-quality noise filtering algorithms,<wbr/>
8328even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008329slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008330 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008331 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008332
8333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8335 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008336
8337
8338 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008339 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008340 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008341 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008342 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008343 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008345 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008346
8347
8348 </td> <!-- entry_type -->
8349
8350 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008351 <p>Control the amount of noise reduction
8352applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008353 </td>
8354
8355 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008356 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008357 </td>
8358
8359 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008360 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008361 </td>
8362
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008363 <td class="entry_tags">
8364 </td>
8365
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008366 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008367
8368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008369 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8370 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008371
8372
8373
8374 <!-- end of kind -->
8375 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008376 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008377
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008378 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008379 <tr>
8380 <th class="th_name">Property Name</th>
8381 <th class="th_type">Type</th>
8382 <th class="th_description">Description</th>
8383 <th class="th_units">Units</th>
8384 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008385 <th class="th_tags">Tags</th>
8386 </tr>
8387 </thead>
8388
8389 <tbody>
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008401 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008402 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008403 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008405 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008406
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008407 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008408
8409 <ul class="entry_type_enum">
8410 <li>
8411 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008412 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008413 </li>
8414 <li>
8415 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008416 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8417output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008418 </li>
8419 <li>
8420 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008421 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8422quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008423 </li>
8424 </ul>
8425
8426 </td> <!-- entry_type -->
8427
8428 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008429 <p>Mode of operation for the noise reduction
8430algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008431 </td>
8432
8433 <td class="entry_units">
8434 </td>
8435
8436 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008437 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008438 </td>
8439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008440 <td class="entry_tags">
8441 <ul class="entry_tags">
8442 <li><a href="#tag_V1">V1</a></li>
8443 </ul>
8444 </td>
8445
8446 </tr>
8447 <tr class="entries_header">
8448 <th class="th_details" colspan="5">Details</th>
8449 </tr>
8450 <tr class="entry_cont">
8451 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008452 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8453will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008454<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8455will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8456will use the highest-quality noise filtering algorithms,<wbr/>
8457even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008458slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008459 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008460 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008461
8462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008463 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8464 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008465
8466
8467
8468 <!-- end of kind -->
8469 </tbody>
8470
8471 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008472 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008473
8474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008475 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008477 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008478 <tr>
8479 <th class="th_name">Property Name</th>
8480 <th class="th_type">Type</th>
8481 <th class="th_description">Description</th>
8482 <th class="th_units">Units</th>
8483 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008484 <th class="th_tags">Tags</th>
8485 </tr>
8486 </thead>
8487
8488 <tbody>
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008500 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008501 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008502 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008503 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008504 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008505
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008506 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008507
8508
8509 </td> <!-- entry_type -->
8510
8511 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008512 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008513scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008514region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8515and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008516 </td>
8517
8518 <td class="entry_units">
8519 </td>
8520
8521 <td class="entry_range">
8522 </td>
8523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008524 <td class="entry_tags">
8525 </td>
8526
8527 </tr>
8528 <tr class="entries_header">
8529 <th class="th_details" colspan="5">Details</th>
8530 </tr>
8531 <tr class="entry_cont">
8532 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008533 <p>Normalized coordinates refer to those in the
8534(-1000,<wbr/>1000) range mentioned in the
8535android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008536<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008537sensor array-relative coordinates for all region data.<wbr/> Does
8538not need to be listed in static metadata.<wbr/> Support will be
8539removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008540 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008541 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008542
8543
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008544 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8545 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008546
8547
8548 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008549 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008550 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008551 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008552 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008553 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008554
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008555 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008556
8557
8558 </td> <!-- entry_type -->
8559
8560 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008561 <p>If set to 1,<wbr/> then the camera service always
8562switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8563trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008564 </td>
8565
8566 <td class="entry_units">
8567 </td>
8568
8569 <td class="entry_range">
8570 </td>
8571
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008572 <td class="entry_tags">
8573 </td>
8574
8575 </tr>
8576 <tr class="entries_header">
8577 <th class="th_details" colspan="5">Details</th>
8578 </tr>
8579 <tr class="entry_cont">
8580 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008581 <p>HAL implementations should implement AF trigger
8582modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8583CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8584not need to be listed in static metadata.<wbr/> Support will be
8585removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008586 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008587 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008588
8589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008590 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8591 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008592
8593
8594 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008595 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008596 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008597 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008598 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008599 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008600
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008601 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008602
8603
8604 </td> <!-- entry_type -->
8605
8606 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008607 <p>If set to 1,<wbr/> the camera service uses
8608CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8609HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8610shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008611 </td>
8612
8613 <td class="entry_units">
8614 </td>
8615
8616 <td class="entry_range">
8617 </td>
8618
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008619 <td class="entry_tags">
8620 </td>
8621
8622 </tr>
8623 <tr class="entries_header">
8624 <th class="th_details" colspan="5">Details</th>
8625 </tr>
8626 <tr class="entry_cont">
8627 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008628 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008629to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008630zero-shutter-lag,<wbr/> instead of relying on an explicit
8631format setting.<wbr/> Does not need to be listed in static
8632metadata.<wbr/> Support will be removed in future versions of
8633camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008634 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008635 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008636
8637
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008638 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8639 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008640
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008641
8642 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008643 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008644 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008645 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008646 <td class="entry_type">
8647 <span class="entry_type_name">byte</span>
8648
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008649 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008650
8651
8652 </td> <!-- entry_type -->
8653
8654 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008655 <p>If set to 1,<wbr/> the HAL will always split result
8656metadata for a single capture into multiple buffers,<wbr/>
8657returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008658 </td>
8659
8660 <td class="entry_units">
8661 </td>
8662
8663 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008664 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008665 </td>
8666
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008667 <td class="entry_tags">
8668 </td>
8669
8670 </tr>
8671 <tr class="entries_header">
8672 <th class="th_details" colspan="5">Details</th>
8673 </tr>
8674 <tr class="entry_cont">
8675 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008676 <p>Does not need to be listed in static
8677metadata.<wbr/> Support for partial results will be reworked in
8678future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008679working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008680consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008681 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008682 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008683
Igor Murashkin7761a222014-01-27 16:06:38 -08008684 <tr class="entries_header">
8685 <th class="th_details" colspan="5">HAL Implementation Details</th>
8686 </tr>
8687 <tr class="entry_cont">
8688 <td class="entry_details" colspan="5">
8689 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8690for information on how to implement partial results.<wbr/></p>
8691 </td>
8692 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8695 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008696
8697
8698
8699 <!-- end of kind -->
8700 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008701 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008702
8703 <thead class="entries_header">
8704 <tr>
8705 <th class="th_name">Property Name</th>
8706 <th class="th_type">Type</th>
8707 <th class="th_description">Description</th>
8708 <th class="th_units">Units</th>
8709 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008710 <th class="th_tags">Tags</th>
8711 </tr>
8712 </thead>
8713
8714 <tbody>
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008726 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008727 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008728 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008729 <td class="entry_type">
8730 <span class="entry_type_name entry_type_name_enum">byte</span>
8731
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008732 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008733
8734 <ul class="entry_type_enum">
8735 <li>
8736 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008737 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8738for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008739 </li>
8740 <li>
8741 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008742 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8743capture.<wbr/> More result buffers for this capture will be sent
8744by the HAL,<wbr/> the last of which will be marked
8745FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008746 </li>
8747 </ul>
8748
8749 </td> <!-- entry_type -->
8750
8751 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008752 <p>Whether a result given to the framework is the
8753final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008754subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008755values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008756 </td>
8757
8758 <td class="entry_units">
8759 </td>
8760
8761 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008762 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008763 </td>
8764
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008765 <td class="entry_tags">
8766 </td>
8767
8768 </tr>
8769 <tr class="entries_header">
8770 <th class="th_details" colspan="5">Details</th>
8771 </tr>
8772 <tr class="entry_cont">
8773 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008774 <p>The entries in the result metadata buffers for a
8775single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008776FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008777requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8778always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8779before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8780in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8781capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8782only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008783 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008784 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008785
Igor Murashkin7761a222014-01-27 16:06:38 -08008786 <tr class="entries_header">
8787 <th class="th_details" colspan="5">HAL Implementation Details</th>
8788 </tr>
8789 <tr class="entry_cont">
8790 <td class="entry_details" colspan="5">
8791 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8792for information on how to implement partial results.<wbr/></p>
8793 </td>
8794 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008795
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008796 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8797 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008798
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008799
8800
8801 <!-- end of kind -->
8802 </tbody>
8803
8804 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008805 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008806
8807
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008808 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008809
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008810 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008811 <tr>
8812 <th class="th_name">Property Name</th>
8813 <th class="th_type">Type</th>
8814 <th class="th_description">Description</th>
8815 <th class="th_units">Units</th>
8816 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008817 <th class="th_tags">Tags</th>
8818 </tr>
8819 </thead>
8820
8821 <tbody>
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008833 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008834 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008835 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008836 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008837 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008838
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008839 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008840
8841
8842 </td> <!-- entry_type -->
8843
8844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008845 <p>A frame counter set by the framework.<wbr/> Must
8846be maintained unchanged in output frame.<wbr/> This value monotonically
8847increases with every new result (that is,<wbr/> each new result has a unique
8848frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008849 </td>
8850
8851 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008852 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008853 </td>
8854
8855 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008856 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008857 </td>
8858
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008859 <td class="entry_tags">
8860 </td>
8861
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008862 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008863
8864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008865 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8866 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008867
8868
8869 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008870 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008871 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008872 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008873 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008874 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008875
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008876 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008877
8878
8879 </td> <!-- entry_type -->
8880
8881 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008882 <p>An application-specified ID for the current
8883request.<wbr/> Must be maintained unchanged in output
8884frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008885 </td>
8886
8887 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008888 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008889 </td>
8890
8891 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008892 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008893 </td>
8894
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008895 <td class="entry_tags">
8896 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008897 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008898 </ul>
8899 </td>
8900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008901 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008902
8903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008904 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8905 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008906
8907
8908 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008909 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008910 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008911 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008912 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008913 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008914 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008915
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008916 <span class="entry_type_array">
8917 n
8918 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008919 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008920
8921
8922 </td> <!-- entry_type -->
8923
8924 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008925 <p>List which camera reprocess stream is used
8926for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008927 </td>
8928
8929 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008930 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008931 </td>
8932
8933 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008934 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8935reprocess stream ID.<wbr/></p>
8936<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8937reprocess streams may be included in a single request; they
8938must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008939 </td>
8940
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008941 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008942 <ul class="entry_tags">
8943 <li><a href="#tag_HAL2">HAL2</a></li>
8944 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008945 </td>
8946
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008947 </tr>
8948 <tr class="entries_header">
8949 <th class="th_details" colspan="5">Details</th>
8950 </tr>
8951 <tr class="entry_cont">
8952 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008953 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008954REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008955 </td>
8956 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008957
8958
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008959 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8960 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008961
8962
8963 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008964 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008965 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008966 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008967 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008968 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008969
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008970 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008971
8972 <ul class="entry_type_enum">
8973 <li>
8974 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008975 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8976for application-bound buffer data.<wbr/> If no
8977application-bound streams exist,<wbr/> no frame should be
8978placed in the output frame queue.<wbr/> If such streams
8979exist,<wbr/> a frame should be placed on the output queue
8980with null metadata but with the necessary output buffer
8981information.<wbr/> Timestamp information should still be
8982included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008983 </li>
8984 <li>
8985 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008986 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8987only be produced if they are separately
8988enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008989 </li>
8990 </ul>
8991
8992 </td> <!-- entry_type -->
8993
8994 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008995 <p>How much metadata to produce on
8996output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008997 </td>
8998
8999 <td class="entry_units">
9000 </td>
9001
9002 <td class="entry_range">
9003 </td>
9004
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009005 <td class="entry_tags">
9006 </td>
9007
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009008 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009009
9010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009011 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9012 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009013
9014
9015 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009016 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009017 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009018 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009019 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009020 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009021 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009022
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009023 <span class="entry_type_array">
9024 n
9025 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009026 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009027
9028
9029 </td> <!-- entry_type -->
9030
9031 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009032 <p>Lists which camera output streams image data
9033from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009034 </td>
9035
9036 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009037 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009038 </td>
9039
9040 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009041 <p>List must only include streams that have been
9042created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009043 </td>
9044
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009045 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009046 <ul class="entry_tags">
9047 <li><a href="#tag_HAL2">HAL2</a></li>
9048 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009049 </td>
9050
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009051 </tr>
9052 <tr class="entries_header">
9053 <th class="th_details" colspan="5">Details</th>
9054 </tr>
9055 <tr class="entry_cont">
9056 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009057 <p>If no output streams are listed,<wbr/> then the image
9058data should simply be discarded.<wbr/> The image data must
9059still be captured for metadata and statistics production,<wbr/>
9060and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009061 </td>
9062 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009063
9064
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009065 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9066 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009067
9068
9069 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009070 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009071 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009072 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009073 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009074 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009075
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009076 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077
9078 <ul class="entry_type_enum">
9079 <li>
9080 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009081 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9082and process it according to the
9083settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009084 </li>
9085 <li>
9086 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009087 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9088android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9089source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9090needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009091 </li>
9092 </ul>
9093
9094 </td> <!-- entry_type -->
9095
9096 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009097 <p>The type of the request; either CAPTURE or
9098REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009099 </td>
9100
9101 <td class="entry_units">
9102 </td>
9103
9104 <td class="entry_range">
9105 </td>
9106
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009107 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009108 <ul class="entry_tags">
9109 <li><a href="#tag_HAL2">HAL2</a></li>
9110 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009111 </td>
9112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009114
9115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9117 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009118
9119
9120
9121 <!-- end of kind -->
9122 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009123 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009125 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009126 <tr>
9127 <th class="th_name">Property Name</th>
9128 <th class="th_type">Type</th>
9129 <th class="th_description">Description</th>
9130 <th class="th_units">Units</th>
9131 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009132 <th class="th_tags">Tags</th>
9133 </tr>
9134 </thead>
9135
9136 <tbody>
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009149 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009152 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009153 <span class="entry_type_container">x</span>
9154
9155 <span class="entry_type_array">
9156 3
9157 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009158 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009159
9160
9161 </td> <!-- entry_type -->
9162
9163 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009164 <p>How many output streams can be allocated at
9165the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009166 </td>
9167
9168 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009169 The number of raw sensor streams; the number of
9170 processed,<wbr/> uncompressed streams; and the number of
9171 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009172 </td>
9173
9174 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009175 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009176for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009177 </td>
9178
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009179 <td class="entry_tags">
9180 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009181 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009182 </ul>
9183 </td>
9184
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009185 </tr>
9186 <tr class="entries_header">
9187 <th class="th_details" colspan="5">Details</th>
9188 </tr>
9189 <tr class="entry_cont">
9190 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009191 <p>Video snapshot with preview callbacks requires 3
9192processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9193one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009194 </td>
9195 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009196
9197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009198 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9199 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009200
9201
9202 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009203 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009204 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009205 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009206 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009207 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009208 <span class="entry_type_container">x</span>
9209
9210 <span class="entry_type_array">
9211 1
9212 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009213 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009214
9215
9216 </td> <!-- entry_type -->
9217
9218 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009219 <p>How many reprocessing streams of any type
9220can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009221 </td>
9222
9223 <td class="entry_units">
9224 </td>
9225
9226 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009227 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009228 </td>
9229
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009230 <td class="entry_tags">
9231 </td>
9232
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009233 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009234
9235
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009236 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9237 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009238
Igor Murashkina46e02f2014-01-09 17:43:38 -08009239
9240 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9241 <td class="entry_name" rowspan="5">
9242 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9243 </td>
9244 <td class="entry_type">
9245 <span class="entry_type_name">byte</span>
9246
9247 <span class="entry_type_visibility"> [public]</span>
9248
9249
9250 </td> <!-- entry_type -->
9251
9252 <td class="entry_description">
9253 <p>Specifies the number of maximum pipeline stages a frame
9254has to go through from when it's exposed to when it's available
9255to the framework.<wbr/></p>
9256 </td>
9257
9258 <td class="entry_units">
9259 </td>
9260
9261 <td class="entry_range">
9262 </td>
9263
9264 <td class="entry_tags">
9265 </td>
9266
9267 </tr>
9268 <tr class="entries_header">
9269 <th class="th_details" colspan="5">Details</th>
9270 </tr>
9271 <tr class="entry_cont">
9272 <td class="entry_details" colspan="5">
9273 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9274one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9275its own stages to do custom HW processing.<wbr/> Further stages may be
9276added by SW processing.<wbr/></p>
9277<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9278processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9279depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9280the max pipeline depth.<wbr/></p>
9281<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9282X frame intervals.<wbr/></p>
9283<p>This value will be 8 or less.<wbr/></p>
9284 </td>
9285 </tr>
9286
9287 <tr class="entries_header">
9288 <th class="th_details" colspan="5">HAL Implementation Details</th>
9289 </tr>
9290 <tr class="entry_cont">
9291 <td class="entry_details" colspan="5">
9292 <p>This value should be 4 or less.<wbr/></p>
9293 </td>
9294 </tr>
9295
9296 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9297 <!-- end of entry -->
9298
Igor Murashkin2e291102014-01-10 14:18:30 -08009299
9300 <tr class="entry" id="static_android.request.partialResultCount">
9301 <td class="entry_name" rowspan="3">
9302 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9303 </td>
9304 <td class="entry_type">
9305 <span class="entry_type_name">int32</span>
9306
9307 <span class="entry_type_visibility"> [public]</span>
9308
9309
9310 </td> <!-- entry_type -->
9311
9312 <td class="entry_description">
9313 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9314a result will be composed of.<wbr/></p>
9315 </td>
9316
9317 <td class="entry_units">
9318 </td>
9319
9320 <td class="entry_range">
9321 <p>&gt;= 1</p>
9322 </td>
9323
9324 <td class="entry_tags">
9325 </td>
9326
9327 </tr>
9328 <tr class="entries_header">
9329 <th class="th_details" colspan="5">Details</th>
9330 </tr>
9331 <tr class="entry_cont">
9332 <td class="entry_details" colspan="5">
9333 <p>In order to combat the pipeline latency,<wbr/> partial results
9334may be delivered to the application layer from the camera device as
9335soon as they are available.<wbr/></p>
9336<p>A value of 1 means that partial results are not supported.<wbr/></p>
9337<p>A typical use case for this might be: after requesting an AF lock the
9338new AF state might be available 50% of the way through the pipeline.<wbr/>
9339The camera device could then immediately dispatch this state via a
9340partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9341the metadata via later partial results.<wbr/></p>
9342 </td>
9343 </tr>
9344
9345
9346 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9347 <!-- end of entry -->
9348
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009349
9350
9351 <!-- end of kind -->
9352 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009353 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009354
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009355 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009356 <tr>
9357 <th class="th_name">Property Name</th>
9358 <th class="th_type">Type</th>
9359 <th class="th_description">Description</th>
9360 <th class="th_units">Units</th>
9361 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009362 <th class="th_tags">Tags</th>
9363 </tr>
9364 </thead>
9365
9366 <tbody>
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009378 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009379 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009380 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009381 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009382 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009383
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009384 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009385
9386
9387 </td> <!-- entry_type -->
9388
9389 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009390 <p>A frame counter set by the framework.<wbr/> This value monotonically
9391increases with every new result (that is,<wbr/> each new result has a unique
9392frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009393 </td>
9394
9395 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009396 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009397 </td>
9398
9399 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009400 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009401 </td>
9402
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009403 <td class="entry_tags">
9404 </td>
9405
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009406 </tr>
9407 <tr class="entries_header">
9408 <th class="th_details" colspan="5">Details</th>
9409 </tr>
9410 <tr class="entry_cont">
9411 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009412 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009413 </td>
9414 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009415
9416
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009417 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9418 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009419
9420
9421 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009422 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009423 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009424 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009425 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009426 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009427
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009428 <span class="entry_type_visibility"> [hidden]</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>An application-specified ID for the current
9435request.<wbr/> Must be maintained unchanged in output
9436frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009437 </td>
9438
9439 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009440 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009441 </td>
9442
9443 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009444 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009445 </td>
9446
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009447 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009448 <ul class="entry_tags">
9449 <li><a href="#tag_V1">V1</a></li>
9450 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009451 </td>
9452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009453 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009454
9455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009456 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9457 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009458
9459
9460 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009461 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009462 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009463 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009464 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009465 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009466
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009467 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009468
9469 <ul class="entry_type_enum">
9470 <li>
9471 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009472 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9473for application-bound buffer data.<wbr/> If no
9474application-bound streams exist,<wbr/> no frame should be
9475placed in the output frame queue.<wbr/> If such streams
9476exist,<wbr/> a frame should be placed on the output queue
9477with null metadata but with the necessary output buffer
9478information.<wbr/> Timestamp information should still be
9479included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009480 </li>
9481 <li>
9482 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009483 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9484only be produced if they are separately
9485enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009486 </li>
9487 </ul>
9488
9489 </td> <!-- entry_type -->
9490
9491 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009492 <p>How much metadata to produce on
9493output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009494 </td>
9495
9496 <td class="entry_units">
9497 </td>
9498
9499 <td class="entry_range">
9500 </td>
9501
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009502 <td class="entry_tags">
9503 </td>
9504
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009505 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009506
9507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009508 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9509 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009510
9511
9512 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009513 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009514 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009515 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009516 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009517 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009518 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009519
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009520 <span class="entry_type_array">
9521 n
9522 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009523 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009524
9525
9526 </td> <!-- entry_type -->
9527
9528 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009529 <p>Lists which camera output streams image data
9530from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009531 </td>
9532
9533 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009534 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009535 </td>
9536
9537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009538 <p>List must only include streams that have been
9539created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009540 </td>
9541
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009542 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009543 <ul class="entry_tags">
9544 <li><a href="#tag_HAL2">HAL2</a></li>
9545 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009546 </td>
9547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009548 </tr>
9549 <tr class="entries_header">
9550 <th class="th_details" colspan="5">Details</th>
9551 </tr>
9552 <tr class="entry_cont">
9553 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009554 <p>If no output streams are listed,<wbr/> then the image
9555data should simply be discarded.<wbr/> The image data must
9556still be captured for metadata and statistics production,<wbr/>
9557and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009558 </td>
9559 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009560
9561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009562 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9563 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564
Igor Murashkina46e02f2014-01-09 17:43:38 -08009565
9566 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9567 <td class="entry_name" rowspan="5">
9568 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9569 </td>
9570 <td class="entry_type">
9571 <span class="entry_type_name">byte</span>
9572
9573 <span class="entry_type_visibility"> [public]</span>
9574
9575
9576 </td> <!-- entry_type -->
9577
9578 <td class="entry_description">
9579 <p>Specifies the number of pipeline stages the frame went
9580through from when it was exposed to when the final completed result
9581was available to the framework.<wbr/></p>
9582 </td>
9583
9584 <td class="entry_units">
9585 </td>
9586
9587 <td class="entry_range">
9588 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9589 </td>
9590
9591 <td class="entry_tags">
9592 </td>
9593
9594 </tr>
9595 <tr class="entries_header">
9596 <th class="th_details" colspan="5">Details</th>
9597 </tr>
9598 <tr class="entry_cont">
9599 <td class="entry_details" colspan="5">
9600 <p>Depending on what settings are used in the request,<wbr/> and
9601what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9602and some pipeline stages skipped.<wbr/></p>
9603<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9604 </td>
9605 </tr>
9606
9607 <tr class="entries_header">
9608 <th class="th_details" colspan="5">HAL Implementation Details</th>
9609 </tr>
9610 <tr class="entry_cont">
9611 <td class="entry_details" colspan="5">
9612 <p>This value must always represent the accurate count of how many
9613pipeline stages were actually used.<wbr/></p>
9614 </td>
9615 </tr>
9616
9617 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9618 <!-- end of entry -->
9619
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009620
9621
9622 <!-- end of kind -->
9623 </tbody>
9624
9625 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009626 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009627
9628
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009629 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009630
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009631 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009632 <tr>
9633 <th class="th_name">Property Name</th>
9634 <th class="th_type">Type</th>
9635 <th class="th_description">Description</th>
9636 <th class="th_units">Units</th>
9637 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009638 <th class="th_tags">Tags</th>
9639 </tr>
9640 </thead>
9641
9642 <tbody>
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009654 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009655 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009658 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009659 <span class="entry_type_container">x</span>
9660
9661 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009662 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009663 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009664 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009665
9666
9667 </td> <!-- entry_type -->
9668
9669 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009670 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9671<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9672(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9673output.<wbr/> Each stream must use this rectangle to produce its
9674output,<wbr/> cropping to a smaller region if necessary to
9675maintain the stream's aspect ratio.<wbr/></p>
9676<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009677 </td>
9678
9679 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009680 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9681 in pixels; (0,<wbr/>0) is top-left corner of
9682 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009683 </td>
9684
9685 <td class="entry_range">
9686 </td>
9687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009688 <td class="entry_tags">
9689 <ul class="entry_tags">
9690 <li><a href="#tag_BC">BC</a></li>
9691 </ul>
9692 </td>
9693
9694 </tr>
9695 <tr class="entries_header">
9696 <th class="th_details" colspan="5">Details</th>
9697 </tr>
9698 <tr class="entry_cont">
9699 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009700 <p>Any additional per-stream cropping must be done to
9701maximize the final pixel area of the stream.<wbr/></p>
9702<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9703ratio,<wbr/> then 4:3 streams should use the exact crop
9704region.<wbr/> 16:9 streams should further crop vertically
9705(letterbox).<wbr/></p>
9706<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9707outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9708streams should match exactly.<wbr/> These additional crops must
9709be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009710<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009711times,<wbr/> no matter what the relative aspect ratios of the
9712crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009713corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009714larger than active pixel array.<wbr/> Width and height may be
9715rounded to nearest larger supportable width,<wbr/> especially
9716for raw output,<wbr/> where only a few fixed scales may be
9717possible.<wbr/> The width and height of the crop region cannot
9718be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9719android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9720activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9721respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009722 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009723 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009724
9725
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009726 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9727 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009728
9729
9730
9731 <!-- end of kind -->
9732 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009733 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009734
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009735 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009736 <tr>
9737 <th class="th_name">Property Name</th>
9738 <th class="th_type">Type</th>
9739 <th class="th_description">Description</th>
9740 <th class="th_units">Units</th>
9741 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009742 <th class="th_tags">Tags</th>
9743 </tr>
9744 </thead>
9745
9746 <tbody>
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009758 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009759 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009760 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009761 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009762 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009763 <span class="entry_type_container">x</span>
9764
9765 <span class="entry_type_array">
9766 n
9767 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009768 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009769
9770 <ul class="entry_type_enum">
9771 <li>
9772 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009773 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009774 <span class="entry_type_enum_value">0x20</span>
9775 </li>
9776 <li>
9777 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009778 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009779 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009780 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009781 </li>
9782 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009783 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009784 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009785 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009786 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009787 </li>
9788 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009789 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9790 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009791 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009792 </li>
9793 <li>
9794 <span class="entry_type_enum_name">YCbCr_420_888</span>
9795 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009796 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009797 </li>
9798 <li>
9799 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009800 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009801 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009802 </li>
9803 </ul>
9804
9805 </td> <!-- entry_type -->
9806
9807 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009808 <p>The list of image formats that are supported by this
9809camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009810 </td>
9811
9812 <td class="entry_units">
9813 </td>
9814
9815 <td class="entry_range">
9816 </td>
9817
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009818 <td class="entry_tags">
9819 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009820 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009821 </ul>
9822 </td>
9823
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009824 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009825 <tr class="entries_header">
9826 <th class="th_details" colspan="5">Details</th>
9827 </tr>
9828 <tr class="entry_cont">
9829 <td class="entry_details" colspan="5">
9830 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9831<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9832 </td>
9833 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009834
Zhijun Heb8317e22014-01-16 09:47:07 -08009835 <tr class="entries_header">
9836 <th class="th_details" colspan="5">HAL Implementation Details</th>
9837 </tr>
9838 <tr class="entry_cont">
9839 <td class="entry_details" colspan="5">
9840 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9841system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9842<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9843gralloc module will select a format based on the usage flags provided
9844by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9845usually used by preview and recording streams,<wbr/> where the application doesn't
9846need access the image data.<wbr/></p>
9847<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9848needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9849<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9850 </td>
9851 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009853 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9854 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009855
9856
9857 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009858 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009859 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009860 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009861 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009862 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009863 <span class="entry_type_container">x</span>
9864
9865 <span class="entry_type_array">
9866 n
9867 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009868 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009869
9870
9871 </td> <!-- entry_type -->
9872
9873 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009874 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009875for 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 -08009876 </td>
9877
9878 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009879 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009880 </td>
9881
9882 <td class="entry_range">
9883 </td>
9884
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009885 <td class="entry_tags">
9886 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009887 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009888 </ul>
9889 </td>
9890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009891 </tr>
9892 <tr class="entries_header">
9893 <th class="th_details" colspan="5">Details</th>
9894 </tr>
9895 <tr class="entry_cont">
9896 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009897 <p>This corresponds to the minimum steady-state frame duration when only
9898that JPEG stream is active and captured in a burst,<wbr/> with all
9899processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9900<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009901frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009902durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009903 </td>
9904 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009905
9906
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009907 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9908 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009909
9910
9911 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009912 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009913 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009914 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009915 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009916 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009917 <span class="entry_type_container">x</span>
9918
9919 <span class="entry_type_array">
9920 n x 2
9921 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009922 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009923
9924
9925 </td> <!-- entry_type -->
9926
9927 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009928 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009929 </td>
9930
9931 <td class="entry_units">
9932 </td>
9933
9934 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009935 </td>
9936
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009937 <td class="entry_tags">
9938 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009939 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009940 </ul>
9941 </td>
9942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009943 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009944 <tr class="entries_header">
9945 <th class="th_details" colspan="5">Details</th>
9946 </tr>
9947 <tr class="entry_cont">
9948 <td class="entry_details" colspan="5">
9949 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9950sensor 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>
9951 </td>
9952 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009953
Zhijun Heb8317e22014-01-16 09:47:07 -08009954 <tr class="entries_header">
9955 <th class="th_details" colspan="5">HAL Implementation Details</th>
9956 </tr>
9957 <tr class="entry_cont">
9958 <td class="entry_details" colspan="5">
9959 <p>The HAL must include sensor maximum resolution
9960(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9961and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9962 </td>
9963 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009965 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9966 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009967
9968
9969 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009970 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009971 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009972 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009973 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009974 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009975
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009976 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009977
9978
9979 </td> <!-- entry_type -->
9980
9981 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009982 <p>The maximum ratio between active area width
9983and crop region width,<wbr/> or between active area height and
9984crop region height,<wbr/> if the crop region height is larger
9985than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009986 </td>
9987
9988 <td class="entry_units">
9989 </td>
9990
9991 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009992 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009993 </td>
9994
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009995 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009996 <ul class="entry_tags">
9997 <li><a href="#tag_BC">BC</a></li>
9998 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009999 </td>
10000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010001 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010002
10003
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010004 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10005 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010006
10007
10008 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010009 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010010 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010011 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010012 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010013 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010014 <span class="entry_type_container">x</span>
10015
10016 <span class="entry_type_array">
10017 n
10018 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010019 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010020
10021
10022 </td> <!-- entry_type -->
10023
10024 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010025 <p>For each available processed output size (defined in
10026<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10027minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010028 </td>
10029
10030 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010031 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010032 </td>
10033
10034 <td class="entry_range">
10035 </td>
10036
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010037 <td class="entry_tags">
10038 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010039 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010040 </ul>
10041 </td>
10042
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010043 </tr>
10044 <tr class="entries_header">
10045 <th class="th_details" colspan="5">Details</th>
10046 </tr>
10047 <tr class="entry_cont">
10048 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010049 <p>This should correspond to the frame duration when only that processed
10050stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10051set to FAST.<wbr/></p>
10052<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10053be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010054 </td>
10055 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010056
10057
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010058 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10059 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010060
10061
10062 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010063 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010064 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010065 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010066 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010067 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010068 <span class="entry_type_container">x</span>
10069
10070 <span class="entry_type_array">
10071 n x 2
10072 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010073 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010074
10075
10076 </td> <!-- entry_type -->
10077
10078 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010079 <p>The resolutions available for use with
10080processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10081platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010082encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010083 </td>
10084
10085 <td class="entry_units">
10086 </td>
10087
10088 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010089 </td>
10090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010091 <td class="entry_tags">
10092 <ul class="entry_tags">
10093 <li><a href="#tag_BC">BC</a></li>
10094 </ul>
10095 </td>
10096
10097 </tr>
10098 <tr class="entries_header">
10099 <th class="th_details" colspan="5">Details</th>
10100 </tr>
10101 <tr class="entry_cont">
10102 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010103 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10104<p>For a given use case,<wbr/> the actual maximum supported resolution
10105may be lower than what is listed here,<wbr/> depending on the destination
10106Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10107the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10108smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10109can provide.<wbr/></p>
10110<p>Please reference the documentation for the image data destination to
10111check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010112 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010114
Zhijun Heb8317e22014-01-16 09:47:07 -080010115 <tr class="entries_header">
10116 <th class="th_details" colspan="5">HAL Implementation Details</th>
10117 </tr>
10118 <tr class="entry_cont">
10119 <td class="entry_details" colspan="5">
10120 <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/>
10121the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10122and each below resolution if it is smaller than or equal to the sensor
10123maximum resolution (if they are not listed in JPEG sizes already):</p>
10124<ul>
10125<li>240p (320 x 240)</li>
10126<li>480p (640 x 480)</li>
10127<li>720p (1280 x 720)</li>
10128<li>1080p (1920 x 1080)</li>
10129</ul>
10130<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/>
10131the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10132 </td>
10133 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010134
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010135 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10136 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010137
10138
10139 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010140 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010141 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010142 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010143 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010144 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010145 <span class="entry_type_container">x</span>
10146
10147 <span class="entry_type_array">
10148 n
10149 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010150 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010151
10152
10153 </td> <!-- entry_type -->
10154
10155 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010156 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010157<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10158supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010159 </td>
10160
10161 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010162 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010163 </td>
10164
10165 <td class="entry_range">
10166 </td>
10167
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010168 <td class="entry_tags">
10169 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010170 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010171 </ul>
10172 </td>
10173
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010174 </tr>
10175 <tr class="entries_header">
10176 <th class="th_details" colspan="5">Details</th>
10177 </tr>
10178 <tr class="entry_cont">
10179 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010180 <p>Should correspond to the frame duration when only the raw stream is
10181active.<wbr/></p>
10182<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010183frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010184durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010185 </td>
10186 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010187
10188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010189 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10190 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010191
10192
10193 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010194 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010195 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010196 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010197 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010198 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010199 <span class="entry_type_container">x</span>
10200
10201 <span class="entry_type_array">
10202 n x 2
10203 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010204 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010205
10206
10207 </td> <!-- entry_type -->
10208
10209 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010210 <p>The resolutions available for use with raw
10211sensor output streams,<wbr/> listed as width,<wbr/>
10212height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010213 </td>
10214
10215 <td class="entry_units">
10216 </td>
10217
10218 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010219 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010220 </td>
10221
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010222 <td class="entry_tags">
10223 </td>
10224
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010226
10227
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010228 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10229 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010230
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010231
10232
10233 <!-- end of kind -->
10234 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010235 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010236
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010237 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010238 <tr>
10239 <th class="th_name">Property Name</th>
10240 <th class="th_type">Type</th>
10241 <th class="th_description">Description</th>
10242 <th class="th_units">Units</th>
10243 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010244 <th class="th_tags">Tags</th>
10245 </tr>
10246 </thead>
10247
10248 <tbody>
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010260 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010261 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010262 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010263 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010264 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010265 <span class="entry_type_container">x</span>
10266
10267 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010268 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010269 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010270 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010271
10272
10273 </td> <!-- entry_type -->
10274
10275 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010276 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10277<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10278(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10279output.<wbr/> Each stream must use this rectangle to produce its
10280output,<wbr/> cropping to a smaller region if necessary to
10281maintain the stream's aspect ratio.<wbr/></p>
10282<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010283 </td>
10284
10285 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010286 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10287 in pixels; (0,<wbr/>0) is top-left corner of
10288 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010289 </td>
10290
10291 <td class="entry_range">
10292 </td>
10293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010294 <td class="entry_tags">
10295 <ul class="entry_tags">
10296 <li><a href="#tag_BC">BC</a></li>
10297 </ul>
10298 </td>
10299
10300 </tr>
10301 <tr class="entries_header">
10302 <th class="th_details" colspan="5">Details</th>
10303 </tr>
10304 <tr class="entry_cont">
10305 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010306 <p>Any additional per-stream cropping must be done to
10307maximize the final pixel area of the stream.<wbr/></p>
10308<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10309ratio,<wbr/> then 4:3 streams should use the exact crop
10310region.<wbr/> 16:9 streams should further crop vertically
10311(letterbox).<wbr/></p>
10312<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10313outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10314streams should match exactly.<wbr/> These additional crops must
10315be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010316<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010317times,<wbr/> no matter what the relative aspect ratios of the
10318crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010319corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010320larger than active pixel array.<wbr/> Width and height may be
10321rounded to nearest larger supportable width,<wbr/> especially
10322for raw output,<wbr/> where only a few fixed scales may be
10323possible.<wbr/> The width and height of the crop region cannot
10324be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10325android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10326activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10327respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010328 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010329 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010330
10331
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010332 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10333 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010334
10335
10336
10337 <!-- end of kind -->
10338 </tbody>
10339
10340 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010341 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010342
10343
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010344 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010345
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010346 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010347 <tr>
10348 <th class="th_name">Property Name</th>
10349 <th class="th_type">Type</th>
10350 <th class="th_description">Description</th>
10351 <th class="th_units">Units</th>
10352 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010353 <th class="th_tags">Tags</th>
10354 </tr>
10355 </thead>
10356
10357 <tbody>
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010369 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010370 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010371 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010372 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010373 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010374
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010375 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010376
10377
10378 </td> <!-- entry_type -->
10379
10380 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010381 <p>Duration each pixel is exposed to
10382light.<wbr/></p>
10383<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10384duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010385 </td>
10386
10387 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010388 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010389 </td>
10390
10391 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010392 <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 -080010393 </td>
10394
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010395 <td class="entry_tags">
10396 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010397 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010398 </ul>
10399 </td>
10400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010401 </tr>
10402 <tr class="entries_header">
10403 <th class="th_details" colspan="5">Details</th>
10404 </tr>
10405 <tr class="entry_cont">
10406 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010407 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010408 </td>
10409 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010410
10411
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010412 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10413 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010414
10415
10416 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010417 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010418 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010419 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010420 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010421 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010422
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010423 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010424
10425
10426 </td> <!-- entry_type -->
10427
10428 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010429 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010430start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010431 </td>
10432
10433 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010434 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010435 </td>
10436
10437 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010438 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10439android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10440is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010441 </td>
10442
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010443 <td class="entry_tags">
10444 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010445 <li><a href="#tag_V1">V1</a></li>
10446 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010447 </ul>
10448 </td>
10449
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010450 </tr>
10451 <tr class="entries_header">
10452 <th class="th_details" colspan="5">Details</th>
10453 </tr>
10454 <tr class="entry_cont">
10455 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010456 <p>The maximum frame rate that can be supported by a camera subsystem is
10457a function of many factors:</p>
10458<ul>
10459<li>Requested resolutions of output image streams</li>
10460<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10461<li>The bandwidth of the imager interface</li>
10462<li>The bandwidth of the various ISP processing blocks</li>
10463</ul>
10464<p>Since these factors can vary greatly between different ISPs and
10465sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10466restrictions with as simple a model as possible.<wbr/></p>
10467<p>The model presented has the following characteristics:</p>
10468<ul>
10469<li>The image sensor is always configured to output the smallest
10470resolution possible given the application's requested output stream
10471sizes.<wbr/> The smallest resolution is defined as being at least as large
10472as the largest requested output stream size; the camera pipeline must
10473never digitally upsample sensor data when the crop region covers the
10474whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10475resolutions are configured,<wbr/> the sensor can provide a higher frame
10476rate.<wbr/></li>
10477<li>Since any request may use any or all the currently configured
10478output streams,<wbr/> the sensor and ISP must be configured to support
10479scaling a single capture to all the streams at the same time.<wbr/> This
10480means the camera pipeline must be ready to produce the largest
10481requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10482frame rate of a given configured stream set is governed only by the
10483largest requested stream resolution.<wbr/></li>
10484<li>Using more than one output stream in a request does not affect the
10485frame duration.<wbr/></li>
10486<li>JPEG streams act like processed YUV streams in requests for which
10487they are not included; in requests in which they are directly
10488referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10489JPEG stream requires the underlying YUV data to always be ready for
10490use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10491frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10492<li>The JPEG processor can run concurrently to the rest of the camera
10493pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10494</ul>
10495<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10496is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10497These are used to determine the maximum frame rate /<wbr/> minimum frame
10498duration that is possible for a given stream configuration.<wbr/></p>
10499<p>Specifically,<wbr/> the application can use the following rules to
10500determine the minimum frame duration it can request from the HAL
10501device:</p>
10502<ol>
10503<li>Given the application's currently configured set of output
10504streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10505<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10506<code>SP</code>.<wbr/></li>
10507<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10508count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10509<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10510<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
10511no exact match for <code>RP == RJ</code> (in particular there isn't an available
10512processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10513to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10514there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10515the processed resolution closest to <code>RJ</code>.<wbr/></li>
10516<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
10517no exact match for <code>RR == RP</code> (in particular there isn't an available
10518raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10519or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10520there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10521the raw resolution closest to <code>RP</code>.<wbr/></li>
10522<li>Look up the matching minimum frame durations in the property lists
10523<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10524<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10525<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10526minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10527<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10528supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10529<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10530supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10531<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10532the application,<wbr/> then the HAL will have to delay JPEG-using requests
10533whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10534This will happen whenever a JPEG-using request starts capture less
10535than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10536supported frame duration will vary between the values calculated in
10537#6 and #7.<wbr/></li>
10538</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010539 </td>
10540 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010541
10542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010543 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10544 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010545
10546
10547 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010548 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010549 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010550 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010551 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010552 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010553
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010554 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010555
10556
10557 </td> <!-- entry_type -->
10558
10559 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010560 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010561implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010562below 'maximum analog sensitivity'.<wbr/></p>
10563<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10564gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010565 </td>
10566
10567 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010568 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010569 </td>
10570
10571 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010572 <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 -080010573 </td>
10574
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010575 <td class="entry_tags">
10576 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010577 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010578 </ul>
10579 </td>
10580
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010581 </tr>
10582 <tr class="entries_header">
10583 <th class="th_details" colspan="5">Details</th>
10584 </tr>
10585 <tr class="entry_cont">
10586 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010587 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010588 </td>
10589 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010590
10591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010592 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10593 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010594
Igor Murashkina46e02f2014-01-09 17:43:38 -080010595
10596 <tr class="entry" id="controls_android.sensor.testPatternData">
10597 <td class="entry_name" rowspan="5">
10598 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10599 </td>
10600 <td class="entry_type">
10601 <span class="entry_type_name">int32</span>
10602 <span class="entry_type_container">x</span>
10603
10604 <span class="entry_type_array">
10605 4
10606 </span>
10607 <span class="entry_type_visibility"> [public]</span>
10608
10609
10610 </td> <!-- entry_type -->
10611
10612 <td class="entry_description">
10613 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10614when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10615 </td>
10616
10617 <td class="entry_units">
10618 </td>
10619
10620 <td class="entry_range">
10621 <p>Optional.<wbr/>
10622Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10623SOLID_<wbr/>COLOR.<wbr/></p>
10624 </td>
10625
10626 <td class="entry_tags">
10627 </td>
10628
10629 </tr>
10630 <tr class="entries_header">
10631 <th class="th_details" colspan="5">Details</th>
10632 </tr>
10633 <tr class="entry_cont">
10634 <td class="entry_details" colspan="5">
10635 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10636The camera device then uses the most significant X bits
10637that correspond to how many bits are in its Bayer raw sensor
10638output.<wbr/></p>
10639<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1064010 most significant bits from each color channel.<wbr/></p>
10641 </td>
10642 </tr>
10643
10644 <tr class="entries_header">
10645 <th class="th_details" colspan="5">HAL Implementation Details</th>
10646 </tr>
10647 <tr class="entry_cont">
10648 <td class="entry_details" colspan="5">
10649
10650 </td>
10651 </tr>
10652
10653 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10654 <!-- end of entry -->
10655
10656
10657 <tr class="entry" id="controls_android.sensor.testPatternMode">
10658 <td class="entry_name" rowspan="5">
10659 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10660 </td>
10661 <td class="entry_type">
10662 <span class="entry_type_name entry_type_name_enum">int32</span>
10663
10664 <span class="entry_type_visibility"> [public]</span>
10665
10666 <ul class="entry_type_enum">
10667 <li>
10668 <span class="entry_type_enum_name">OFF</span>
10669 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10670device returns captures from the image sensor.<wbr/></p></span>
10671 </li>
10672 <li>
10673 <span class="entry_type_enum_name">SOLID_COLOR</span>
10674 <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
10675respective color channel provided in
10676<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10677<p>For example:</p>
10678<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10679</code></pre>
10680<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10681<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10682</code></pre>
10683<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10684are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10685 </li>
10686 <li>
10687 <span class="entry_type_enum_name">COLOR_BARS</span>
10688 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10689<p>The vertical bars (left-to-right) are as follows:</p>
10690<ul>
10691<li>100% white</li>
10692<li>yellow</li>
10693<li>cyan</li>
10694<li>green</li>
10695<li>magenta</li>
10696<li>red</li>
10697<li>blue</li>
10698<li>black</li>
10699</ul>
10700<p>In general the image would look like the following:</p>
10701<pre><code>W Y C G M R B K
10702W Y C G M R B K
10703W Y C G M R B K
10704W Y C G M R B K
10705W Y C G M R B K
10706.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10707.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10708.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10709
10710(B = Blue,<wbr/> K = Black)
10711</code></pre>
10712<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10713When this is not possible,<wbr/> the bar size should be rounded
10714down to the nearest integer and the pattern can repeat
10715on the right side.<wbr/></p>
10716<p>Each bar's height must always take up the full sensor
10717pixel array height.<wbr/></p>
10718<p>Each pixel in this test pattern must be set to either
107190% intensity or 100% intensity.<wbr/></p></span>
10720 </li>
10721 <li>
10722 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10723 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10724each bar should start at its specified color at the top,<wbr/>
10725and fade to gray at the bottom.<wbr/></p>
10726<p>Furthermore each bar is further subdivided into a left and
10727right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10728and the right half should have a quantized gradient.<wbr/></p>
10729<p>In particular,<wbr/> the right half's should consist of blocks of the
10730same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10731<p>The least significant bits in the quantized gradient should
10732be copied from the most significant bits of the smooth gradient.<wbr/></p>
10733<p>The height of each bar should always be a multiple of 128.<wbr/>
10734When this is not the case,<wbr/> the pattern should repeat at the bottom
10735of the image.<wbr/></p></span>
10736 </li>
10737 <li>
10738 <span class="entry_type_enum_name">PN9</span>
10739 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10740generated from a PN9 512-bit sequence (typically implemented
10741in hardware with a linear feedback shift register).<wbr/></p>
10742<p>The generator should be reset at the beginning of each frame,<wbr/>
10743and thus each subsequent raw frame with this test pattern should
10744be exactly the same as the last.<wbr/></p></span>
10745 </li>
10746 <li>
10747 <span class="entry_type_enum_name">CUSTOM1</span>
10748 <span class="entry_type_enum_value">256</span>
10749 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10750available only on this camera device are at least this numeric
10751value.<wbr/></p>
10752<p>All of the custom test patterns will be static
10753(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10754 </li>
10755 </ul>
10756
10757 </td> <!-- entry_type -->
10758
10759 <td class="entry_description">
10760 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10761doing a real exposure from the camera.<wbr/></p>
10762 </td>
10763
10764 <td class="entry_units">
10765 </td>
10766
10767 <td class="entry_range">
10768 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10769<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10770 </td>
10771
10772 <td class="entry_tags">
10773 </td>
10774
10775 </tr>
10776 <tr class="entries_header">
10777 <th class="th_details" colspan="5">Details</th>
10778 </tr>
10779 <tr class="entry_cont">
10780 <td class="entry_details" colspan="5">
10781 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10782by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10783work as normal.<wbr/></p>
10784<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10785occur (and that the test pattern remain unmodified,<wbr/> since the flash
10786would not actually affect it).<wbr/></p>
10787 </td>
10788 </tr>
10789
10790 <tr class="entries_header">
10791 <th class="th_details" colspan="5">HAL Implementation Details</th>
10792 </tr>
10793 <tr class="entry_cont">
10794 <td class="entry_details" colspan="5">
10795 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10796<p>The HAL may choose to substitute test patterns from the sensor
10797with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10798indistinguishable to the ISP whether the data came from the
10799sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10800 </td>
10801 </tr>
10802
10803 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10804 <!-- end of entry -->
10805
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010806
10807
10808 <!-- end of kind -->
10809 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010810 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010813 <tr>
10814 <th class="th_name">Property Name</th>
10815 <th class="th_type">Type</th>
10816 <th class="th_description">Description</th>
10817 <th class="th_units">Units</th>
10818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010819 <th class="th_tags">Tags</th>
10820 </tr>
10821 </thead>
10822
10823 <tbody>
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010837 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010838 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
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">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010842 <span class="entry_type_container">x</span>
10843
10844 <span class="entry_type_array">
10845 4
10846 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010847 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010848 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010849
10850
10851 </td> <!-- entry_type -->
10852
10853 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010854 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010855active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010856 </td>
10857
10858 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010859 </td>
10860
10861 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010862 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10863&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10864<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 -080010865 </td>
10866
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010867 <td class="entry_tags">
10868 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010869 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010870 </ul>
10871 </td>
10872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010873 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010874 <tr class="entries_header">
10875 <th class="th_details" colspan="5">Details</th>
10876 </tr>
10877 <tr class="entry_cont">
10878 <td class="entry_details" colspan="5">
10879 <p>It is smaller or equal to
10880sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10881 </td>
10882 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010883
10884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010885 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10886 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010887
10888
Zhijun He69fc0ea2013-07-17 09:42:58 -070010889 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010890 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010891 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010892 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010893 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010894 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010895 <span class="entry_type_container">x</span>
10896
10897 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010898 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010899 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010900 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010901 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010902
10903
10904 </td> <!-- entry_type -->
10905
10906 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010907 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010908 </td>
10909
10910 <td class="entry_units">
10911 </td>
10912
10913 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010914 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010915 </td>
10916
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010917 <td class="entry_tags">
10918 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010919 <li><a href="#tag_BC">BC</a></li>
10920 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010921 </ul>
10922 </td>
10923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010925
10926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010927 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10928 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010929
10930
10931 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010932 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010933 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010934 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010935 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010936 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010937
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010938 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010939
10940 <ul class="entry_type_enum">
10941 <li>
10942 <span class="entry_type_enum_name">RGGB</span>
10943 </li>
10944 <li>
10945 <span class="entry_type_enum_name">GRBG</span>
10946 </li>
10947 <li>
10948 <span class="entry_type_enum_name">GBRG</span>
10949 </li>
10950 <li>
10951 <span class="entry_type_enum_name">BGGR</span>
10952 </li>
10953 <li>
10954 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010955 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10956values for each pixel,<wbr/> instead of just 1 16-bit value
10957per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010958 </li>
10959 </ul>
10960
10961 </td> <!-- entry_type -->
10962
10963 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010964 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010965represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010966the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010967 </td>
10968
10969 <td class="entry_units">
10970 </td>
10971
10972 <td class="entry_range">
10973 </td>
10974
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010975 <td class="entry_tags">
10976 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010977 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010978 </ul>
10979 </td>
10980
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010981 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010982
10983
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010984 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10985 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010986
10987
10988 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080010989 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010990 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010991 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010992 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010993 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010994 <span class="entry_type_container">x</span>
10995
10996 <span class="entry_type_array">
10997 2
10998 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010999 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011000 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011001
11002
11003 </td> <!-- entry_type -->
11004
11005 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011006 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011007times used by <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011008 </td>
11009
11010 <td class="entry_units">
11011 </td>
11012
11013 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011014 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011015sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011016 </td>
11017
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011018 <td class="entry_tags">
11019 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011020 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011021 </ul>
11022 </td>
11023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011024 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011025
Igor Murashkin061c6002014-01-27 16:00:26 -080011026 <tr class="entries_header">
11027 <th class="th_details" colspan="5">HAL Implementation Details</th>
11028 </tr>
11029 <tr class="entry_cont">
11030 <td class="entry_details" colspan="5">
11031 <p>The maximum of the range must be at least
110321 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11033 </td>
11034 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011035
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011036 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11037 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011038
11039
11040 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011041 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011042 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011043 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011044 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011045 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011046
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011047 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011048
11049
11050 </td> <!-- entry_type -->
11051
11052 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011053 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011054rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011055 </td>
11056
11057 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011058 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059 </td>
11060
11061 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011062 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011063 </td>
11064
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011065 <td class="entry_tags">
11066 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011067 <li><a href="#tag_BC">BC</a></li>
11068 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011069 </ul>
11070 </td>
11071
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011072 </tr>
11073 <tr class="entries_header">
11074 <th class="th_details" colspan="5">Details</th>
11075 </tr>
11076 <tr class="entry_cont">
11077 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011078 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11079that will be accepted by the camera device.<wbr/> Attempting to use
11080frame durations beyond the maximum will result in the frame duration
11081being clipped to the maximum.<wbr/> See that control
11082for a full definition of frame durations.<wbr/></p>
11083<p>Refer to
11084<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11085<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11086<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11087frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011088 </td>
11089 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011090
Igor Murashkin061c6002014-01-27 16:00:26 -080011091 <tr class="entries_header">
11092 <th class="th_details" colspan="5">HAL Implementation Details</th>
11093 </tr>
11094 <tr class="entry_cont">
11095 <td class="entry_details" colspan="5">
11096 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11097seconds (30e9 ns).<wbr/></p>
11098<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11099android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11100overrides frame duration).<wbr/></p>
11101 </td>
11102 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011104 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11105 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011106
11107
11108 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011109 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011110 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011111 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011112 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011113 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011114 <span class="entry_type_container">x</span>
11115
11116 <span class="entry_type_array">
11117 2
11118 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011119 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011120 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011121
11122
11123 </td> <!-- entry_type -->
11124
11125 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011126 <p>The physical dimensions of the full pixel
11127array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011128 </td>
11129
11130 <td class="entry_units">
11131 </td>
11132
11133 <td class="entry_range">
11134 </td>
11135
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011136 <td class="entry_tags">
11137 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011138 <li><a href="#tag_V1">V1</a></li>
11139 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011140 </ul>
11141 </td>
11142
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011143 </tr>
11144 <tr class="entries_header">
11145 <th class="th_details" colspan="5">Details</th>
11146 </tr>
11147 <tr class="entry_cont">
11148 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011149 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011150 </td>
11151 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011152
11153
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011154 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11155 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011156
11157
11158 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011159 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011160 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011161 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011162 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011163 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011164 <span class="entry_type_container">x</span>
11165
11166 <span class="entry_type_array">
11167 2
11168 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011169 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011170
11171
11172 </td> <!-- entry_type -->
11173
11174 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011175 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011176including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011177 </td>
11178
11179 <td class="entry_units">
11180 </td>
11181
11182 <td class="entry_range">
11183 </td>
11184
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011185 <td class="entry_tags">
11186 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011187 <li><a href="#tag_DNG">DNG</a></li>
11188 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011189 </ul>
11190 </td>
11191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011192 </tr>
11193 <tr class="entries_header">
11194 <th class="th_details" colspan="5">Details</th>
11195 </tr>
11196 <tr class="entry_cont">
11197 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011198 <p>The maximum output resolution for raw format in
11199<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 -080011200 </td>
11201 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011202
11203
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011204 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11205 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011206
11207
11208 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011209 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011210 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011211 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011212 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011213 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011214
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011215 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011216
11217
11218 </td> <!-- entry_type -->
11219
11220 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011221 <p>Maximum raw value output by
11222sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011223 </td>
11224
11225 <td class="entry_units">
11226 </td>
11227
11228 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011229 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011230 </td>
11231
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011232 <td class="entry_tags">
11233 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011234 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011235 </ul>
11236 </td>
11237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011238 </tr>
11239 <tr class="entries_header">
11240 <th class="th_details" colspan="5">Details</th>
11241 </tr>
11242 <tr class="entry_cont">
11243 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011244 <p>Defines sensor bit depth (10-14 bits is
11245expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011246 </td>
11247 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011248
11249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011250 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11251 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011252
11253
11254
11255
11256
11257 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011258 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011259 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011260 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011261 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011262 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011263
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011264 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011265
11266
11267 </td> <!-- entry_type -->
11268
11269 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011270 <p>Gain factor from electrons to raw units when
11271ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011272 </td>
11273
11274 <td class="entry_units">
11275 </td>
11276
11277 <td class="entry_range">
11278 </td>
11279
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011280 <td class="entry_tags">
11281 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011282 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011283 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011284 </ul>
11285 </td>
11286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011287 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011288
11289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011290 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11291 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011292
11293
11294 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011295 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011296 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011297 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011298 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011299 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011300 <span class="entry_type_container">x</span>
11301
11302 <span class="entry_type_array">
11303 4
11304 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011305 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011306 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011307
11308
11309 </td> <!-- entry_type -->
11310
11311 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011312 <p>A fixed black level offset for each of the
11313Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011314 </td>
11315
11316 <td class="entry_units">
11317 </td>
11318
11319 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011320 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011321 </td>
11322
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011323 <td class="entry_tags">
11324 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011325 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011326 </ul>
11327 </td>
11328
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011329 </tr>
11330 <tr class="entries_header">
11331 <th class="th_details" colspan="5">Details</th>
11332 </tr>
11333 <tr class="entry_cont">
11334 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011335 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11336tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011337 </td>
11338 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011339
11340
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011341 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11342 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011343
11344
11345 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011346 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011347 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011348 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011349 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011350 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011351 <span class="entry_type_container">x</span>
11352
11353 <span class="entry_type_array">
11354 9
11355 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011356 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011357 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011358
11359
11360 </td> <!-- entry_type -->
11361
11362 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011363 <p>Per-device calibration on top of color space
11364transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011365 </td>
11366
11367 <td class="entry_units">
11368 </td>
11369
11370 <td class="entry_range">
11371 </td>
11372
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011373 <td class="entry_tags">
11374 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011375 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011376 </ul>
11377 </td>
11378
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011379 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011380
11381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011382 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11383 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011384
11385
11386 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011387 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011388 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011389 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011390 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011391 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011392 <span class="entry_type_container">x</span>
11393
11394 <span class="entry_type_array">
11395 9
11396 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011397 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011398 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011399
11400
11401 </td> <!-- entry_type -->
11402
11403 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011404 <p>Per-device calibration on top of color space
11405transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011406 </td>
11407
11408 <td class="entry_units">
11409 </td>
11410
11411 <td class="entry_range">
11412 </td>
11413
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011414 <td class="entry_tags">
11415 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011416 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011417 </ul>
11418 </td>
11419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011420 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011421
11422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11424 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011425
11426
11427 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011429 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011432 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011433 <span class="entry_type_container">x</span>
11434
11435 <span class="entry_type_array">
11436 9
11437 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011438 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011439 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011440
11441
11442 </td> <!-- entry_type -->
11443
11444 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011445 <p>Linear mapping from XYZ (D50) color space to
11446reference linear sensor color,<wbr/> for first reference
11447illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011448 </td>
11449
11450 <td class="entry_units">
11451 </td>
11452
11453 <td class="entry_range">
11454 </td>
11455
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011456 <td class="entry_tags">
11457 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011458 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011459 </ul>
11460 </td>
11461
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011462 </tr>
11463 <tr class="entries_header">
11464 <th class="th_details" colspan="5">Details</th>
11465 </tr>
11466 <tr class="entry_cont">
11467 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011468 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11469black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11470At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011471 </td>
11472 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011473
11474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11476 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011477
11478
11479 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011480 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011481 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011482 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011483 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011484 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011485 <span class="entry_type_container">x</span>
11486
11487 <span class="entry_type_array">
11488 9
11489 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011490 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011491 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011492
11493
11494 </td> <!-- entry_type -->
11495
11496 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011497 <p>Linear mapping from XYZ (D50) color space to
11498reference linear sensor color,<wbr/> for second reference
11499illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011500 </td>
11501
11502 <td class="entry_units">
11503 </td>
11504
11505 <td class="entry_range">
11506 </td>
11507
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011508 <td class="entry_tags">
11509 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011510 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011511 </ul>
11512 </td>
11513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011514 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011515
11516
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011517 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11518 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011519
11520
11521 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011522 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011523 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011524 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011525 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011526 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011527 <span class="entry_type_container">x</span>
11528
11529 <span class="entry_type_array">
11530 9
11531 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011532 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011533 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011534
11535
11536 </td> <!-- entry_type -->
11537
11538 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011539 <p>Used by DNG for better WB
11540adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011541 </td>
11542
11543 <td class="entry_units">
11544 </td>
11545
11546 <td class="entry_range">
11547 </td>
11548
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011549 <td class="entry_tags">
11550 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011551 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011552 </ul>
11553 </td>
11554
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011555 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011556
11557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11559 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011560
11561
11562 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011563 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011564 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011565 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011566 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011567 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011568 <span class="entry_type_container">x</span>
11569
11570 <span class="entry_type_array">
11571 9
11572 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011573 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011574 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011575
11576
11577 </td> <!-- entry_type -->
11578
11579 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011580 <p>Used by DNG for better WB
11581adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011582 </td>
11583
11584 <td class="entry_units">
11585 </td>
11586
11587 <td class="entry_range">
11588 </td>
11589
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011590 <td class="entry_tags">
11591 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011592 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011593 </ul>
11594 </td>
11595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011596 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011597
11598
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011599 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11600 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011601
11602
11603 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011604 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011605 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011606 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011607 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011608 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011609
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011610 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011611
11612
11613 </td> <!-- entry_type -->
11614
11615 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011616 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011617purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011618 </td>
11619
11620 <td class="entry_units">
11621 </td>
11622
11623 <td class="entry_range">
11624 </td>
11625
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011626 <td class="entry_tags">
11627 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011628 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011629 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011630 </ul>
11631 </td>
11632
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011633 </tr>
11634 <tr class="entries_header">
11635 <th class="th_details" colspan="5">Details</th>
11636 </tr>
11637 <tr class="entry_cont">
11638 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011639 <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 -080011640equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011641values above this,<wbr/> the gain applied can be a mix of analog and
11642digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011643 </td>
11644 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011645
11646
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011647 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11648 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011649
11650
11651 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011652 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011653 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011654 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011655 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011656 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011657 <span class="entry_type_container">x</span>
11658
11659 <span class="entry_type_array">
11660 2
11661 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011662 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011663 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011664
11665
11666 </td> <!-- entry_type -->
11667
11668 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011669 <p>Estimation of sensor noise
11670characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011671 </td>
11672
11673 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011674 var(raw pixel value) = electrons * (baseGainFactor
11675 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11676 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011677 </td>
11678
11679 <td class="entry_range">
11680 </td>
11681
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011682 <td class="entry_tags">
11683 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011684 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011685 </ul>
11686 </td>
11687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011688 </tr>
11689 <tr class="entries_header">
11690 <th class="th_details" colspan="5">Details</th>
11691 </tr>
11692 <tr class="entry_cont">
11693 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011694 <p>A represents sensor read noise before analog
11695amplification; B represents noise from A/<wbr/>D conversion and
11696other circuits after amplification.<wbr/> Both noise sources
11697are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11698across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011699 </td>
11700 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011701
11702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011703 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11704 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011705
11706
11707 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011708 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011709 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011710 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011711 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011712 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011713
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011714 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011715
11716
11717 </td> <!-- entry_type -->
11718
11719 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011720 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011721image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011722screen in its native orientation.<wbr/> Also defines the
11723direction of rolling shutter readout,<wbr/> which is from top
11724to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011725 </td>
11726
11727 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011728 degrees clockwise rotation,<wbr/> only multiples of
11729 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011730 </td>
11731
11732 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011733 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011734 </td>
11735
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011736 <td class="entry_tags">
11737 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011738 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011739 </ul>
11740 </td>
11741
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011742 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011743
11744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011745 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11746 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011747
11748
11749 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011750 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011751 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011752 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011753 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011754 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011755
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011756 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011757
11758 <ul class="entry_type_enum">
11759 <li>
11760 <span class="entry_type_enum_name">DAYLIGHT</span>
11761 <span class="entry_type_enum_value">1</span>
11762 </li>
11763 <li>
11764 <span class="entry_type_enum_name">FLUORESCENT</span>
11765 <span class="entry_type_enum_value">2</span>
11766 </li>
11767 <li>
11768 <span class="entry_type_enum_name">TUNGSTEN</span>
11769 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011770 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011771 </li>
11772 <li>
11773 <span class="entry_type_enum_name">FLASH</span>
11774 <span class="entry_type_enum_value">4</span>
11775 </li>
11776 <li>
11777 <span class="entry_type_enum_name">FINE_WEATHER</span>
11778 <span class="entry_type_enum_value">9</span>
11779 </li>
11780 <li>
11781 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11782 <span class="entry_type_enum_value">10</span>
11783 </li>
11784 <li>
11785 <span class="entry_type_enum_name">SHADE</span>
11786 <span class="entry_type_enum_value">11</span>
11787 </li>
11788 <li>
11789 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11790 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011791 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011792 </li>
11793 <li>
11794 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11795 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011796 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011797 </li>
11798 <li>
11799 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11800 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011801 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011802 </li>
11803 <li>
11804 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11805 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011806 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011807 </li>
11808 <li>
11809 <span class="entry_type_enum_name">STANDARD_A</span>
11810 <span class="entry_type_enum_value">17</span>
11811 </li>
11812 <li>
11813 <span class="entry_type_enum_name">STANDARD_B</span>
11814 <span class="entry_type_enum_value">18</span>
11815 </li>
11816 <li>
11817 <span class="entry_type_enum_name">STANDARD_C</span>
11818 <span class="entry_type_enum_value">19</span>
11819 </li>
11820 <li>
11821 <span class="entry_type_enum_name">D55</span>
11822 <span class="entry_type_enum_value">20</span>
11823 </li>
11824 <li>
11825 <span class="entry_type_enum_name">D65</span>
11826 <span class="entry_type_enum_value">21</span>
11827 </li>
11828 <li>
11829 <span class="entry_type_enum_name">D75</span>
11830 <span class="entry_type_enum_value">22</span>
11831 </li>
11832 <li>
11833 <span class="entry_type_enum_name">D50</span>
11834 <span class="entry_type_enum_value">23</span>
11835 </li>
11836 <li>
11837 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11838 <span class="entry_type_enum_value">24</span>
11839 </li>
11840 </ul>
11841
11842 </td> <!-- entry_type -->
11843
11844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011845 <p>Light source used to define transform
118461</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011847 </td>
11848
11849 <td class="entry_units">
11850 </td>
11851
11852 <td class="entry_range">
11853 </td>
11854
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011855 <td class="entry_tags">
11856 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011857 <li><a href="#tag_DNG">DNG</a></li>
11858 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011859 </ul>
11860 </td>
11861
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011862 </tr>
11863 <tr class="entries_header">
11864 <th class="th_details" colspan="5">Details</th>
11865 </tr>
11866 <tr class="entry_cont">
11867 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011868 <p>[EXIF LightSource tag] Must all these be
11869supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011870 </td>
11871 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011872
11873
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011874 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11875 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011876
11877
11878 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011879 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011880 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011881 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011882 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011883 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011884
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011885 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011886
11887
11888 </td> <!-- entry_type -->
11889
11890 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011891 <p>Light source used to define transform
118922</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011893 </td>
11894
11895 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011896 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011897 </td>
11898
11899 <td class="entry_range">
11900 </td>
11901
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011902 <td class="entry_tags">
11903 </td>
11904
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011906
11907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011910
Igor Murashkina46e02f2014-01-09 17:43:38 -080011911
11912 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11913 <td class="entry_name" rowspan="1">
11914 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11915 </td>
11916 <td class="entry_type">
11917 <span class="entry_type_name">byte</span>
11918
11919 <span class="entry_type_visibility"> [public]</span>
11920
11921
11922 </td> <!-- entry_type -->
11923
11924 <td class="entry_description">
11925 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11926pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11927 </td>
11928
11929 <td class="entry_units">
11930 </td>
11931
11932 <td class="entry_range">
11933 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11934 </td>
11935
11936 <td class="entry_tags">
11937 </td>
11938
11939 </tr>
11940
11941
11942 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11943 <!-- end of entry -->
11944
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011945
11946
11947 <!-- end of kind -->
11948 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011949 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011950
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011951 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011952 <tr>
11953 <th class="th_name">Property Name</th>
11954 <th class="th_type">Type</th>
11955 <th class="th_description">Description</th>
11956 <th class="th_units">Units</th>
11957 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011958 <th class="th_tags">Tags</th>
11959 </tr>
11960 </thead>
11961
11962 <tbody>
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011974 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011975 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011978 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011980 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011981
11982
11983 </td> <!-- entry_type -->
11984
11985 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011986 <p>Duration each pixel is exposed to
11987light.<wbr/></p>
11988<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11989duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011990 </td>
11991
11992 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011993 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011994 </td>
11995
11996 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011997 <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 -080011998 </td>
11999
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012000 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012001 <ul class="entry_tags">
12002 <li><a href="#tag_V1">V1</a></li>
12003 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012004 </td>
12005
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012006 </tr>
12007 <tr class="entries_header">
12008 <th class="th_details" colspan="5">Details</th>
12009 </tr>
12010 <tr class="entry_cont">
12011 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012012 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012013 </td>
12014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012015
12016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012019
12020
12021 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012022 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012023 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012024 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012025 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012026 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012028 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012029
12030
12031 </td> <!-- entry_type -->
12032
12033 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012034 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012035start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012036 </td>
12037
12038 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012039 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012040 </td>
12041
12042 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012043 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12044android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12045is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012046 </td>
12047
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012048 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012049 <ul class="entry_tags">
12050 <li><a href="#tag_V1">V1</a></li>
12051 <li><a href="#tag_BC">BC</a></li>
12052 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012053 </td>
12054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012055 </tr>
12056 <tr class="entries_header">
12057 <th class="th_details" colspan="5">Details</th>
12058 </tr>
12059 <tr class="entry_cont">
12060 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012061 <p>The maximum frame rate that can be supported by a camera subsystem is
12062a function of many factors:</p>
12063<ul>
12064<li>Requested resolutions of output image streams</li>
12065<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12066<li>The bandwidth of the imager interface</li>
12067<li>The bandwidth of the various ISP processing blocks</li>
12068</ul>
12069<p>Since these factors can vary greatly between different ISPs and
12070sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12071restrictions with as simple a model as possible.<wbr/></p>
12072<p>The model presented has the following characteristics:</p>
12073<ul>
12074<li>The image sensor is always configured to output the smallest
12075resolution possible given the application's requested output stream
12076sizes.<wbr/> The smallest resolution is defined as being at least as large
12077as the largest requested output stream size; the camera pipeline must
12078never digitally upsample sensor data when the crop region covers the
12079whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12080resolutions are configured,<wbr/> the sensor can provide a higher frame
12081rate.<wbr/></li>
12082<li>Since any request may use any or all the currently configured
12083output streams,<wbr/> the sensor and ISP must be configured to support
12084scaling a single capture to all the streams at the same time.<wbr/> This
12085means the camera pipeline must be ready to produce the largest
12086requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12087frame rate of a given configured stream set is governed only by the
12088largest requested stream resolution.<wbr/></li>
12089<li>Using more than one output stream in a request does not affect the
12090frame duration.<wbr/></li>
12091<li>JPEG streams act like processed YUV streams in requests for which
12092they are not included; in requests in which they are directly
12093referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12094JPEG stream requires the underlying YUV data to always be ready for
12095use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12096frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12097<li>The JPEG processor can run concurrently to the rest of the camera
12098pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12099</ul>
12100<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12101is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12102These are used to determine the maximum frame rate /<wbr/> minimum frame
12103duration that is possible for a given stream configuration.<wbr/></p>
12104<p>Specifically,<wbr/> the application can use the following rules to
12105determine the minimum frame duration it can request from the HAL
12106device:</p>
12107<ol>
12108<li>Given the application's currently configured set of output
12109streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12110<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12111<code>SP</code>.<wbr/></li>
12112<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12113count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12114<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12115<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
12116no exact match for <code>RP == RJ</code> (in particular there isn't an available
12117processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12118to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12119there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12120the processed resolution closest to <code>RJ</code>.<wbr/></li>
12121<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
12122no exact match for <code>RR == RP</code> (in particular there isn't an available
12123raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12124or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12125there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12126the raw resolution closest to <code>RP</code>.<wbr/></li>
12127<li>Look up the matching minimum frame durations in the property lists
12128<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12129<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12130<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12131minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12132<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12133supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12134<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12135supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12136<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12137the application,<wbr/> then the HAL will have to delay JPEG-using requests
12138whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12139This will happen whenever a JPEG-using request starts capture less
12140than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12141supported frame duration will vary between the values calculated in
12142#6 and #7.<wbr/></li>
12143</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012144 </td>
12145 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012146
12147
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012148 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12149 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012150
12151
12152 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012153 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012154 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012155 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012156 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012157 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012158
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012159 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012160
12161
12162 </td> <!-- entry_type -->
12163
12164 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012165 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012166implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012167below 'maximum analog sensitivity'.<wbr/></p>
12168<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12169gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012170 </td>
12171
12172 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012173 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012174 </td>
12175
12176 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012177 <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 -080012178 </td>
12179
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012180 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012181 <ul class="entry_tags">
12182 <li><a href="#tag_V1">V1</a></li>
12183 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012184 </td>
12185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012186 </tr>
12187 <tr class="entries_header">
12188 <th class="th_details" colspan="5">Details</th>
12189 </tr>
12190 <tr class="entry_cont">
12191 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012192 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012193 </td>
12194 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012195
12196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012197 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12198 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012199
12200
12201 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012202 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012203 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012204 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012205 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012206 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012207
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012208 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012209
12210
12211 </td> <!-- entry_type -->
12212
12213 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012214 <p>Time at start of exposure of first
12215row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012216 </td>
12217
12218 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012219 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012220 </td>
12221
12222 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012223 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012224 </td>
12225
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012226 <td class="entry_tags">
12227 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012228 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012229 </ul>
12230 </td>
12231
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012232 </tr>
12233 <tr class="entries_header">
12234 <th class="th_details" colspan="5">Details</th>
12235 </tr>
12236 <tr class="entry_cont">
12237 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012238 <p>Monotonic,<wbr/> should be synced to other timestamps in
12239system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012240 </td>
12241 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012242
12243
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012244 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12245 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012246
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012247
12248 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012249 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012250 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012251 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012252 <td class="entry_type">
12253 <span class="entry_type_name">float</span>
12254
12255 <span class="entry_type_visibility"> [public]</span>
12256
12257
12258 </td> <!-- entry_type -->
12259
12260 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012261 <p>The temperature of the sensor,<wbr/> sampled at the time
12262exposure began for this frame.<wbr/></p>
12263<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12264somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012265 </td>
12266
12267 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012268 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012269 </td>
12270
12271 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012272 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012273 </td>
12274
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012275 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012276 <ul class="entry_tags">
12277 <li><a href="#tag_FULL">FULL</a></li>
12278 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012279 </td>
12280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012281 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012282
12283
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012284 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12285 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012286
Igor Murashkina46e02f2014-01-09 17:43:38 -080012287
12288 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12289 <td class="entry_name" rowspan="5">
12290 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12291 </td>
12292 <td class="entry_type">
12293 <span class="entry_type_name entry_type_name_enum">int32</span>
12294
12295 <span class="entry_type_visibility"> [public]</span>
12296
12297 <ul class="entry_type_enum">
12298 <li>
12299 <span class="entry_type_enum_name">OFF</span>
12300 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12301device returns captures from the image sensor.<wbr/></p></span>
12302 </li>
12303 <li>
12304 <span class="entry_type_enum_name">SOLID_COLOR</span>
12305 <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
12306respective color channel provided in
12307<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12308<p>For example:</p>
12309<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12310</code></pre>
12311<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12312<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12313</code></pre>
12314<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12315are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12316 </li>
12317 <li>
12318 <span class="entry_type_enum_name">COLOR_BARS</span>
12319 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12320<p>The vertical bars (left-to-right) are as follows:</p>
12321<ul>
12322<li>100% white</li>
12323<li>yellow</li>
12324<li>cyan</li>
12325<li>green</li>
12326<li>magenta</li>
12327<li>red</li>
12328<li>blue</li>
12329<li>black</li>
12330</ul>
12331<p>In general the image would look like the following:</p>
12332<pre><code>W Y C G M R B K
12333W Y C G M R B K
12334W Y C G M R B K
12335W Y C G M R B K
12336W Y C G M R B K
12337.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12338.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12339.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12340
12341(B = Blue,<wbr/> K = Black)
12342</code></pre>
12343<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12344When this is not possible,<wbr/> the bar size should be rounded
12345down to the nearest integer and the pattern can repeat
12346on the right side.<wbr/></p>
12347<p>Each bar's height must always take up the full sensor
12348pixel array height.<wbr/></p>
12349<p>Each pixel in this test pattern must be set to either
123500% intensity or 100% intensity.<wbr/></p></span>
12351 </li>
12352 <li>
12353 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12354 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12355each bar should start at its specified color at the top,<wbr/>
12356and fade to gray at the bottom.<wbr/></p>
12357<p>Furthermore each bar is further subdivided into a left and
12358right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12359and the right half should have a quantized gradient.<wbr/></p>
12360<p>In particular,<wbr/> the right half's should consist of blocks of the
12361same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12362<p>The least significant bits in the quantized gradient should
12363be copied from the most significant bits of the smooth gradient.<wbr/></p>
12364<p>The height of each bar should always be a multiple of 128.<wbr/>
12365When this is not the case,<wbr/> the pattern should repeat at the bottom
12366of the image.<wbr/></p></span>
12367 </li>
12368 <li>
12369 <span class="entry_type_enum_name">PN9</span>
12370 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12371generated from a PN9 512-bit sequence (typically implemented
12372in hardware with a linear feedback shift register).<wbr/></p>
12373<p>The generator should be reset at the beginning of each frame,<wbr/>
12374and thus each subsequent raw frame with this test pattern should
12375be exactly the same as the last.<wbr/></p></span>
12376 </li>
12377 <li>
12378 <span class="entry_type_enum_name">CUSTOM1</span>
12379 <span class="entry_type_enum_value">256</span>
12380 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12381available only on this camera device are at least this numeric
12382value.<wbr/></p>
12383<p>All of the custom test patterns will be static
12384(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12385 </li>
12386 </ul>
12387
12388 </td> <!-- entry_type -->
12389
12390 <td class="entry_description">
12391 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12392doing a real exposure from the camera.<wbr/></p>
12393 </td>
12394
12395 <td class="entry_units">
12396 </td>
12397
12398 <td class="entry_range">
12399 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12400<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12401 </td>
12402
12403 <td class="entry_tags">
12404 </td>
12405
12406 </tr>
12407 <tr class="entries_header">
12408 <th class="th_details" colspan="5">Details</th>
12409 </tr>
12410 <tr class="entry_cont">
12411 <td class="entry_details" colspan="5">
12412 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12413by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12414work as normal.<wbr/></p>
12415<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12416occur (and that the test pattern remain unmodified,<wbr/> since the flash
12417would not actually affect it).<wbr/></p>
12418 </td>
12419 </tr>
12420
12421 <tr class="entries_header">
12422 <th class="th_details" colspan="5">HAL Implementation Details</th>
12423 </tr>
12424 <tr class="entry_cont">
12425 <td class="entry_details" colspan="5">
12426 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12427<p>The HAL may choose to substitute test patterns from the sensor
12428with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12429indistinguishable to the ISP whether the data came from the
12430sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12431 </td>
12432 </tr>
12433
12434 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12435 <!-- end of entry -->
12436
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012437
12438
12439 <!-- end of kind -->
12440 </tbody>
12441
12442 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012443 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012444
12445
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012446 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012447
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012448 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012449 <tr>
12450 <th class="th_name">Property Name</th>
12451 <th class="th_type">Type</th>
12452 <th class="th_description">Description</th>
12453 <th class="th_units">Units</th>
12454 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012455 <th class="th_tags">Tags</th>
12456 </tr>
12457 </thead>
12458
12459 <tbody>
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012471 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012472 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012473 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012474 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012475 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012476
Zhijun He2f86a212014-01-15 10:34:02 -080012477 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012478
12479 <ul class="entry_type_enum">
12480 <li>
12481 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012482 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012483 </li>
12484 <li>
12485 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012486 <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 -080012487 </li>
12488 <li>
12489 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012490 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012491 </li>
12492 </ul>
12493
12494 </td> <!-- entry_type -->
12495
12496 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012497 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012498to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012499 </td>
12500
12501 <td class="entry_units">
12502 </td>
12503
12504 <td class="entry_range">
12505 </td>
12506
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012507 <td class="entry_tags">
12508 </td>
12509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012510 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012511 <tr class="entries_header">
12512 <th class="th_details" colspan="5">Details</th>
12513 </tr>
12514 <tr class="entry_cont">
12515 <td class="entry_details" colspan="5">
12516 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12517camera device,<wbr/> and an identity lens shading map data will be provided
12518if <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
12519shading 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/>
12520the 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
12521shown below:</p>
12522<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/>
12523 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/>
12524 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/>
12525 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12526 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12527 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
12528</code></pre>
12529<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12530camera device.<wbr/> Applications can request lens shading map data by setting
12531<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
12532lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12533by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12534 </td>
12535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012536
12537
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012538 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12539 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012540
12541
12542 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012543 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012544 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012545 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012546 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012547 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012548
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012549 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012550
12551
12552 </td> <!-- entry_type -->
12553
12554 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012555 <p>Control the amount of shading correction
12556applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012557 </td>
12558
12559 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012560 unitless: 1-10; 10 is full shading
12561 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012562 </td>
12563
12564 <td class="entry_range">
12565 </td>
12566
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012567 <td class="entry_tags">
12568 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012569 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012570 </ul>
12571 </td>
12572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012573 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012574
12575
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012576 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12577 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012578
12579
12580
12581 <!-- end of kind -->
12582 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012583 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012585 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012586 <tr>
12587 <th class="th_name">Property Name</th>
12588 <th class="th_type">Type</th>
12589 <th class="th_description">Description</th>
12590 <th class="th_units">Units</th>
12591 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012592 <th class="th_tags">Tags</th>
12593 </tr>
12594 </thead>
12595
12596 <tbody>
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012608 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012609 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012610 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012611 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012612 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012613
Zhijun He2f86a212014-01-15 10:34:02 -080012614 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012615
12616 <ul class="entry_type_enum">
12617 <li>
12618 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012619 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012620 </li>
12621 <li>
12622 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012623 <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 -080012624 </li>
12625 <li>
12626 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012627 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012628 </li>
12629 </ul>
12630
12631 </td> <!-- entry_type -->
12632
12633 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012634 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012635to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012636 </td>
12637
12638 <td class="entry_units">
12639 </td>
12640
12641 <td class="entry_range">
12642 </td>
12643
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012644 <td class="entry_tags">
12645 </td>
12646
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012647 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012648 <tr class="entries_header">
12649 <th class="th_details" colspan="5">Details</th>
12650 </tr>
12651 <tr class="entry_cont">
12652 <td class="entry_details" colspan="5">
12653 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12654camera device,<wbr/> and an identity lens shading map data will be provided
12655if <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
12656shading 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/>
12657the 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
12658shown below:</p>
12659<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/>
12660 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/>
12661 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/>
12662 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12663 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
12664 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
12665</code></pre>
12666<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12667camera device.<wbr/> Applications can request lens shading map data by setting
12668<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
12669lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12670by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12671 </td>
12672 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012673
12674
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012675 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12676 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012677
12678
12679
12680 <!-- end of kind -->
12681 </tbody>
12682
12683 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012684 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012685
12686
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012687 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012689 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012690 <tr>
12691 <th class="th_name">Property Name</th>
12692 <th class="th_type">Type</th>
12693 <th class="th_description">Description</th>
12694 <th class="th_units">Units</th>
12695 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012696 <th class="th_tags">Tags</th>
12697 </tr>
12698 </thead>
12699
12700 <tbody>
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012712 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012713 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012714 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012715 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012716 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012717
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012718 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012719
12720 <ul class="entry_type_enum">
12721 <li>
12722 <span class="entry_type_enum_name">OFF</span>
12723 </li>
12724 <li>
12725 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012726 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12727only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012728 </li>
12729 <li>
12730 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012731 <span class="entry_type_enum_notes"><p>Optional Return all face
12732metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012733 </li>
12734 </ul>
12735
12736 </td> <!-- entry_type -->
12737
12738 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012739 <p>State of the face detector
12740unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012741 </td>
12742
12743 <td class="entry_units">
12744 </td>
12745
12746 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012747 <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 -080012748 </td>
12749
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012750 <td class="entry_tags">
12751 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012752 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012753 </ul>
12754 </td>
12755
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012756 </tr>
12757 <tr class="entries_header">
12758 <th class="th_details" colspan="5">Details</th>
12759 </tr>
12760 <tr class="entry_cont">
12761 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012762 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012763should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012764fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012765<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 -080012766 </td>
12767 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012768
12769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012770 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12771 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012772
12773
12774 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012775 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012776 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012777 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012778 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012779 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012780
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012781 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012782
12783 <ul class="entry_type_enum">
12784 <li>
12785 <span class="entry_type_enum_name">OFF</span>
12786 </li>
12787 <li>
12788 <span class="entry_type_enum_name">ON</span>
12789 </li>
12790 </ul>
12791
12792 </td> <!-- entry_type -->
12793
12794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012795 <p>Operating mode for histogram
12796generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012797 </td>
12798
12799 <td class="entry_units">
12800 </td>
12801
12802 <td class="entry_range">
12803 </td>
12804
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012805 <td class="entry_tags">
12806 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012807 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012808 </ul>
12809 </td>
12810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012812
12813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012816
12817
12818 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012819 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012820 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012821 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012822 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012823 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012824
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012825 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012826
12827 <ul class="entry_type_enum">
12828 <li>
12829 <span class="entry_type_enum_name">OFF</span>
12830 </li>
12831 <li>
12832 <span class="entry_type_enum_name">ON</span>
12833 </li>
12834 </ul>
12835
12836 </td> <!-- entry_type -->
12837
12838 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012839 <p>Operating mode for sharpness map
12840generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012841 </td>
12842
12843 <td class="entry_units">
12844 </td>
12845
12846 <td class="entry_range">
12847 </td>
12848
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012849 <td class="entry_tags">
12850 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012851 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852 </ul>
12853 </td>
12854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012855 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012856
12857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012858 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12859 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012860
Zhijun He69fc0ea2013-07-17 09:42:58 -070012861
12862 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012863 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012864 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012865 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012866 <td class="entry_type">
12867 <span class="entry_type_name entry_type_name_enum">byte</span>
12868
12869 <span class="entry_type_visibility"> [public]</span>
12870
12871 <ul class="entry_type_enum">
12872 <li>
12873 <span class="entry_type_enum_name">OFF</span>
12874 </li>
12875 <li>
12876 <span class="entry_type_enum_name">ON</span>
12877 </li>
12878 </ul>
12879
12880 </td> <!-- entry_type -->
12881
12882 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012883 <p>Whether the HAL needs to output the lens
12884shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012885 </td>
12886
12887 <td class="entry_units">
12888 </td>
12889
12890 <td class="entry_range">
12891 </td>
12892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012893 <td class="entry_tags">
12894 </td>
12895
12896 </tr>
12897 <tr class="entries_header">
12898 <th class="th_details" colspan="5">Details</th>
12899 </tr>
12900 <tr class="entry_cont">
12901 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012902 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012903<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 -080012904the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012905 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012907
12908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12910 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012911
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012912
12913
12914 <!-- end of kind -->
12915 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012916 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012917
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012918 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012919 <tr>
12920 <th class="th_name">Property Name</th>
12921 <th class="th_type">Type</th>
12922 <th class="th_description">Description</th>
12923 <th class="th_units">Units</th>
12924 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012925 <th class="th_tags">Tags</th>
12926 </tr>
12927 </thead>
12928
12929 <tbody>
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012943 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012944 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012945 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012946 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012947 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012948 <span class="entry_type_container">x</span>
12949
12950 <span class="entry_type_array">
12951 n
12952 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012953 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012954 <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 -080012955
12956
12957 </td> <!-- entry_type -->
12958
12959 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012960 <p>Which face detection modes are available,<wbr/>
12961if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012962 </td>
12963
12964 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012965 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012966 OFF
12967 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012968 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012969 </td>
12970
12971 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012972 </td>
12973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012974 <td class="entry_tags">
12975 </td>
12976
12977 </tr>
12978 <tr class="entries_header">
12979 <th class="th_details" colspan="5">Details</th>
12980 </tr>
12981 <tr class="entry_cont">
12982 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012983 <p>OFF means face detection is disabled,<wbr/> it must
12984be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012985<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012986<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12987<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012988<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012989<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12990<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012991 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012992 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012993
12994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012995 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12996 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012997
12998
12999 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013000 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013001 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013002 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013003 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013004 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013005
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013006 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013007
13008
13009 </td> <!-- entry_type -->
13010
13011 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013012 <p>Number of histogram buckets
13013supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013014 </td>
13015
13016 <td class="entry_units">
13017 </td>
13018
13019 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013020 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013021 </td>
13022
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013023 <td class="entry_tags">
13024 </td>
13025
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013026 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013027
13028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013029 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13030 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013031
13032
13033 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013034 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013035 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013036 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013037 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013038 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013039
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013040 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013041
13042
13043 </td> <!-- entry_type -->
13044
13045 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013046 <p>Maximum number of simultaneously detectable
13047faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013048 </td>
13049
13050 <td class="entry_units">
13051 </td>
13052
13053 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013054 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013055modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013056 </td>
13057
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013058 <td class="entry_tags">
13059 </td>
13060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013061 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013062
13063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013064 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13065 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013066
13067
13068 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013069 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013070 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013071 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013072 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013073 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013074
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013075 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013076
13077
13078 </td> <!-- entry_type -->
13079
13080 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013081 <p>Maximum value possible for a histogram
13082bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013083 </td>
13084
13085 <td class="entry_units">
13086 </td>
13087
13088 <td class="entry_range">
13089 </td>
13090
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013091 <td class="entry_tags">
13092 </td>
13093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013094 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013095
13096
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013097 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13098 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013099
13100
13101 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013102 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013103 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013104 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013105 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013106 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013107
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013108 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013109
13110
13111 </td> <!-- entry_type -->
13112
13113 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013114 <p>Maximum value possible for a sharpness map
13115region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013116 </td>
13117
13118 <td class="entry_units">
13119 </td>
13120
13121 <td class="entry_range">
13122 </td>
13123
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013124 <td class="entry_tags">
13125 </td>
13126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013127 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013128
13129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013130 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13131 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013132
13133
13134 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013135 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013136 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013137 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013138 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013139 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013140 <span class="entry_type_container">x</span>
13141
13142 <span class="entry_type_array">
13143 2
13144 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013145 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013146 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013147
13148
13149 </td> <!-- entry_type -->
13150
13151 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013152 <p>Dimensions of the sharpness
13153map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013154 </td>
13155
13156 <td class="entry_units">
13157 </td>
13158
13159 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013160 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013161 </td>
13162
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013163 <td class="entry_tags">
13164 </td>
13165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013166 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013167
13168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013169 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13170 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013171
13172
13173
13174
13175
13176
13177 <!-- end of kind -->
13178 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013179 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013180
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013181 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013182 <tr>
13183 <th class="th_name">Property Name</th>
13184 <th class="th_type">Type</th>
13185 <th class="th_description">Description</th>
13186 <th class="th_units">Units</th>
13187 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013188 <th class="th_tags">Tags</th>
13189 </tr>
13190 </thead>
13191
13192 <tbody>
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013204 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013205 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013206 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013207 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013208 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013209
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013210 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013211
13212 <ul class="entry_type_enum">
13213 <li>
13214 <span class="entry_type_enum_name">OFF</span>
13215 </li>
13216 <li>
13217 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013218 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13219only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013220 </li>
13221 <li>
13222 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013223 <span class="entry_type_enum_notes"><p>Optional Return all face
13224metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013225 </li>
13226 </ul>
13227
13228 </td> <!-- entry_type -->
13229
13230 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013231 <p>State of the face detector
13232unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013233 </td>
13234
13235 <td class="entry_units">
13236 </td>
13237
13238 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013239 <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 -080013240 </td>
13241
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013242 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013243 <ul class="entry_tags">
13244 <li><a href="#tag_BC">BC</a></li>
13245 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013246 </td>
13247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013248 </tr>
13249 <tr class="entries_header">
13250 <th class="th_details" colspan="5">Details</th>
13251 </tr>
13252 <tr class="entry_cont">
13253 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013254 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013255should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013256fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013257<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 -080013258 </td>
13259 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013260
13261
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013262 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13263 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013264
13265
13266 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013267 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013268 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013269 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013270 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013271 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013272 <span class="entry_type_container">x</span>
13273
13274 <span class="entry_type_array">
13275 n
13276 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013277 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013278
13279
13280 </td> <!-- entry_type -->
13281
13282 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013283 <p>List of unique IDs for detected
13284faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013285 </td>
13286
13287 <td class="entry_units">
13288 </td>
13289
13290 <td class="entry_range">
13291 </td>
13292
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013293 <td class="entry_tags">
13294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013295 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013296 </ul>
13297 </td>
13298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013299 </tr>
13300 <tr class="entries_header">
13301 <th class="th_details" colspan="5">Details</th>
13302 </tr>
13303 <tr class="entry_cont">
13304 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013305 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013306 </td>
13307 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013308
13309
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013310 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13311 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013312
13313
13314 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013315 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013316 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013317 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013318 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013319 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013320 <span class="entry_type_container">x</span>
13321
13322 <span class="entry_type_array">
13323 n x 6
13324 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013325 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013326 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013327
13328
13329 </td> <!-- entry_type -->
13330
13331 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013332 <p>List of landmarks for detected
13333faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013334 </td>
13335
13336 <td class="entry_units">
13337 </td>
13338
13339 <td class="entry_range">
13340 </td>
13341
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013342 <td class="entry_tags">
13343 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013344 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013345 </ul>
13346 </td>
13347
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013348 </tr>
13349 <tr class="entries_header">
13350 <th class="th_details" colspan="5">Details</th>
13351 </tr>
13352 <tr class="entry_cont">
13353 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013354 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013355 </td>
13356 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013357
13358
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013359 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13360 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013361
13362
13363 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013364 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013365 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013366 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013367 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013368 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013369 <span class="entry_type_container">x</span>
13370
13371 <span class="entry_type_array">
13372 n x 4
13373 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013374 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013375 <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 -080013376
13377
13378 </td> <!-- entry_type -->
13379
13380 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013381 <p>List of the bounding rectangles for detected
13382faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013383 </td>
13384
13385 <td class="entry_units">
13386 </td>
13387
13388 <td class="entry_range">
13389 </td>
13390
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013391 <td class="entry_tags">
13392 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013393 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013394 </ul>
13395 </td>
13396
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013397 </tr>
13398 <tr class="entries_header">
13399 <th class="th_details" colspan="5">Details</th>
13400 </tr>
13401 <tr class="entry_cont">
13402 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013403 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013404 </td>
13405 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013406
13407
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013408 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13409 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013410
13411
13412 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013413 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013414 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013415 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013416 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013417 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013418 <span class="entry_type_container">x</span>
13419
13420 <span class="entry_type_array">
13421 n
13422 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013423 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013424
13425
13426 </td> <!-- entry_type -->
13427
13428 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013429 <p>List of the face confidence scores for
13430detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013431 </td>
13432
13433 <td class="entry_units">
13434 </td>
13435
13436 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013437 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013438 </td>
13439
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013440 <td class="entry_tags">
13441 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013442 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013443 </ul>
13444 </td>
13445
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013446 </tr>
13447 <tr class="entries_header">
13448 <th class="th_details" colspan="5">Details</th>
13449 </tr>
13450 <tr class="entry_cont">
13451 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013452 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13453meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013454 </td>
13455 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013456
13457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013458 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13459 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013460
13461
13462 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013463 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013464 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013465 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013466 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013467 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013468 <span class="entry_type_container">x</span>
13469
13470 <span class="entry_type_array">
13471 n x 3
13472 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013473 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013474 <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 -080013475
13476
13477 </td> <!-- entry_type -->
13478
13479 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013480 <p>A 3-channel histogram based on the raw
13481sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013482 </td>
13483
13484 <td class="entry_units">
13485 </td>
13486
13487 <td class="entry_range">
13488 </td>
13489
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013490 <td class="entry_tags">
13491 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013492 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493 </ul>
13494 </td>
13495
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013496 </tr>
13497 <tr class="entries_header">
13498 <th class="th_details" colspan="5">Details</th>
13499 </tr>
13500 <tr class="entry_cont">
13501 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013502 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013503(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 -080013504(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13505supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013506 </td>
13507 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013508
13509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013510 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13511 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013512
13513
13514 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013515 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013516 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013517 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013518 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013519 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013520
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013521 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013522
13523 <ul class="entry_type_enum">
13524 <li>
13525 <span class="entry_type_enum_name">OFF</span>
13526 </li>
13527 <li>
13528 <span class="entry_type_enum_name">ON</span>
13529 </li>
13530 </ul>
13531
13532 </td> <!-- entry_type -->
13533
13534 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013535 <p>Operating mode for histogram
13536generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013537 </td>
13538
13539 <td class="entry_units">
13540 </td>
13541
13542 <td class="entry_range">
13543 </td>
13544
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013545 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013546 <ul class="entry_tags">
13547 <li><a href="#tag_V1">V1</a></li>
13548 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013549 </td>
13550
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013551 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013552
13553
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013554 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13555 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013556
13557
13558 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013559 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013560 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013561 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013562 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013563 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013564 <span class="entry_type_container">x</span>
13565
13566 <span class="entry_type_array">
13567 n x m x 3
13568 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013569 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013570 <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 -080013571
13572
13573 </td> <!-- entry_type -->
13574
13575 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013576 <p>A 3-channel sharpness map,<wbr/> based on the raw
13577sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013578 </td>
13579
13580 <td class="entry_units">
13581 </td>
13582
13583 <td class="entry_range">
13584 </td>
13585
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013586 <td class="entry_tags">
13587 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013588 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013589 </ul>
13590 </td>
13591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013592 </tr>
13593 <tr class="entries_header">
13594 <th class="th_details" colspan="5">Details</th>
13595 </tr>
13596 <tr class="entry_cont">
13597 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013598 <p>If only a monochrome sharpness map is supported,<wbr/>
13599all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013600 </td>
13601 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013602
13603
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013604 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13605 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013606
13607
13608 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013609 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013610 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013611 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013612 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013613 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013614
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013615 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013616
13617 <ul class="entry_type_enum">
13618 <li>
13619 <span class="entry_type_enum_name">OFF</span>
13620 </li>
13621 <li>
13622 <span class="entry_type_enum_name">ON</span>
13623 </li>
13624 </ul>
13625
13626 </td> <!-- entry_type -->
13627
13628 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013629 <p>Operating mode for sharpness map
13630generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013631 </td>
13632
13633 <td class="entry_units">
13634 </td>
13635
13636 <td class="entry_range">
13637 </td>
13638
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013639 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013640 <ul class="entry_tags">
13641 <li><a href="#tag_V1">V1</a></li>
13642 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013643 </td>
13644
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013645 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013646
13647
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013648 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13649 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013650
Zhijun He69fc0ea2013-07-17 09:42:58 -070013651
13652 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013653 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013654 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013655 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013656 <td class="entry_type">
13657 <span class="entry_type_name">float</span>
13658 <span class="entry_type_container">x</span>
13659
13660 <span class="entry_type_array">
13661 4 x n x m
13662 </span>
13663 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013664 <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 -070013665
13666
13667 </td> <!-- entry_type -->
13668
13669 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013670 <p>The shading map is a low-resolution floating-point map
13671that lists the coefficients used to correct for vignetting,<wbr/> for each
13672Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013673 </td>
13674
13675 <td class="entry_units">
13676 </td>
13677
13678 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013679 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013680 </td>
13681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013682 <td class="entry_tags">
13683 </td>
13684
13685 </tr>
13686 <tr class="entries_header">
13687 <th class="th_details" colspan="5">Details</th>
13688 </tr>
13689 <tr class="entry_cont">
13690 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013691 <p>The least shaded section of the image should have a gain factor
13692of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013693<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 -080013694must take into account the colorCorrection settings.<wbr/></p>
13695<p>The shading map is for the entire active pixel array,<wbr/> and is not
13696affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013697entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013698pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13699map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13700(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13701pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13702The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13703<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13704channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13705The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013706is 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 -080013707<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13708and must be smaller than 64x64.<wbr/></p>
13709<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013710<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13711<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013712[ 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/>
13713 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/>
13714 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/>
13715 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/>
13716 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/>
13717 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 -080013718</code></pre>
13719<p>The low-resolution scaling map images for each channel are
13720(displayed using nearest-neighbor interpolation):</p>
13721<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13722<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13723<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13724<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013725<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013726image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013727<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 -070013728 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013729 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013730
13731
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013732 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13733 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013734
13735
13736 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013737 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013738 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013739 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013740 <td class="entry_type">
13741 <span class="entry_type_name">float</span>
13742 <span class="entry_type_container">x</span>
13743
13744 <span class="entry_type_array">
13745 4
13746 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013747 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013748 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013749
13750
13751 </td> <!-- entry_type -->
13752
13753 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013754 <p>The best-fit color channel gains calculated
13755by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013756 </td>
13757
13758 <td class="entry_units">
13759 </td>
13760
13761 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013762 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013763 </td>
13764
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013765 <td class="entry_tags">
13766 </td>
13767
13768 </tr>
13769 <tr class="entries_header">
13770 <th class="th_details" colspan="5">Details</th>
13771 </tr>
13772 <tr class="entry_cont">
13773 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013774 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013775since statistics processing on data from a new frame
13776typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013777applied to that frame.<wbr/></p>
13778<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013779see <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 -080013780<p>This value should always be calculated by the AWB block,<wbr/>
13781regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013782 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013783 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013784
13785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013786 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13787 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013788
13789
13790 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013791 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013792 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013793 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013794 <td class="entry_type">
13795 <span class="entry_type_name">rational</span>
13796 <span class="entry_type_container">x</span>
13797
13798 <span class="entry_type_array">
13799 3 x 3
13800 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013801 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013802 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013803
13804
13805 </td> <!-- entry_type -->
13806
13807 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013808 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013809calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013810output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013811 </td>
13812
13813 <td class="entry_units">
13814 </td>
13815
13816 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013817 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013818 </td>
13819
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013820 <td class="entry_tags">
13821 </td>
13822
13823 </tr>
13824 <tr class="entries_header">
13825 <th class="th_details" colspan="5">Details</th>
13826 </tr>
13827 <tr class="entry_cont">
13828 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013829 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013830statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013831for the next frame.<wbr/> These are the values the HAL believes
13832are the best fit for the current output frame.<wbr/> This may
13833be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013834statistics processing on data from a new frame typically
13835completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013836that frame.<wbr/></p>
13837<p>These estimates must be provided for all frames,<wbr/> even if
13838capture settings and color transforms are set by the application.<wbr/></p>
13839<p>This value should always be calculated by the AWB block,<wbr/>
13840regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013841 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013842 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013843
13844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013845 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13846 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013847
13848
13849 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013850 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013851 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013852 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013853 <td class="entry_type">
13854 <span class="entry_type_name entry_type_name_enum">byte</span>
13855
13856 <span class="entry_type_visibility"> [public]</span>
13857
13858 <ul class="entry_type_enum">
13859 <li>
13860 <span class="entry_type_enum_name">NONE</span>
13861 </li>
13862 <li>
13863 <span class="entry_type_enum_name">50HZ</span>
13864 </li>
13865 <li>
13866 <span class="entry_type_enum_name">60HZ</span>
13867 </li>
13868 </ul>
13869
13870 </td> <!-- entry_type -->
13871
13872 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013873 <p>The camera device estimated scene illumination lighting
13874frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013875 </td>
13876
13877 <td class="entry_units">
13878 </td>
13879
13880 <td class="entry_range">
13881 </td>
13882
Zhijun He69fc0ea2013-07-17 09:42:58 -070013883 <td class="entry_tags">
13884 </td>
13885
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013886 </tr>
13887 <tr class="entries_header">
13888 <th class="th_details" colspan="5">Details</th>
13889 </tr>
13890 <tr class="entry_cont">
13891 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013892 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13893that depends on the local utility power standards.<wbr/> This flicker must be
13894accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13895The camera device uses this entry to tell the application what the scene
13896illuminant frequency is.<wbr/></p>
13897<p>When manual exposure control is enabled
13898(<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == OFF</code>),<wbr/>
13899the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13900application can ensure it selects exposure times that do not cause banding
13901issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13902for more details.<wbr/></p>
13903<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013904 </td>
13905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013906
13907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13909 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013910
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013911
13912
13913 <!-- end of kind -->
13914 </tbody>
13915
13916 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013917 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013918
13919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013920 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013921
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013922 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013923 <tr>
13924 <th class="th_name">Property Name</th>
13925 <th class="th_type">Type</th>
13926 <th class="th_description">Description</th>
13927 <th class="th_units">Units</th>
13928 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013929 <th class="th_tags">Tags</th>
13930 </tr>
13931 </thead>
13932
13933 <tbody>
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013945 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013946 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013947 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013948 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013949 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013950 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013951
Zhijun He704d1282013-08-19 15:26:33 -070013952 <span class="entry_type_array">
13953 n x 2
13954 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013955 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013956 <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 -080013957
13958
13959 </td> <!-- entry_type -->
13960
13961 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013962 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13963channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13964CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013965 </td>
13966
13967 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013968 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013969 </td>
13970
13971 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013972 <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 -080013973 </td>
13974
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013975 <td class="entry_tags">
13976 </td>
13977
13978 </tr>
13979 <tr class="entries_header">
13980 <th class="th_details" colspan="5">Details</th>
13981 </tr>
13982 <tr class="entry_cont">
13983 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013984 <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 -080013985 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013986 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013987
13988
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013989 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13990 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013991
13992
13993 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013994 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013995 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013996 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013997 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013998 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013999 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014000
Zhijun He704d1282013-08-19 15:26:33 -070014001 <span class="entry_type_array">
14002 n x 2
14003 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014004 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014005 <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 -080014006
14007
14008 </td> <!-- entry_type -->
14009
14010 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014011 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14012channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14013CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014014 </td>
14015
14016 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014017 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014018 </td>
14019
14020 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014021 <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 -080014022 </td>
14023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014024 <td class="entry_tags">
14025 </td>
14026
14027 </tr>
14028 <tr class="entries_header">
14029 <th class="th_details" colspan="5">Details</th>
14030 </tr>
14031 <tr class="entry_cont">
14032 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014033 <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 -080014034 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014035 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014036
14037
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014038 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14039 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014040
14041
14042 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014043 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014044 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014045 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014046 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014047 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014048 <span class="entry_type_container">x</span>
14049
14050 <span class="entry_type_array">
14051 n x 2
14052 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014053 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014054 <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 -080014055
14056
14057 </td> <!-- entry_type -->
14058
14059 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014060 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14061channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14062CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014063 </td>
14064
14065 <td class="entry_units">
14066 </td>
14067
14068 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014069 <p>0-1 on both input and output coordinates,<wbr/> normalized
14070as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014071 </td>
14072
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014073 <td class="entry_tags">
14074 <ul class="entry_tags">
14075 <li><a href="#tag_DNG">DNG</a></li>
14076 </ul>
14077 </td>
14078
14079 </tr>
14080 <tr class="entries_header">
14081 <th class="th_details" colspan="5">Details</th>
14082 </tr>
14083 <tr class="entry_cont">
14084 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014085 <p>Each channel's curve is defined by an array of control points:</p>
14086<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14087 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
140882 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14089<p>These are sorted in order of increasing <code>Pin</code>; it is always
14090guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14091define a complete mapping.<wbr/> For input values between control points,<wbr/>
14092the camera device must linearly interpolate between the control
14093points.<wbr/></p>
14094<p>Each curve can have an independent number of points,<wbr/> and the number
14095of points can be less than max (that is,<wbr/> the request doesn't have to
14096always provide a curve with number of points equivalent to
14097<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14098<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14099only specify the red channel and the precision is limited to 4
14100digits,<wbr/> for conciseness.<wbr/></p>
14101<p>Linear mapping:</p>
14102<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 ]
14103</code></pre>
14104<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14105<p>Invert mapping:</p>
14106<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 ]
14107</code></pre>
14108<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14109<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14110<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14111 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/>
14112 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/>
14113 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/>
14114 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 ]
14115</code></pre>
14116<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14117<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14118<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14119 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/>
14120 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/>
14121 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/>
14122 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 ]
14123</code></pre>
14124<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014125 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014126 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014127
Igor Murashkin94e06c42014-01-13 16:51:17 -080014128 <tr class="entries_header">
14129 <th class="th_details" colspan="5">HAL Implementation Details</th>
14130 </tr>
14131 <tr class="entry_cont">
14132 <td class="entry_details" colspan="5">
14133 <p>For good quality of mapping,<wbr/> at least 128 control points are
14134preferred.<wbr/></p>
14135<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14136control points used as are available.<wbr/></p>
14137 </td>
14138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014139
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014140 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14141 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014142
14143
14144 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014145 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014146 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014147 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014148 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014149 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014150
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014151 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014152
14153 <ul class="entry_type_enum">
14154 <li>
14155 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014156 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014157android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14158<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14159for applying the tonemapping curve specified by
14160<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
14161<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14162<p>Must not slow down frame rate relative to raw
14163sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014164 </li>
14165 <li>
14166 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014167 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14168<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014169 </li>
14170 <li>
14171 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014172 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14173<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014174 </li>
14175 </ul>
14176
14177 </td> <!-- entry_type -->
14178
14179 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014180 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014181 </td>
14182
14183 <td class="entry_units">
14184 </td>
14185
14186 <td class="entry_range">
14187 </td>
14188
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014189 <td class="entry_tags">
14190 </td>
14191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014192 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014193 <tr class="entries_header">
14194 <th class="th_details" colspan="5">Details</th>
14195 </tr>
14196 <tr class="entry_cont">
14197 <td class="entry_details" colspan="5">
14198 <p>When switching to an application-defined contrast curve by setting
14199<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14200per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14201mapping from input high-bit-depth pixel value to the output
14202low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14203and output may change depending on the camera pipeline,<wbr/> the values
14204are specified by normalized floating-point numbers.<wbr/></p>
14205<p>More-complex color mapping operations such as 3D color look-up
14206tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14207transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14208CONTRAST_<wbr/>CURVE.<wbr/></p>
14209<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14210emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14211<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/>
14212These values are always available,<wbr/> and as close as possible to the
14213actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14214<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14215provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14216roughly the same.<wbr/></p>
14217 </td>
14218 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014219
14220
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014221 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14222 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014223
14224
14225
14226 <!-- end of kind -->
14227 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014228 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014229
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014230 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014231 <tr>
14232 <th class="th_name">Property Name</th>
14233 <th class="th_type">Type</th>
14234 <th class="th_description">Description</th>
14235 <th class="th_units">Units</th>
14236 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014237 <th class="th_tags">Tags</th>
14238 </tr>
14239 </thead>
14240
14241 <tbody>
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014253 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014254 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014255 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014256 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014257 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014258
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014259 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014260
14261
14262 </td> <!-- entry_type -->
14263
14264 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014265 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014266tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14267<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 -080014268 </td>
14269
14270 <td class="entry_units">
14271 </td>
14272
14273 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014274 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014275 </td>
14276
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014277 <td class="entry_tags">
14278 </td>
14279
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014280 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014281 <tr class="entries_header">
14282 <th class="th_details" colspan="5">Details</th>
14283 </tr>
14284 <tr class="entry_cont">
14285 <td class="entry_details" colspan="5">
14286 <p>If the actual number of points provided by the application (in
14287android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14288resample the curve to its internal representation,<wbr/> using linear
14289interpolation.<wbr/></p>
14290<p>The output curves in the result metadata may have a different number
14291of points than the input curves,<wbr/> and will represent the actual
14292hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14293 </td>
14294 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014295
Igor Murashkin94e06c42014-01-13 16:51:17 -080014296 <tr class="entries_header">
14297 <th class="th_details" colspan="5">HAL Implementation Details</th>
14298 </tr>
14299 <tr class="entry_cont">
14300 <td class="entry_details" colspan="5">
14301 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14302 </td>
14303 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14306 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014307
14308
14309
14310 <!-- end of kind -->
14311 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014312 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014313
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014314 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014315 <tr>
14316 <th class="th_name">Property Name</th>
14317 <th class="th_type">Type</th>
14318 <th class="th_description">Description</th>
14319 <th class="th_units">Units</th>
14320 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014321 <th class="th_tags">Tags</th>
14322 </tr>
14323 </thead>
14324
14325 <tbody>
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014337 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014338 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014339 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014340 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014341 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014342 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014343
Zhijun He704d1282013-08-19 15:26:33 -070014344 <span class="entry_type_array">
14345 n x 2
14346 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014348 <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 -080014349
14350
14351 </td> <!-- entry_type -->
14352
14353 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014354 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14355channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14356CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014357 </td>
14358
14359 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014360 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014361 </td>
14362
14363 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014364 <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 -080014365 </td>
14366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014367 <td class="entry_tags">
14368 </td>
14369
14370 </tr>
14371 <tr class="entries_header">
14372 <th class="th_details" colspan="5">Details</th>
14373 </tr>
14374 <tr class="entry_cont">
14375 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014376 <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 -080014377 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014378 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014379
14380
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014381 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14382 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014383
14384
14385 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014386 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014387 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014388 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014389 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014390 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014391 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014392
Zhijun He704d1282013-08-19 15:26:33 -070014393 <span class="entry_type_array">
14394 n x 2
14395 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014396 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014397 <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 -080014398
14399
14400 </td> <!-- entry_type -->
14401
14402 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014403 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14404channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14405CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014406 </td>
14407
14408 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014409 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014410 </td>
14411
14412 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014413 <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 -080014414 </td>
14415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014416 <td class="entry_tags">
14417 </td>
14418
14419 </tr>
14420 <tr class="entries_header">
14421 <th class="th_details" colspan="5">Details</th>
14422 </tr>
14423 <tr class="entry_cont">
14424 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014425 <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 -080014426 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014427 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014428
14429
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014430 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14431 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014432
14433
14434 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014435 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014436 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014437 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014438 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014439 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014440 <span class="entry_type_container">x</span>
14441
14442 <span class="entry_type_array">
14443 n x 2
14444 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014445 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014446 <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 -080014447
14448
14449 </td> <!-- entry_type -->
14450
14451 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014452 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14453channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14454CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014455 </td>
14456
14457 <td class="entry_units">
14458 </td>
14459
14460 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014461 <p>0-1 on both input and output coordinates,<wbr/> normalized
14462as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014463 </td>
14464
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014465 <td class="entry_tags">
14466 <ul class="entry_tags">
14467 <li><a href="#tag_DNG">DNG</a></li>
14468 </ul>
14469 </td>
14470
14471 </tr>
14472 <tr class="entries_header">
14473 <th class="th_details" colspan="5">Details</th>
14474 </tr>
14475 <tr class="entry_cont">
14476 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014477 <p>Each channel's curve is defined by an array of control points:</p>
14478<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14479 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
144802 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14481<p>These are sorted in order of increasing <code>Pin</code>; it is always
14482guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14483define a complete mapping.<wbr/> For input values between control points,<wbr/>
14484the camera device must linearly interpolate between the control
14485points.<wbr/></p>
14486<p>Each curve can have an independent number of points,<wbr/> and the number
14487of points can be less than max (that is,<wbr/> the request doesn't have to
14488always provide a curve with number of points equivalent to
14489<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14490<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14491only specify the red channel and the precision is limited to 4
14492digits,<wbr/> for conciseness.<wbr/></p>
14493<p>Linear mapping:</p>
14494<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 ]
14495</code></pre>
14496<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14497<p>Invert mapping:</p>
14498<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 ]
14499</code></pre>
14500<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14501<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14502<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14503 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/>
14504 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/>
14505 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/>
14506 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 ]
14507</code></pre>
14508<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14509<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14510<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14511 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/>
14512 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/>
14513 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/>
14514 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 ]
14515</code></pre>
14516<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014517 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014518 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014519
Igor Murashkin94e06c42014-01-13 16:51:17 -080014520 <tr class="entries_header">
14521 <th class="th_details" colspan="5">HAL Implementation Details</th>
14522 </tr>
14523 <tr class="entry_cont">
14524 <td class="entry_details" colspan="5">
14525 <p>For good quality of mapping,<wbr/> at least 128 control points are
14526preferred.<wbr/></p>
14527<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14528control points used as are available.<wbr/></p>
14529 </td>
14530 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014531
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014532 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14533 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014534
14535
14536 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014537 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014538 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014539 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014540 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014541 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014542
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014543 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014544
14545 <ul class="entry_type_enum">
14546 <li>
14547 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014548 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014549android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14550<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14551for applying the tonemapping curve specified by
14552<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
14553<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14554<p>Must not slow down frame rate relative to raw
14555sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014556 </li>
14557 <li>
14558 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014559 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14560<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014561 </li>
14562 <li>
14563 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014564 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14565<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014566 </li>
14567 </ul>
14568
14569 </td> <!-- entry_type -->
14570
14571 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014572 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014573 </td>
14574
14575 <td class="entry_units">
14576 </td>
14577
14578 <td class="entry_range">
14579 </td>
14580
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014581 <td class="entry_tags">
14582 </td>
14583
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014584 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014585 <tr class="entries_header">
14586 <th class="th_details" colspan="5">Details</th>
14587 </tr>
14588 <tr class="entry_cont">
14589 <td class="entry_details" colspan="5">
14590 <p>When switching to an application-defined contrast curve by setting
14591<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14592per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14593mapping from input high-bit-depth pixel value to the output
14594low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14595and output may change depending on the camera pipeline,<wbr/> the values
14596are specified by normalized floating-point numbers.<wbr/></p>
14597<p>More-complex color mapping operations such as 3D color look-up
14598tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14599transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14600CONTRAST_<wbr/>CURVE.<wbr/></p>
14601<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14602emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14603<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/>
14604These values are always available,<wbr/> and as close as possible to the
14605actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14606<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14607provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14608roughly the same.<wbr/></p>
14609 </td>
14610 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014611
14612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014613 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14614 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014615
14616
14617
14618 <!-- end of kind -->
14619 </tbody>
14620
14621 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014622 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014623
14624
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014625 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014626
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014627 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014628 <tr>
14629 <th class="th_name">Property Name</th>
14630 <th class="th_type">Type</th>
14631 <th class="th_description">Description</th>
14632 <th class="th_units">Units</th>
14633 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014634 <th class="th_tags">Tags</th>
14635 </tr>
14636 </thead>
14637
14638 <tbody>
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014650 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014651 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014652 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014653 <td class="entry_type">
14654 <span class="entry_type_name entry_type_name_enum">byte</span>
14655
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014656 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014657
14658 <ul class="entry_type_enum">
14659 <li>
14660 <span class="entry_type_enum_name">OFF</span>
14661 </li>
14662 <li>
14663 <span class="entry_type_enum_name">ON</span>
14664 </li>
14665 </ul>
14666
14667 </td> <!-- entry_type -->
14668
14669 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014670 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014671that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014672Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014673disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014674any untrusted applications.<wbr/></p>
14675<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14676transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14677data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014678<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014679doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014680 </td>
14681
14682 <td class="entry_units">
14683 </td>
14684
14685 <td class="entry_range">
14686 </td>
14687
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014688 <td class="entry_tags">
14689 </td>
14690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014692
14693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14695 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014696
14697
14698
14699 <!-- end of kind -->
14700 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014701 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014702
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014703 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014704 <tr>
14705 <th class="th_name">Property Name</th>
14706 <th class="th_type">Type</th>
14707 <th class="th_description">Description</th>
14708 <th class="th_units">Units</th>
14709 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014710 <th class="th_tags">Tags</th>
14711 </tr>
14712 </thead>
14713
14714 <tbody>
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014726 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014727 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014728 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014729 <td class="entry_type">
14730 <span class="entry_type_name entry_type_name_enum">byte</span>
14731
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014732 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014733
14734 <ul class="entry_type_enum">
14735 <li>
14736 <span class="entry_type_enum_name">OFF</span>
14737 </li>
14738 <li>
14739 <span class="entry_type_enum_name">ON</span>
14740 </li>
14741 </ul>
14742
14743 </td> <!-- entry_type -->
14744
14745 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014746 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014747that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014748Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014749disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014750any untrusted applications.<wbr/></p>
14751<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14752transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14753data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014754<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014755doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014756 </td>
14757
14758 <td class="entry_units">
14759 </td>
14760
14761 <td class="entry_range">
14762 </td>
14763
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014764 <td class="entry_tags">
14765 </td>
14766
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014767 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014768
14769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014770 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14771 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014772
14773
14774
14775 <!-- end of kind -->
14776 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014777 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014778
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014779 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014780 <tr>
14781 <th class="th_name">Property Name</th>
14782 <th class="th_type">Type</th>
14783 <th class="th_description">Description</th>
14784 <th class="th_units">Units</th>
14785 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014786 <th class="th_tags">Tags</th>
14787 </tr>
14788 </thead>
14789
14790 <tbody>
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014802 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014803 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014804 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014805 <td class="entry_type">
14806 <span class="entry_type_name entry_type_name_enum">byte</span>
14807 <span class="entry_type_container">x</span>
14808
14809 <span class="entry_type_array">
14810 n
14811 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014812 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014813
14814 <ul class="entry_type_enum">
14815 <li>
14816 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014817 <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 -070014818 </li>
14819 </ul>
14820
14821 </td> <!-- entry_type -->
14822
14823 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014824 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014825 </td>
14826
14827 <td class="entry_units">
14828 </td>
14829
14830 <td class="entry_range">
14831 </td>
14832
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014833 <td class="entry_tags">
14834 </td>
14835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014837
14838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014839 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14840 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014841
14842
14843
14844 <!-- end of kind -->
14845 </tbody>
14846
14847 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014848 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014849
14850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014851 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014852
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014853 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014854 <tr>
14855 <th class="th_name">Property Name</th>
14856 <th class="th_type">Type</th>
14857 <th class="th_description">Description</th>
14858 <th class="th_units">Units</th>
14859 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014860 <th class="th_tags">Tags</th>
14861 </tr>
14862 </thead>
14863
14864 <tbody>
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014876 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014877 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014878 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014879 <td class="entry_type">
14880 <span class="entry_type_name entry_type_name_enum">byte</span>
14881
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014882 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014883
14884 <ul class="entry_type_enum">
14885 <li>
14886 <span class="entry_type_enum_name">LIMITED</span>
14887 </li>
14888 <li>
14889 <span class="entry_type_enum_name">FULL</span>
14890 </li>
14891 </ul>
14892
14893 </td> <!-- entry_type -->
14894
14895 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014896 <p>The camera 3 HAL device can implement one of two possible
14897operational modes; limited and full.<wbr/> Full support is
14898expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014899hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014900camera HAL device v1 implementation,<wbr/> and is expected from
14901older or inexpensive devices.<wbr/> Full is a strict superset of
14902limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14903<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014904 </td>
14905
14906 <td class="entry_units">
14907 </td>
14908
14909 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014910 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014911 </td>
14912
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014913 <td class="entry_tags">
14914 </td>
14915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014916 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014917
14918
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 -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014921
14922
14923
14924 <!-- end of kind -->
14925 </tbody>
14926
14927 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014928 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014929
14930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014931 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014932
14933 <thead class="entries_header">
14934 <tr>
14935 <th class="th_name">Property Name</th>
14936 <th class="th_type">Type</th>
14937 <th class="th_description">Description</th>
14938 <th class="th_units">Units</th>
14939 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014940 <th class="th_tags">Tags</th>
14941 </tr>
14942 </thead>
14943
14944 <tbody>
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014956 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014957 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014958 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014959 <td class="entry_type">
14960 <span class="entry_type_name entry_type_name_enum">byte</span>
14961
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014962 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014963
14964 <ul class="entry_type_enum">
14965 <li>
14966 <span class="entry_type_enum_name">OFF</span>
14967 </li>
14968 <li>
14969 <span class="entry_type_enum_name">ON</span>
14970 </li>
14971 </ul>
14972
14973 </td> <!-- entry_type -->
14974
14975 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014976 <p>Whether black-level compensation is locked
14977to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014978 </td>
14979
14980 <td class="entry_units">
14981 </td>
14982
14983 <td class="entry_range">
14984 </td>
14985
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014986 <td class="entry_tags">
14987 <ul class="entry_tags">
14988 <li><a href="#tag_HAL2">HAL2</a></li>
14989 </ul>
14990 </td>
14991
14992 </tr>
14993 <tr class="entries_header">
14994 <th class="th_details" colspan="5">Details</th>
14995 </tr>
14996 <tr class="entry_cont">
14997 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014998 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014999compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015000OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015001<p>Since changes to certain capture parameters (such as
15002exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015003compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015004the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015005metadata.<wbr/></p>
15006<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015007<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015008<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15009<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15010<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15011<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15012<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15013<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015014</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015015<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015016device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015017result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015018<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015019<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15020<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15021<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15022<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15023<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15024<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015025</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015026<p>This indicates to the application that on frame 4,<wbr/> black
15027levels were reset due to exposure value changes,<wbr/> and pixel
15028values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015029<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015030possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015031other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015032or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015033 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015034 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015035
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015036 <tr class="entries_header">
15037 <th class="th_details" colspan="5">HAL Implementation Details</th>
15038 </tr>
15039 <tr class="entry_cont">
15040 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015041 <p>If for some reason black level locking is no longer possible
15042(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15043black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015044override this request (and it must report 'OFF' when this
15045does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015046possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015047 </td>
15048 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015049
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015050 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15051 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015052
15053
15054
15055 <!-- end of kind -->
15056 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015057 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015058
15059 <thead class="entries_header">
15060 <tr>
15061 <th class="th_name">Property Name</th>
15062 <th class="th_type">Type</th>
15063 <th class="th_description">Description</th>
15064 <th class="th_units">Units</th>
15065 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015066 <th class="th_tags">Tags</th>
15067 </tr>
15068 </thead>
15069
15070 <tbody>
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015082 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015083 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015084 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015085 <td class="entry_type">
15086 <span class="entry_type_name entry_type_name_enum">byte</span>
15087
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015088 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015089
15090 <ul class="entry_type_enum">
15091 <li>
15092 <span class="entry_type_enum_name">OFF</span>
15093 </li>
15094 <li>
15095 <span class="entry_type_enum_name">ON</span>
15096 </li>
15097 </ul>
15098
15099 </td> <!-- entry_type -->
15100
15101 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015102 <p>Whether black-level compensation is locked
15103to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015104 </td>
15105
15106 <td class="entry_units">
15107 </td>
15108
15109 <td class="entry_range">
15110 </td>
15111
Zhijun He69fc0ea2013-07-17 09:42:58 -070015112 <td class="entry_tags">
15113 <ul class="entry_tags">
15114 <li><a href="#tag_HAL2">HAL2</a></li>
15115 </ul>
15116 </td>
15117
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015118 </tr>
15119 <tr class="entries_header">
15120 <th class="th_details" colspan="5">Details</th>
15121 </tr>
15122 <tr class="entry_cont">
15123 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015124 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015125ON 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 -080015126a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015127perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015128 </td>
15129 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015130
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015131 <tr class="entries_header">
15132 <th class="th_details" colspan="5">HAL Implementation Details</th>
15133 </tr>
15134 <tr class="entry_cont">
15135 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015136 <p>If for some reason black level locking is no longer possible
15137(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15138black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015139override this request (and it must report 'OFF' when this
15140does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015141possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015142 </td>
15143 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015144
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015145 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15146 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015147
15148
15149
15150 <!-- end of kind -->
15151 </tbody>
15152
15153 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015154 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15155
15156
15157 <tr><td colspan="6" class="kind">dynamic</td></tr>
15158
15159 <thead class="entries_header">
15160 <tr>
15161 <th class="th_name">Property Name</th>
15162 <th class="th_type">Type</th>
15163 <th class="th_description">Description</th>
15164 <th class="th_units">Units</th>
15165 <th class="th_range">Range</th>
15166 <th class="th_tags">Tags</th>
15167 </tr>
15168 </thead>
15169
15170 <tbody>
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181 <tr class="entry" id="dynamic_android.sync.frameNumber">
15182 <td class="entry_name" rowspan="5">
15183 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15184 </td>
15185 <td class="entry_type">
15186 <span class="entry_type_name entry_type_name_enum">int64</span>
15187
15188 <span class="entry_type_visibility"> [hidden]</span>
15189
15190 <ul class="entry_type_enum">
15191 <li>
15192 <span class="entry_type_enum_name">CONVERGING</span>
15193 <span class="entry_type_enum_value">-1</span>
15194 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15195Synchronization is in progress,<wbr/> and reading metadata from this
15196result may include a mix of data that have taken effect since the
15197last synchronization time.<wbr/></p>
15198<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15199this value will update to the actual frame number frame number
15200the result is guaranteed to be synchronized to (as long as the
15201request settings remain constant).<wbr/></p></span>
15202 </li>
15203 <li>
15204 <span class="entry_type_enum_name">UNKNOWN</span>
15205 <span class="entry_type_enum_value">-2</span>
15206 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15207result may have already converged,<wbr/> or it may be in progress.<wbr/>
15208Reading from this result may include some mix of settings from
15209past requests.<wbr/></p>
15210<p>After a settings change,<wbr/> the new settings will eventually all
15211take effect for the output buffers and results.<wbr/> However,<wbr/> this
15212value will not change when that happens.<wbr/> Altering settings
15213rapidly may provide outcomes using mixes of settings from recent
15214requests.<wbr/></p>
15215<p>This value is intended primarily for backwards compatibility with
15216the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15217 </li>
15218 </ul>
15219
15220 </td> <!-- entry_type -->
15221
15222 <td class="entry_description">
15223 <p>The frame number corresponding to the last request
15224with which the output result (metadata + buffers) has been fully
15225synchronized.<wbr/></p>
15226 </td>
15227
15228 <td class="entry_units">
15229 </td>
15230
15231 <td class="entry_range">
15232 <p>Either a non-negative value corresponding to a
15233<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15234 </td>
15235
15236 <td class="entry_tags">
15237 <ul class="entry_tags">
15238 <li><a href="#tag_LIMITED">LIMITED</a></li>
15239 </ul>
15240 </td>
15241
15242 </tr>
15243 <tr class="entries_header">
15244 <th class="th_details" colspan="5">Details</th>
15245 </tr>
15246 <tr class="entry_cont">
15247 <td class="entry_details" colspan="5">
15248 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15249delay of several frames before the controls get applied.<wbr/> A camera
15250device may either choose to account for this delay by implementing a
15251pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15252it may start streaming control changes that span over several frame
15253boundaries.<wbr/></p>
15254<p>In the latter case,<wbr/> whenever a request's settings change relative to
15255the previous submitted request,<wbr/> the full set of changes may take
15256multiple frame durations to fully take effect.<wbr/> Some settings may
15257take effect sooner (in less frame durations) than others.<wbr/></p>
15258<p>While a set of control changes are being propagated,<wbr/> this value
15259will be CONVERGING.<wbr/></p>
15260<p>Once it is fully known that a set of control changes have been
15261finished propagating,<wbr/> and the resulting updated control settings
15262have been read back by the camera device,<wbr/> this value will be set
15263to a non-negative frame number (corresponding to the request to
15264which the results have synchronized to).<wbr/></p>
15265<p>Older camera device implementations may not have a way to detect
15266when all camera controls have been applied,<wbr/> and will always set this
15267value to UNKNOWN.<wbr/></p>
15268<p>FULL capability devices will always have this value set to the
15269frame number of the request corresponding to this result.<wbr/></p>
15270<p><em>Further details</em>:</p>
15271<ul>
15272<li>Whenever a request differs from the last request,<wbr/> any future
15273results not yet returned may have this value set to CONVERGING (this
15274could include any in-progress captures not yet returned by the camera
15275device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15276<li>Submitting a series of multiple requests that differ from the
15277previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15278moves the new synchronization frame to the last non-repeating
15279request (using the smallest frame number from the contiguous list of
15280repeating requests).<wbr/></li>
15281<li>Submitting the same request repeatedly will not change this value
15282to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15283<li>When this value changes to non-negative,<wbr/> that means that all of the
15284metadata controls from the request have been applied,<wbr/> all of the
15285metadata controls from the camera device have been read to the
15286updated values (into the result),<wbr/> and all of the graphics buffers
15287corresponding to this result are also synchronized to the request.<wbr/></li>
15288</ul>
15289<p><em>Pipeline considerations</em>:</p>
15290<p>Submitting a request with updated controls relative to the previously
15291submitted requests may also invalidate the synchronization state
15292of all the results corresponding to currently in-flight requests.<wbr/></p>
15293<p>In other words,<wbr/> results for this current request and up to
15294<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15295<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15296 </td>
15297 </tr>
15298
15299 <tr class="entries_header">
15300 <th class="th_details" colspan="5">HAL Implementation Details</th>
15301 </tr>
15302 <tr class="entry_cont">
15303 <td class="entry_details" colspan="5">
15304 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15305is also UNKNOWN.<wbr/></p>
15306<p>FULL capability devices should simply set this value to the
15307<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15308 </td>
15309 </tr>
15310
15311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15312 <!-- end of entry -->
15313
15314
15315
15316 <!-- end of kind -->
15317 </tbody>
15318 <tr><td colspan="6" class="kind">static</td></tr>
15319
15320 <thead class="entries_header">
15321 <tr>
15322 <th class="th_name">Property Name</th>
15323 <th class="th_type">Type</th>
15324 <th class="th_description">Description</th>
15325 <th class="th_units">Units</th>
15326 <th class="th_range">Range</th>
15327 <th class="th_tags">Tags</th>
15328 </tr>
15329 </thead>
15330
15331 <tbody>
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342 <tr class="entry" id="static_android.sync.maxLatency">
15343 <td class="entry_name" rowspan="5">
15344 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15345 </td>
15346 <td class="entry_type">
15347 <span class="entry_type_name entry_type_name_enum">int32</span>
15348
15349 <span class="entry_type_visibility"> [public]</span>
15350
15351 <ul class="entry_type_enum">
15352 <li>
15353 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15354 <span class="entry_type_enum_value">0</span>
15355 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15356(and furthermore for all results,<wbr/>
15357<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>
15358<p>Changing controls over multiple requests one after another will
15359produce results that have those controls applied atomically
15360each frame.<wbr/></p>
15361<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15362 </li>
15363 <li>
15364 <span class="entry_type_enum_name">UNKNOWN</span>
15365 <span class="entry_type_enum_value">-1</span>
15366 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15367of the past requests applied to the camera settings.<wbr/></p>
15368<p>By submitting a series of identical requests,<wbr/> the camera device
15369will eventually have the camera settings applied,<wbr/> but it is
15370unknown when that exact point will be.<wbr/></p></span>
15371 </li>
15372 </ul>
15373
15374 </td> <!-- entry_type -->
15375
15376 <td class="entry_description">
15377 <p>The maximum number of frames that can occur after a request
15378(different than the previous) has been submitted,<wbr/> and before the
15379result's state becomes synchronized (by setting
15380<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15381 </td>
15382
15383 <td class="entry_units">
15384 number of processed requests
15385 </td>
15386
15387 <td class="entry_range">
15388 <p>&gt;= -1</p>
15389 </td>
15390
15391 <td class="entry_tags">
15392 <ul class="entry_tags">
15393 <li><a href="#tag_LIMITED">LIMITED</a></li>
15394 </ul>
15395 </td>
15396
15397 </tr>
15398 <tr class="entries_header">
15399 <th class="th_details" colspan="5">Details</th>
15400 </tr>
15401 <tr class="entry_cont">
15402 <td class="entry_details" colspan="5">
15403 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15404between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15405<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15406<p>In other words this acts as an upper boundary for how many frames
15407must occur before the camera device knows for a fact that the new
15408submitted camera settings have been applied in outgoing frames.<wbr/></p>
15409<p>For example if the distance was 2,<wbr/></p>
15410<pre><code>initial request = X (repeating)
15411request1 = X
15412request2 = Y
15413request3 = Y
15414request4 = Y
15415
15416where requestN has frameNumber N,<wbr/> and the first of the repeating
15417initial request's has frameNumber F (and F &lt; 1).<wbr/>
15418
15419initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15420result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15421result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15422result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15423result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15424
15425where resultN has frameNumber N.<wbr/>
15426</code></pre>
15427<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15428<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15429<code>4 - 2 = 2</code>.<wbr/></p>
15430 </td>
15431 </tr>
15432
15433 <tr class="entries_header">
15434 <th class="th_details" colspan="5">HAL Implementation Details</th>
15435 </tr>
15436 <tr class="entry_cont">
15437 <td class="entry_details" colspan="5">
15438 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15439<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15440<p>LIMITED devices are strongly encouraged to use a non-negative
15441value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15442to know when sensor settings have been applied.<wbr/></p>
15443 </td>
15444 </tr>
15445
15446 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15447 <!-- end of entry -->
15448
15449
15450
15451 <!-- end of kind -->
15452 </tbody>
15453
15454 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015455<!-- </namespace> -->
15456 </table>
15457
15458 <div class="tags" id="tag_index">
15459 <h2>Tags</h2>
15460 <ul>
15461 <li id="tag_AWB">AWB -
15462 Needed for auto white balance
15463
15464 <ul class="tags_entries">
15465 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15466 </ul>
15467 </li> <!-- tag_AWB -->
15468 <li id="tag_BC">BC -
15469 Needed for backwards compatibility with old Java API
15470
15471 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015472 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015473 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15474 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15475 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15476 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15477 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015478 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015479 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15480 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015481 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015482 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15483 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15484 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15485 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15486 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15487 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15488 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15489 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015490 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015491 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15492 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15493 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15494 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15495 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15496 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15497 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15498 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15499 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15500 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15501 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15502 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15503 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15504 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15505 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15506 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15507 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15508 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15509 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15510 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15511 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15512 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15513 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15514 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15515 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15516 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15517 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15518 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015519 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015520 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15521 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15522 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015523 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015524 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015525 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15526 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15527 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15528 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15529 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15530 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15531 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15532 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15533 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15534 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15535 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15536 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15537 </ul>
15538 </li> <!-- tag_BC -->
15539 <li id="tag_V1">V1 -
15540 New features for first camera 2 release (API1)
15541
15542 <ul class="tags_entries">
15543 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15544 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15545 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15546 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15547 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15548 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15549 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15550 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15551 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15552 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15553 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15554 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15555 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15556 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15557 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15558 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15559 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15560 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15561 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15562 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15563 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15564 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15565 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15566 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015567 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015568 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15569 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15570 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15571 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15572 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15573 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15574 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15575 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15576 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15577 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15578 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15579 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15580 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15581 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15582 </ul>
15583 </li> <!-- tag_V1 -->
15584 <li id="tag_ADV">ADV - None
15585 <ul class="tags_entries">
15586 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15587 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15588 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15589 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15590 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15591 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15592 </ul>
15593 </li> <!-- tag_ADV -->
15594 <li id="tag_DNG">DNG -
15595 Needed for DNG file support
15596
15597 <ul class="tags_entries">
15598 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015599 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15600 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15601 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15602 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15603 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15604 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15605 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15606 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15607 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15608 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15609 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15610 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15611 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15612 </ul>
15613 </li> <!-- tag_DNG -->
15614 <li id="tag_EXIF">EXIF - None
15615 <ul class="tags_entries">
15616 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15617 </ul>
15618 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015619 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015620 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015621
15622 <ul class="tags_entries">
15623 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15624 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15625 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015626 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015627 </ul>
15628 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015629 <li id="tag_FULL">FULL -
15630 Entry is required for full hardware level devices, and optional for other hardware levels
15631
15632 <ul class="tags_entries">
15633 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15634 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15635 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15636 </ul>
15637 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015638 <li id="tag_LIMITED">LIMITED -
15639 Entry assists with LIMITED device implementation. LIMITED devices
15640 must implement all entries with this tag. Optional for FULL devices.
15641
15642 <ul class="tags_entries">
15643 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15644 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15645 </ul>
15646 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015647 </ul>
15648 </div>
15649
15650 [ <a href="#">top</a> ]
15651
15652</body>
15653</html>