blob: cc54f76b353661c07fff80e6542e4a859b4ca8be [file] [log] [blame]
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001<!DOCTYPE html>
2<html>
3<!-- Copyright (C) 2012 The Android Open Source Project
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16-->
17<head>
18 <!-- automatically generated from html.mako. do NOT edit directly -->
19 <meta charset="utf-8" />
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070020 <title>Android Camera HAL3.0 Properties</title>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021 <style type="text/css">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022 body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
23 h1 { color: #333333; }
24 h2 { color: #333333; }
25 a:link { color: #258aaf; text-decoration: none}
26 a:hover { color: #459aaf; text-decoration: underline }
27 a:visited { color: #154a5f; text-decoration: none}
28 .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
29 .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
30 .entry { background-color: #f0f0f0 }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080031 .entry_cont { background-color: #f0f0f0 }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070032 .entries_header { background-color: #dddddd; text-align: center}
33
34 /* toc style */
35 .toc_section_header { font-size:1.3em; }
36 .toc_kind_header { font-size:1.2em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080037
38 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070039 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080041 .th_name { width: 20% }
42 .th_units { width: 10% }
43 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080044 .th_details { width: 25% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080045 .th_type { width: 20% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070046 .th_description { width: 20% }
47 .th_range { width: 10% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080048 td { font-size: 0.9em; }
49
50 /* hide the first thead, we need it there only to enforce column sizes */
51 .thead_dummy { visibility: hidden; }
52
53 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080054 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080055
56 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070057 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin08b8aad2012-11-29 15:23:03 -080060 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080062 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080063 .entry_type_enum_value:before { content:" = " }
64 .entry_type_enum_value { font-family: monospace; }
65 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68 /* Entry tags flair */
69 .entry_tags ul { list-style-type: none; }
70
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080071 /* Entry details (full docs) flair */
72 .entry_details_header { font-weight: bold; background-color: #dddddd;
73 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75 /* Entry spacer flair */
76 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080077
78 /* TODO: generate abbr element for each tag link? */
79 /* TODO for each x.y.z try to link it to the entry */
80
81 </style>
82
83 <style>
84
85 {
86 /* broken...
87 supposedly there is a bug in chrome that it lays out tables before
88 it knows its being printed, so the page-break-* styles are ignored
89 */
90 tr { page-break-after: always; page-break-inside: avoid; }
91 }
92
93 </style>
94</head>
95
96
97
Igor Murashkin08b8aad2012-11-29 15:23:03 -080098<body>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070099 <h1>Android Camera HAL3.0 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700101
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800102 <h2>Table of Contents</h2>
103 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700104 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105 <li>
106 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107 <ul class="toc_section">
108 <li>
109 <span class="toc_kind_header">controls</span>
110 <ul class="toc_section">
111 <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112 <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700113 <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700114 </ul>
115 </li>
116 <li>
117 <span class="toc_kind_header">dynamic</span>
118 <ul class="toc_section">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700119 <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120 <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700121 </ul>
122 </li>
123 </ul> <!-- toc_section -->
124 </li>
125 <li>
126 <span class="toc_section_header"><a href="#section_control">control</a></span>
127 <ul class="toc_section">
128 <li>
129 <span class="toc_kind_header">controls</span>
130 <ul class="toc_section">
131 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138 <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146 <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149 </ul>
150 </li>
151 <li>
152 <span class="toc_kind_header">static</span>
153 <ul class="toc_section">
154 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166 </ul>
167 </li>
168 <li>
169 <span class="toc_kind_header">dynamic</span>
170 <ul class="toc_section">
171 <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -0800172 <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700173 <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174 <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175 <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176 <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177 <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178 <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179 <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180 <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181 <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182 <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183 </ul>
184 </li>
185 </ul> <!-- toc_section -->
186 </li>
187 <li>
188 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189 <ul class="toc_section">
190 <li>
191 <span class="toc_kind_header">controls</span>
192 <ul class="toc_section">
193 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194 </ul>
195 </li>
196 </ul> <!-- toc_section -->
197 </li>
198 <li>
199 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200 <ul class="toc_section">
201 <li>
202 <span class="toc_kind_header">controls</span>
203 <ul class="toc_section">
204 <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205 <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206 </ul>
207 </li>
208 <li>
209 <span class="toc_kind_header">dynamic</span>
210 <ul class="toc_section">
211 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212 </ul>
213 </li>
214 </ul> <!-- toc_section -->
215 </li>
216 <li>
217 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218 <ul class="toc_section">
219 <li>
220 <span class="toc_kind_header">controls</span>
221 <ul class="toc_section">
222 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224 <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225 </ul>
226 </li>
227 <li>
228 <span class="toc_kind_header">static</span>
229 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800230
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700231 <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700234 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236 </ul>
237 </li>
238 <li>
239 <span class="toc_kind_header">dynamic</span>
240 <ul class="toc_section">
241 <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242 <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243 <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244 <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245 </ul>
246 </li>
247 </ul> <!-- toc_section -->
248 </li>
249 <li>
250 <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251 <ul class="toc_section">
252 <li>
253 <span class="toc_kind_header">controls</span>
254 <ul class="toc_section">
255 <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257 </ul>
258 </li>
259 </ul> <!-- toc_section -->
260 </li>
261 <li>
262 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263 <ul class="toc_section">
264 <li>
265 <span class="toc_kind_header">controls</span>
266 <ul class="toc_section">
267 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268 </ul>
269 </li>
270 <li>
271 <span class="toc_kind_header">static</span>
272 <ul class="toc_section">
273
274 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276 </ul>
277 </li>
278 <li>
279 <span class="toc_kind_header">dynamic</span>
280 <ul class="toc_section">
281 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282 </ul>
283 </li>
284 </ul> <!-- toc_section -->
285 </li>
286 <li>
287 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288 <ul class="toc_section">
289 <li>
290 <span class="toc_kind_header">controls</span>
291 <ul class="toc_section">
292 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299 </ul>
300 </li>
301 <li>
302 <span class="toc_kind_header">static</span>
303 <ul class="toc_section">
304 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305 <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306 </ul>
307 </li>
308 <li>
309 <span class="toc_kind_header">dynamic</span>
310 <ul class="toc_section">
311 <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312 <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313 <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314 <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315 <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317 <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318 <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319 </ul>
320 </li>
321 </ul> <!-- toc_section -->
322 </li>
323 <li>
324 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325 <ul class="toc_section">
326 <li>
327 <span class="toc_kind_header">controls</span>
328 <ul class="toc_section">
329 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334 </ul>
335 </li>
336 <li>
337 <span class="toc_kind_header">static</span>
338 <ul class="toc_section">
339
340 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700348 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349
350 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
351 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
352 <li><a href="#static_android.lens.position">android.lens.position</a></li>
353 </ul>
354 </li>
355 <li>
356 <span class="toc_kind_header">dynamic</span>
357 <ul class="toc_section">
358 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
359 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
360 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
361 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
362 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
363 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
364 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
365 </ul>
366 </li>
367 </ul> <!-- toc_section -->
368 </li>
369 <li>
370 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
371 <ul class="toc_section">
372 <li>
373 <span class="toc_kind_header">controls</span>
374 <ul class="toc_section">
375 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
376 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
377 </ul>
378 </li>
379 <li>
380 <span class="toc_kind_header">dynamic</span>
381 <ul class="toc_section">
382 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
383 </ul>
384 </li>
385 </ul> <!-- toc_section -->
386 </li>
387 <li>
388 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
389 <ul class="toc_section">
390 <li>
391 <span class="toc_kind_header">static</span>
392 <ul class="toc_section">
393 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
394 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
395 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700396 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
397 </ul>
398 </li>
399 <li>
400 <span class="toc_kind_header">dynamic</span>
401 <ul class="toc_section">
402 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700403 </ul>
404 </li>
405 </ul> <!-- toc_section -->
406 </li>
407 <li>
408 <span class="toc_section_header"><a href="#section_request">request</a></span>
409 <ul class="toc_section">
410 <li>
411 <span class="toc_kind_header">controls</span>
412 <ul class="toc_section">
413 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
414 <li><a href="#controls_android.request.id">android.request.id</a></li>
415 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
416 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
417 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
418 <li><a href="#controls_android.request.type">android.request.type</a></li>
419 </ul>
420 </li>
421 <li>
422 <span class="toc_kind_header">static</span>
423 <ul class="toc_section">
424 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
425 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800426 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800427 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700428 </ul>
429 </li>
430 <li>
431 <span class="toc_kind_header">dynamic</span>
432 <ul class="toc_section">
433 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
434 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
435 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
436 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800437 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700438 </ul>
439 </li>
440 </ul> <!-- toc_section -->
441 </li>
442 <li>
443 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
444 <ul class="toc_section">
445 <li>
446 <span class="toc_kind_header">controls</span>
447 <ul class="toc_section">
448 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
449 </ul>
450 </li>
451 <li>
452 <span class="toc_kind_header">static</span>
453 <ul class="toc_section">
454 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
455 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
456 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
457 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
458 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
459 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
460 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
462 </ul>
463 </li>
464 <li>
465 <span class="toc_kind_header">dynamic</span>
466 <ul class="toc_section">
467 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
478 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
479 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
480 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800481 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
482 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700483 </ul>
484 </li>
485 <li>
486 <span class="toc_kind_header">static</span>
487 <ul class="toc_section">
488
489 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700490 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700491 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
492 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
493 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
494 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
495 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
496 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
497
498 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
499 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
500 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
501 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
502 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
503 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
504 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
505 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
506 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
507 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
508 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
509 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
510 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800511 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700512 </ul>
513 </li>
514 <li>
515 <span class="toc_kind_header">dynamic</span>
516 <ul class="toc_section">
517 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
518 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
519 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
520 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700521 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800522 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700523 </ul>
524 </li>
525 </ul> <!-- toc_section -->
526 </li>
527 <li>
528 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
529 <ul class="toc_section">
530 <li>
531 <span class="toc_kind_header">controls</span>
532 <ul class="toc_section">
533 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
534 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
535 </ul>
536 </li>
537 <li>
538 <span class="toc_kind_header">dynamic</span>
539 <ul class="toc_section">
540 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
541 </ul>
542 </li>
543 </ul> <!-- toc_section -->
544 </li>
545 <li>
546 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
547 <ul class="toc_section">
548 <li>
549 <span class="toc_kind_header">controls</span>
550 <ul class="toc_section">
551 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
552 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
553 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700554 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700555 </ul>
556 </li>
557 <li>
558 <span class="toc_kind_header">static</span>
559 <ul class="toc_section">
560
561 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
562 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
563 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
564 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
565 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
566 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
567
568 </ul>
569 </li>
570 <li>
571 <span class="toc_kind_header">dynamic</span>
572 <ul class="toc_section">
573 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
574 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
575 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
576 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
577 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
578 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
579 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
580 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
581 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700582 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
583 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
584 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
585 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700586 </ul>
587 </li>
588 </ul> <!-- toc_section -->
589 </li>
590 <li>
591 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
592 <ul class="toc_section">
593 <li>
594 <span class="toc_kind_header">controls</span>
595 <ul class="toc_section">
596 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
597 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
598 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
599 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
600 </ul>
601 </li>
602 <li>
603 <span class="toc_kind_header">static</span>
604 <ul class="toc_section">
605 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
611 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
612 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
613 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
614 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
615 </ul>
616 </li>
617 </ul> <!-- toc_section -->
618 </li>
619 <li>
620 <span class="toc_section_header"><a href="#section_led">led</a></span>
621 <ul class="toc_section">
622 <li>
623 <span class="toc_kind_header">controls</span>
624 <ul class="toc_section">
625 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
626 </ul>
627 </li>
628 <li>
629 <span class="toc_kind_header">dynamic</span>
630 <ul class="toc_section">
631 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
632 </ul>
633 </li>
634 <li>
635 <span class="toc_kind_header">static</span>
636 <ul class="toc_section">
637 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
638 </ul>
639 </li>
640 </ul> <!-- toc_section -->
641 </li>
642 <li>
643 <span class="toc_section_header"><a href="#section_info">info</a></span>
644 <ul class="toc_section">
645 <li>
646 <span class="toc_kind_header">static</span>
647 <ul class="toc_section">
648 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
649 </ul>
650 </li>
651 </ul> <!-- toc_section -->
652 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700653 <li>
654 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
655 <ul class="toc_section">
656 <li>
657 <span class="toc_kind_header">controls</span>
658 <ul class="toc_section">
659 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
660 </ul>
661 </li>
662 <li>
663 <span class="toc_kind_header">dynamic</span>
664 <ul class="toc_section">
665 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
666 </ul>
667 </li>
668 </ul> <!-- toc_section -->
669 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800670 <li>
671 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
672 <ul class="toc_section">
673 <li>
674 <span class="toc_kind_header">dynamic</span>
675 <ul class="toc_section">
676 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
677 </ul>
678 </li>
679 <li>
680 <span class="toc_kind_header">static</span>
681 <ul class="toc_section">
682 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
683 </ul>
684 </li>
685 </ul> <!-- toc_section -->
686 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800687 </ul>
688
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700689
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 <h1>Properties</h1>
691 <table class="properties">
692
693 <thead class="thead_dummy">
694 <tr>
695 <th class="th_name">Property Name</th>
696 <th class="th_type">Type</th>
697 <th class="th_description">Description</th>
698 <th class="th_units">Units</th>
699 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800700 <th class="th_tags">Tags</th>
701 </tr>
702 </thead> <!-- so that the first occurrence of thead is not
703 above the first occurrence of tr -->
704<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800705 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800706
707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700710 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800711 <tr>
712 <th class="th_name">Property Name</th>
713 <th class="th_type">Type</th>
714 <th class="th_description">Description</th>
715 <th class="th_units">Units</th>
716 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800717 <th class="th_tags">Tags</th>
718 </tr>
719 </thead>
720
721 <tbody>
722
723
724
725
726
727
728
729
730
731
732 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800733 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800734 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800735 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800736 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800737 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800738
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700739 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800740
741 <ul class="entry_type_enum">
742 <li>
743 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800744 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
Igor Murashkin43817ad2014-01-10 15:58:35 -0800745and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
746<p>All advanced white balance adjustments (not specified
747by our white balance pipeline) must be disabled.<wbr/></p>
748<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
749TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
750this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800751 </li>
752 <li>
753 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800754 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
755output.<wbr/></p>
756<p>Advanced white balance adjustments above and beyond
757the specified white balance pipeline may be applied.<wbr/></p>
758<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
759the camera device uses the last frame's AWB values
760(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800761 </li>
762 <li>
763 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800764 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
765may be reduced by high quality.<wbr/></p>
766<p>Advanced white balance adjustments above and beyond
767the specified white balance pipeline may be applied.<wbr/></p>
768<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
769the camera device uses the last frame's AWB values
770(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800771 </li>
772 </ul>
773
774 </td> <!-- entry_type -->
775
776 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800777 <p>The mode control selects how the image data is converted from the
778sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800779 </td>
780
781 <td class="entry_units">
782 </td>
783
784 <td class="entry_range">
785 </td>
786
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800787 <td class="entry_tags">
788 </td>
789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800790 </tr>
791 <tr class="entries_header">
792 <th class="th_details" colspan="5">Details</th>
793 </tr>
794 <tr class="entry_cont">
795 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800796 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
797control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
798application controls how the color mapping is performed.<wbr/></p>
799<p>We define the expected processing pipeline below.<wbr/> For consistency
800across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
801<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
802do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
803<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
804camera device (in the results) and be roughly correct.<wbr/></p>
805<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
806FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
807as what was produced by the camera device in the earlier frame.<wbr/></p>
808<p>The expected processing pipeline is as follows:</p>
809<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
810<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
811gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
812matrix (applied after demosaic).<wbr/></p>
813<p>The 4-channel white-balance gains are defined as:</p>
814<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
815</code></pre>
816<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
817output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
818These may be identical for a given camera device implementation; if
819the camera device does not support a separate gain for even/<wbr/>odd green
820channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
821<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
822<p>The matrices for color transforms are defined as a 9-entry vector:</p>
823<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
824</code></pre>
825<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
826to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
827<p>with colors as follows:</p>
828<pre><code>r' = I0r + I1g + I2b
829g' = I3r + I4g + I5b
830b' = I6r + I7g + I8b
831</code></pre>
832<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
833values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800834 </td>
835 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800836
837
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800838 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
839 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800840
841
842 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800843 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800844 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800846 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700847 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800848 <span class="entry_type_container">x</span>
849
850 <span class="entry_type_array">
851 3 x 3
852 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800854 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800855
856
857 </td> <!-- entry_type -->
858
859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800860 <p>A color transform matrix to use to transform
861from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800862 </td>
863
864 <td class="entry_units">
865 </td>
866
867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800868 <p>Output values are expected to be in the range
869(0,<wbr/>1)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800870 </td>
871
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800872 <td class="entry_tags">
873 </td>
874
875 </tr>
876 <tr class="entries_header">
877 <th class="th_details" colspan="5">Details</th>
878 </tr>
879 <tr class="entry_cont">
880 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800881 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800883directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -0800885<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800886for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -0800887reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700888 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800890
891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
893 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700894
895
896 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800898 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800899 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700900 <td class="entry_type">
901 <span class="entry_type_name">float</span>
902 <span class="entry_type_container">x</span>
903
904 <span class="entry_type_array">
905 4
906 </span>
907 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800908 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700909
910
911 </td> <!-- entry_type -->
912
913 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800914 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800915white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700916 </td>
917
918 <td class="entry_units">
919 </td>
920
921 <td class="entry_range">
922 </td>
923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800924 <td class="entry_tags">
925 </td>
926
927 </tr>
928 <tr class="entries_header">
929 <th class="th_details" colspan="5">Details</th>
930 </tr>
931 <tr class="entry_cont">
932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800933 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800934the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
935for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
936is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800937does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800938it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
939<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800940<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800941<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800942directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800944<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800945the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800946 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800948
949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800952
953
954
955 <!-- end of kind -->
956 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800957 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700959 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800960 <tr>
961 <th class="th_name">Property Name</th>
962 <th class="th_type">Type</th>
963 <th class="th_description">Description</th>
964 <th class="th_units">Units</th>
965 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800966 <th class="th_tags">Tags</th>
967 </tr>
968 </thead>
969
970 <tbody>
971
972
973
974
975
976
977
978
979
980
Zhijun He69fc0ea2013-07-17 09:42:58 -0700981 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800983 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800985 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700986 <span class="entry_type_name">rational</span>
987 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_array">
990 3 x 3
991 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800993 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800994
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800995
996 </td> <!-- entry_type -->
997
998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800999 <p>A color transform matrix to use to transform
1000from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001001 </td>
1002
1003 <td class="entry_units">
1004 </td>
1005
1006 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001007 <p>Output values are expected to be in the range
1008(0,<wbr/>1)</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001009 </td>
1010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001011 <td class="entry_tags">
1012 </td>
1013
1014 </tr>
1015 <tr class="entries_header">
1016 <th class="th_details" colspan="5">Details</th>
1017 </tr>
1018 <tr class="entry_cont">
1019 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001020 <p>This matrix is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001022directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08001024<p>In the latter case,<wbr/> the HAL may round the matrix to account
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001025for precision issues; the final rounded matrix should be
Igor Murashkin0b080452013-12-27 15:30:25 -08001026reported back in this matrix result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001027 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001028 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001029
1030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1032 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001033
1034
1035 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001036 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001037 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001038 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001039 <td class="entry_type">
1040 <span class="entry_type_name">float</span>
1041 <span class="entry_type_container">x</span>
1042
1043 <span class="entry_type_array">
1044 4
1045 </span>
1046 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001047 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001048
1049
1050 </td> <!-- entry_type -->
1051
1052 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001053 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001054white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001055 </td>
1056
1057 <td class="entry_units">
1058 </td>
1059
1060 <td class="entry_range">
1061 </td>
1062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001063 <td class="entry_tags">
1064 </td>
1065
1066 </tr>
1067 <tr class="entries_header">
1068 <th class="th_details" colspan="5">Details</th>
1069 </tr>
1070 <tr class="entry_cont">
1071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001072 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001073the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1074for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1075is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001076does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001077it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1078<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001079<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001080<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001081directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001083<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001084the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001085 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001087
1088
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001091
1092
1093
1094 <!-- end of kind -->
1095 </tbody>
1096
1097 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001098 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001099
1100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001103 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001104 <tr>
1105 <th class="th_name">Property Name</th>
1106 <th class="th_type">Type</th>
1107 <th class="th_description">Description</th>
1108 <th class="th_units">Units</th>
1109 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001110 <th class="th_tags">Tags</th>
1111 </tr>
1112 </thead>
1113
1114 <tbody>
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001126 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001127 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001133
1134 <ul class="entry_type_enum">
1135 <li>
1136 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001137 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1138avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001139 </li>
1140 <li>
1141 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001142 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1143avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001144 </li>
1145 <li>
1146 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001147 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1148avoid banding problems with 60Hz illumination
1149sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001150 </li>
1151 <li>
1152 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001153 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1154antibanding routine to the current illumination
1155conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001156 </li>
1157 </ul>
1158
1159 </td> <!-- entry_type -->
1160
1161 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001162 <p>The desired setting for the camera device's auto-exposure
1163algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001164 </td>
1165
1166 <td class="entry_units">
1167 </td>
1168
1169 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001170 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001171 </td>
1172
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001173 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001174 <ul class="entry_tags">
1175 <li><a href="#tag_BC">BC</a></li>
1176 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001177 </td>
1178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001179 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001180 <tr class="entries_header">
1181 <th class="th_details" colspan="5">Details</th>
1182 </tr>
1183 <tr class="entry_cont">
1184 <td class="entry_details" colspan="5">
1185 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1186lights,<wbr/> flicker at the rate of the power supply frequency
1187(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1188typically not noticeable to a person,<wbr/> it can be visible to
1189a camera device.<wbr/> If a camera sets its exposure time to the
1190wrong value,<wbr/> the flicker may become visible in the
1191viewfinder as flicker or in a final captured image,<wbr/> as a
1192set of variable-brightness bands across the image.<wbr/></p>
1193<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1194include antibanding routines that ensure that the chosen
1195exposure value will not cause such banding.<wbr/> The choice of
1196exposure time depends on the rate of flicker,<wbr/> which the
1197camera device can detect automatically,<wbr/> or the expected
1198rate can be selected by the application using this
1199control.<wbr/></p>
1200<p>A given camera device may not support all of the possible
1201options for the antibanding mode.<wbr/> The
1202<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1203the available modes for a given camera device.<wbr/></p>
1204<p>The default mode is AUTO,<wbr/> which must be supported by all
1205camera devices.<wbr/></p>
1206<p>If manual exposure control is enabled (by setting
1207<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1208then this setting has no effect,<wbr/> and the application must
1209ensure it selects exposure times that do not cause banding
1210issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1211the application in this.<wbr/></p>
1212 </td>
1213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001214
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001215 <tr class="entries_header">
1216 <th class="th_details" colspan="5">HAL Implementation Details</th>
1217 </tr>
1218 <tr class="entry_cont">
1219 <td class="entry_details" colspan="5">
1220 <p>For all capture request templates,<wbr/> this field must be set
1221to AUTO.<wbr/> AUTO is the only mode that must supported;
1222OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1223<p>If manual exposure control is enabled (by setting
1224<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
1225then the exposure values provided by the application must not be
1226adjusted for antibanding.<wbr/></p>
1227 </td>
1228 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001232
1233
1234 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001236 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001240
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001241 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001242
1243
1244 </td> <!-- entry_type -->
1245
1246 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001247 <p>Adjustment to AE target image
1248brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001249 </td>
1250
1251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001252 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001253 </td>
1254
1255 <td class="entry_range">
1256 </td>
1257
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001258 <td class="entry_tags">
1259 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001260 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 </ul>
1262 </td>
1263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001264 </tr>
1265 <tr class="entries_header">
1266 <th class="th_details" colspan="5">Details</th>
1267 </tr>
1268 <tr class="entry_cont">
1269 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001270 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001271exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001272compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001273 </td>
1274 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001275
1276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001277 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001279
1280
1281 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001282 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001283 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001284 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001285 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001286 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001287
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001288 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001289
1290 <ul class="entry_type_enum">
1291 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001292 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001293 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1294is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 </li>
1296 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001297 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001298 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1299must not update the exposure and sensitivity parameters
1300while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001301 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001302 </ul>
1303
1304 </td> <!-- entry_type -->
1305
1306 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001307 <p>Whether AE is currently locked to its latest
1308calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001309 </td>
1310
1311 <td class="entry_units">
1312 </td>
1313
1314 <td class="entry_range">
1315 </td>
1316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001317 <td class="entry_tags">
1318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001319 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 </ul>
1321 </td>
1322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001323 </tr>
1324 <tr class="entries_header">
1325 <th class="th_details" colspan="5">Details</th>
1326 </tr>
1327 <tr class="entry_cont">
1328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001329 <p>Note that even when AE is locked,<wbr/> the flash may be
1330fired if the AE mode is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1331ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001332 </td>
1333 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001334
1335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001338
1339
1340 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001341 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001342 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001343 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001344 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001345 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001346
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349 <ul class="entry_type_enum">
1350 <li>
1351 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001352 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1353the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1354<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1355<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1356device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1357a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358 </li>
1359 <li>
1360 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1362with no flash control.<wbr/> The application's values for
1363<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1366application has control over the various
1367android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1372the camera's flash unit,<wbr/> firing it in low-light
1373conditions.<wbr/> The flash may be fired during a
1374precapture sequence (triggered by
1375<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1376for captures for which the
1377<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1378STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001379 </li>
1380 <li>
1381 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001382 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1383the camera's flash unit,<wbr/> always firing it for still
1384captures.<wbr/> The flash may be fired during a precapture
1385sequence (triggered by
1386<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1387be fired for captures for which the
1388<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1389STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001390 </li>
1391 <li>
1392 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001393 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1394reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1395a red eye reduction flash will fire during the
1396precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001397 </li>
1398 </ul>
1399
1400 </td> <!-- entry_type -->
1401
1402 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001403 <p>The desired mode for the camera device's
1404auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001405 </td>
1406
1407 <td class="entry_units">
1408 </td>
1409
1410 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001411 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412 </td>
1413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001414 <td class="entry_tags">
1415 <ul class="entry_tags">
1416 <li><a href="#tag_BC">BC</a></li>
1417 </ul>
1418 </td>
1419
1420 </tr>
1421 <tr class="entries_header">
1422 <th class="th_details" colspan="5">Details</th>
1423 </tr>
1424 <tr class="entry_cont">
1425 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001426 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1427AUTO.<wbr/></p>
1428<p>When set to any of the ON modes,<wbr/> the camera device's
1429auto-exposure routine is enabled,<wbr/> overriding the
1430application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1431and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1432<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1433<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1434is selected,<wbr/> the camera device's flash unit controls are
1435also overridden.<wbr/></p>
1436<p>The FLASH modes are only available if the camera device
1437has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1438<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1439ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1440<p>When set to any of the ON modes,<wbr/> the values chosen by the
1441camera device auto-exposure routine for the overridden
1442fields for a given capture will be available in its
1443CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001444 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001446
1447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001450
1451
1452 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001454 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001458 <span class="entry_type_container">x</span>
1459
1460 <span class="entry_type_array">
1461 5 x area_count
1462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001463 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001464
1465
1466 </td> <!-- entry_type -->
1467
1468 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001469 <p>List of areas to use for
1470metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001471 </td>
1472
1473 <td class="entry_units">
1474 </td>
1475
1476 <td class="entry_range">
1477 </td>
1478
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001479 <td class="entry_tags">
1480 <ul class="entry_tags">
1481 <li><a href="#tag_BC">BC</a></li>
1482 </ul>
1483 </td>
1484
1485 </tr>
1486 <tr class="entries_header">
1487 <th class="th_details" colspan="5">Details</th>
1488 </tr>
1489 <tr class="entry_cont">
1490 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001491 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1492xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1493specified coordinates.<wbr/></p>
1494<p>The coordinate system is based on the active pixel array,<wbr/>
1495with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001496(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1497<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001498bottom-right pixel in the active pixel array.<wbr/> The weight
1499should be nonnegative.<wbr/></p>
1500<p>If all regions have 0 weight,<wbr/> then no specific metering area
1501needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001502outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001503should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001504used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001505 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001507
1508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001511
1512
1513 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001514 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001515 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001518 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001519 <span class="entry_type_container">x</span>
1520
1521 <span class="entry_type_array">
1522 2
1523 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001524 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001525
1526
1527 </td> <!-- entry_type -->
1528
1529 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001530 <p>Range over which fps can be adjusted to
1531maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001532 </td>
1533
1534 <td class="entry_units">
1535 </td>
1536
1537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001538 <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001539 </td>
1540
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001541 <td class="entry_tags">
1542 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001543 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001544 </ul>
1545 </td>
1546
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001547 </tr>
1548 <tr class="entries_header">
1549 <th class="th_details" colspan="5">Details</th>
1550 </tr>
1551 <tr class="entry_cont">
1552 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001553 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001554of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001555 </td>
1556 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001557
1558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001559 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1560 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001561
1562
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001563 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001564 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001565 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001566 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001567 <td class="entry_type">
1568 <span class="entry_type_name entry_type_name_enum">byte</span>
1569
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001570 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001571
1572 <ul class="entry_type_enum">
1573 <li>
1574 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001575 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001576 </li>
1577 <li>
1578 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001579 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1580by the camera device.<wbr/> The exact effect of the precapture
1581trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001582 </li>
1583 </ul>
1584
1585 </td> <!-- entry_type -->
1586
1587 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001588 <p>Whether the camera device will trigger a precapture
1589metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001590 </td>
1591
1592 <td class="entry_units">
1593 </td>
1594
1595 <td class="entry_range">
1596 </td>
1597
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001598 <td class="entry_tags">
1599 <ul class="entry_tags">
1600 <li><a href="#tag_BC">BC</a></li>
1601 </ul>
1602 </td>
1603
1604 </tr>
1605 <tr class="entries_header">
1606 <th class="th_details" colspan="5">Details</th>
1607 </tr>
1608 <tr class="entry_cont">
1609 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001610 <p>This entry is normally set to IDLE,<wbr/> or is not
1611included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001612set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001613precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001614<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001615AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1616state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001617 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001618 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001619
1620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001621 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1622 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001623
1624
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001625 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001626 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001627 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001628 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001629 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001630 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001631
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001632 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001633
1634 <ul class="entry_type_enum">
1635 <li>
1636 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001637 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1638<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1639application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001640 </li>
1641 <li>
1642 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001643 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1644<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
1645is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1646the autofocus trigger action is called.<wbr/> When that trigger
1647is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1648the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1649<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1650and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001651 </li>
1652 <li>
1653 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001654 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1655autofocus trigger action is called.<wbr/></p>
1656<p>When that trigger is activated,<wbr/> AF must transition to
1657ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1658NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1659position to default,<wbr/> and sets the AF state to
1660INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001661 </li>
1662 <li>
1663 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001664 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1665position continually to attempt to provide a
1666constantly-in-focus image stream.<wbr/></p>
1667<p>The focusing behavior should be suitable for good quality
1668video recording; typically this means slower focus
1669movement and no overshoots.<wbr/> When the AF trigger is not
1670involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1671and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1672states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1673the algorithm should immediately transition into
1674AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1675lens position until a cancel AF trigger is received.<wbr/></p>
1676<p>Once cancel is received,<wbr/> the algorithm should transition
1677back to INACTIVE and resume passive scan.<wbr/> Note that this
1678behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1679ongoing PASSIVE_<wbr/>SCAN must immediately be
1680canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001681 </li>
1682 <li>
1683 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001684 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1685position continually to attempt to provide a
1686constantly-in-focus image stream.<wbr/></p>
1687<p>The focusing behavior should be suitable for still image
1688capture; typically this means focusing as fast as
1689possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1690algorithm should start in INACTIVE state,<wbr/> and then
1691transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1692appropriate as it attempts to maintain focus.<wbr/> When the AF
1693trigger is activated,<wbr/> the algorithm should finish its
1694PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1695AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1696lens position until a cancel AF trigger is received.<wbr/></p>
1697<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1698should transition back to INACTIVE and then act as if it
1699has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001700 </li>
1701 <li>
1702 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001703 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1704trigger is ignored,<wbr/> AF state should always be
1705INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001706 </li>
1707 </ul>
1708
1709 </td> <!-- entry_type -->
1710
1711 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001712 <p>Whether AF is currently enabled,<wbr/> and what
1713mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001714 </td>
1715
1716 <td class="entry_units">
1717 </td>
1718
1719 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001720 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001721 </td>
1722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001723 <td class="entry_tags">
1724 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001725 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001726 </ul>
1727 </td>
1728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001729 </tr>
1730 <tr class="entries_header">
1731 <th class="th_details" colspan="5">Details</th>
1732 </tr>
1733 <tr class="entry_cont">
1734 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001735 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08001736<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1737the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1738in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001739 </td>
1740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001741
1742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001745
1746
1747 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001748 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001749 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001752 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001753 <span class="entry_type_container">x</span>
1754
1755 <span class="entry_type_array">
1756 5 x area_count
1757 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001758 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001759
1760
1761 </td> <!-- entry_type -->
1762
1763 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001764 <p>List of areas to use for focus
1765estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001766 </td>
1767
1768 <td class="entry_units">
1769 </td>
1770
1771 <td class="entry_range">
1772 </td>
1773
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001774 <td class="entry_tags">
1775 <ul class="entry_tags">
1776 <li><a href="#tag_BC">BC</a></li>
1777 </ul>
1778 </td>
1779
1780 </tr>
1781 <tr class="entries_header">
1782 <th class="th_details" colspan="5">Details</th>
1783 </tr>
1784 <tr class="entry_cont">
1785 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001786 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1787xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
1788specified coordinates.<wbr/></p>
1789<p>The coordinate system is based on the active pixel array,<wbr/>
1790with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001791(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1792<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08001793bottom-right pixel in the active pixel array.<wbr/> The weight
1794should be nonnegative.<wbr/></p>
1795<p>If all regions have 0 weight,<wbr/> then no specific focus area
1796needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001797outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001798should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08001799used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001800 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001801 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001802
1803
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001804 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1805 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001806
1807
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001808 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001809 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001810 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001811 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001812 <td class="entry_type">
1813 <span class="entry_type_name entry_type_name_enum">byte</span>
1814
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001815 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001816
1817 <ul class="entry_type_enum">
1818 <li>
1819 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001820 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001821 </li>
1822 <li>
1823 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001824 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001825 </li>
1826 <li>
1827 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001828 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1829state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001830 </li>
1831 </ul>
1832
1833 </td> <!-- entry_type -->
1834
1835 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001836 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001837 </td>
1838
1839 <td class="entry_units">
1840 </td>
1841
1842 <td class="entry_range">
1843 </td>
1844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001845 <td class="entry_tags">
1846 <ul class="entry_tags">
1847 <li><a href="#tag_BC">BC</a></li>
1848 </ul>
1849 </td>
1850
1851 </tr>
1852 <tr class="entries_header">
1853 <th class="th_details" colspan="5">Details</th>
1854 </tr>
1855 <tr class="entry_cont">
1856 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001857 <p>This entry is normally set to IDLE,<wbr/> or is not
1858included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001859<p>When included and set to START,<wbr/> the camera device will trigger the
1860autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1861<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1862and return to its initial AF state.<wbr/></p>
1863<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001864 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001866
1867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1869 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001870
1871
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001872 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001873 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001874 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001878
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001879 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001880
1881 <ul class="entry_type_enum">
1882 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001883 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001884 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1885algorithm is free to update its parameters if in AUTO
1886mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001887 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001888 <li>
1889 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001890 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1891algorithm must not update the exposure and sensitivity
1892parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001893 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001894 </ul>
1895
1896 </td> <!-- entry_type -->
1897
1898 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001899 <p>Whether AWB is currently locked to its
1900latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001901 </td>
1902
1903 <td class="entry_units">
1904 </td>
1905
1906 <td class="entry_range">
1907 </td>
1908
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001909 <td class="entry_tags">
1910 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001911 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001912 </ul>
1913 </td>
1914
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001915 </tr>
1916 <tr class="entries_header">
1917 <th class="th_details" colspan="5">Details</th>
1918 </tr>
1919 <tr class="entry_cont">
1920 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001921 <p>Note that AWB lock is only meaningful for AUTO
1922mode; in other modes,<wbr/> AWB is already fixed to a specific
1923setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001924 </td>
1925 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001926
1927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001928 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1929 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001930
1931
1932 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001933 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001934 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001937 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001938
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001939 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001940
1941 <ul class="entry_type_enum">
1942 <li>
1943 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001944 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1945the application-selected color transform matrix
1946(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1947(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1948device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001949 </li>
1950 <li>
1951 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001952 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1953the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1954and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001955 </li>
1956 <li>
1957 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001958 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1959the camera device uses incandescent light as the assumed scene
1960illumination for white balance.<wbr/> While the exact white balance
1961transforms are up to the camera device,<wbr/> they will approximately
1962match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001963 </li>
1964 <li>
1965 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001966 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1967the camera device uses fluorescent light as the assumed scene
1968illumination for white balance.<wbr/> While the exact white balance
1969transforms are up to the camera device,<wbr/> they will approximately
1970match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001971 </li>
1972 <li>
1973 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001974 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1975the camera device uses warm fluorescent light as the assumed scene
1976illumination for white balance.<wbr/> While the exact white balance
1977transforms are up to the camera device,<wbr/> they will approximately
1978match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001979 </li>
1980 <li>
1981 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001982 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1983the camera device uses daylight light as the assumed scene
1984illumination for white balance.<wbr/> While the exact white balance
1985transforms are up to the camera device,<wbr/> they will approximately
1986match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001987 </li>
1988 <li>
1989 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001990 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1991the camera device uses cloudy daylight light as the assumed scene
1992illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001993 </li>
1994 <li>
1995 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001996 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1997the camera device uses twilight light as the assumed scene
1998illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001999 </li>
2000 <li>
2001 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002002 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2003the camera device uses shade light as the assumed scene
2004illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002005 </li>
2006 </ul>
2007
2008 </td> <!-- entry_type -->
2009
2010 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002011 <p>Whether AWB is currently setting the color
2012transform fields,<wbr/> and what its illumination target
2013is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002014 </td>
2015
2016 <td class="entry_units">
2017 </td>
2018
2019 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002020 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002021 </td>
2022
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002023 <td class="entry_tags">
2024 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002025 <li><a href="#tag_BC">BC</a></li>
2026 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002027 </ul>
2028 </td>
2029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002030 </tr>
2031 <tr class="entries_header">
2032 <th class="th_details" colspan="5">Details</th>
2033 </tr>
2034 <tr class="entry_cont">
2035 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002036 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2037<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2038routine is enabled,<wbr/> overriding the application's selected
2039<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
2040<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2041<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2042routine is disabled.<wbr/> The applicantion manually controls the white
2043balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2044and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2045<p>When set to any other modes,<wbr/> the camera device's auto white balance
2046routine is disabled.<wbr/> The camera device uses each particular illumination
2047target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002048 </td>
2049 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002050
2051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2053 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002054
2055
2056 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002057 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002058 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002059 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002060 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002061 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002062 <span class="entry_type_container">x</span>
2063
2064 <span class="entry_type_array">
2065 5 x area_count
2066 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002067 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002068
2069
2070 </td> <!-- entry_type -->
2071
2072 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002073 <p>List of areas to use for illuminant
2074estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002075 </td>
2076
2077 <td class="entry_units">
2078 </td>
2079
2080 <td class="entry_range">
2081 </td>
2082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002083 <td class="entry_tags">
2084 <ul class="entry_tags">
2085 <li><a href="#tag_BC">BC</a></li>
2086 </ul>
2087 </td>
2088
2089 </tr>
2090 <tr class="entries_header">
2091 <th class="th_details" colspan="5">Details</th>
2092 </tr>
2093 <tr class="entry_cont">
2094 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002095 <p>Only used in AUTO mode.<wbr/></p>
2096<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2097xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
2098specified coordinates.<wbr/></p>
2099<p>The coordinate system is based on the active pixel array,<wbr/>
2100with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002101(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2102<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08002103bottom-right pixel in the active pixel array.<wbr/> The weight
2104should be nonnegative.<wbr/></p>
2105<p>If all regions have 0 weight,<wbr/> then no specific metering area
2106needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002107outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08002108should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08002109used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002110 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002111 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002112
2113
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002114 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2115 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002116
2117
2118 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002119 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002120 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002121 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002122 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002123 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002125 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002126
2127 <ul class="entry_type_enum">
2128 <li>
2129 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002130 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2131categories.<wbr/> Default to preview-like
2132behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002133 </li>
2134 <li>
2135 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002136 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2137precapture trigger may be used to start off a metering
2138w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002139 </li>
2140 <li>
2141 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002142 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2143usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002144 </li>
2145 <li>
2146 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002147 <span class="entry_type_enum_notes"><p>This request is for a video recording
2148usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002149 </li>
2150 <li>
2151 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002152 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2153image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002154 </li>
2155 <li>
2156 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002157 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2158application will stream full-resolution images and
2159reprocess one or several later for a final
2160capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002161 </li>
2162 </ul>
2163
2164 </td> <!-- entry_type -->
2165
2166 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002167 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2168auto-focus,<wbr/> auto-white balance) routines about the purpose
2169of this capture,<wbr/> to help the camera device to decide optimal 3A
2170strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002171 </td>
2172
2173 <td class="entry_units">
2174 </td>
2175
2176 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002177 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002178 </td>
2179
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002180 <td class="entry_tags">
2181 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002182 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002183 </ul>
2184 </td>
2185
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002186 </tr>
2187 <tr class="entries_header">
2188 <th class="th_details" colspan="5">Details</th>
2189 </tr>
2190 <tr class="entry_cont">
2191 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002192 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2193and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002194 </td>
2195 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002196
2197
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002198 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2199 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002200
2201
2202 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002203 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002204 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002205 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002206 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002207 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002208
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002209 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002210
2211 <ul class="entry_type_enum">
2212 <li>
2213 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002214 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002215 </li>
2216 <li>
2217 <span class="entry_type_enum_name">MONO</span>
2218 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002219 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2220a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002221 </li>
2222 <li>
2223 <span class="entry_type_enum_name">NEGATIVE</span>
2224 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002225 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2226are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002227 </li>
2228 <li>
2229 <span class="entry_type_enum_name">SOLARIZE</span>
2230 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002231 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2232image is wholly or partially reversed in
2233tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002234 </li>
2235 <li>
2236 <span class="entry_type_enum_name">SEPIA</span>
2237 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002238 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2239gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002240 </li>
2241 <li>
2242 <span class="entry_type_enum_name">POSTERIZE</span>
2243 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002244 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2245discrete regions of tone rather than a continuous
2246gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002247 </li>
2248 <li>
2249 <span class="entry_type_enum_name">WHITEBOARD</span>
2250 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002251 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2252as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002253 </li>
2254 <li>
2255 <span class="entry_type_enum_name">BLACKBOARD</span>
2256 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002257 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2258as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002259 </li>
2260 <li>
2261 <span class="entry_type_enum_name">AQUA</span>
2262 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002263 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002264 </li>
2265 </ul>
2266
2267 </td> <!-- entry_type -->
2268
2269 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002270 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002271 </td>
2272
2273 <td class="entry_units">
2274 </td>
2275
2276 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002277 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002278 </td>
2279
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002280 <td class="entry_tags">
2281 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002282 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002283 </ul>
2284 </td>
2285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002286 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002287 <tr class="entries_header">
2288 <th class="th_details" colspan="5">Details</th>
2289 </tr>
2290 <tr class="entry_cont">
2291 <td class="entry_details" colspan="5">
2292 <p>When this mode is set,<wbr/> a color effect will be applied
2293to images produced by the camera device.<wbr/> The interpretation
2294and implementation of these color effects is left to the
2295implementor of the camera device,<wbr/> and should not be
2296depended on to be consistent (or present) across all
2297devices.<wbr/></p>
2298<p>A color effect will only be applied if
2299<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2300 </td>
2301 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002302
2303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002304 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2305 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002306
2307
2308 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002309 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002310 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002311 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002312 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002313 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002314
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002315 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002316
2317 <ul class="entry_type_enum">
2318 <li>
2319 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002320 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2321routines are disabled,<wbr/> no other settings in
2322android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002323 </li>
2324 <li>
2325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002326 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2327Manual control of capture parameters is disabled.<wbr/> All
2328controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2329effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002330 </li>
2331 <li>
2332 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002333 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2334control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2335controls; the HAL must ignore those settings while
2336USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2337scene mode).<wbr/> Other control entries are still active.<wbr/>
2338This setting can only be used if availableSceneModes !=
2339UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002340 </li>
2341 </ul>
2342
2343 </td> <!-- entry_type -->
2344
2345 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002346 <p>Overall mode of 3A control
2347routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002348 </td>
2349
2350 <td class="entry_units">
2351 </td>
2352
2353 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002354 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002355 </td>
2356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002357 <td class="entry_tags">
2358 <ul class="entry_tags">
2359 <li><a href="#tag_BC">BC</a></li>
2360 </ul>
2361 </td>
2362
2363 </tr>
2364 <tr class="entries_header">
2365 <th class="th_details" colspan="5">Details</th>
2366 </tr>
2367 <tr class="entry_cont">
2368 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002369 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002370by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002371capture parameters itself.<wbr/></p>
2372<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002373android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08002374<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002375android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002376one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002377as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002378<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002379 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002380 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002381
2382
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002383 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2384 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002385
2386
2387 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002388 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002389 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002390 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002392 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002393
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002394 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002395
2396 <ul class="entry_type_enum">
2397 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002398 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002399 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002400 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002401 </li>
2402 <li>
2403 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002404 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2405detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2406auto-exposure routines.<wbr/> If face detection statistics are
2407disabled (i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
2408this should still operate correctly (but will not return
2409face detection statistics to the framework).<wbr/></p>
2410<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2411<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2412remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002413 </li>
2414 <li>
2415 <span class="entry_type_enum_name">ACTION</span>
2416 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002417 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2418Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002419 </li>
2420 <li>
2421 <span class="entry_type_enum_name">PORTRAIT</span>
2422 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002423 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002424 </li>
2425 <li>
2426 <span class="entry_type_enum_name">LANDSCAPE</span>
2427 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002428 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002429 </li>
2430 <li>
2431 <span class="entry_type_enum_name">NIGHT</span>
2432 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002433 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002434 </li>
2435 <li>
2436 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2437 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002438 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2439settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002440 </li>
2441 <li>
2442 <span class="entry_type_enum_name">THEATRE</span>
2443 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002444 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2445remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002446 </li>
2447 <li>
2448 <span class="entry_type_enum_name">BEACH</span>
2449 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002450 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002451 </li>
2452 <li>
2453 <span class="entry_type_enum_name">SNOW</span>
2454 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002455 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002456 </li>
2457 <li>
2458 <span class="entry_type_enum_name">SUNSET</span>
2459 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002460 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002461 </li>
2462 <li>
2463 <span class="entry_type_enum_name">STEADYPHOTO</span>
2464 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002465 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2466device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002467 </li>
2468 <li>
2469 <span class="entry_type_enum_name">FIREWORKS</span>
2470 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002471 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002472 </li>
2473 <li>
2474 <span class="entry_type_enum_name">SPORTS</span>
2475 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002476 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2477Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002478 </li>
2479 <li>
2480 <span class="entry_type_enum_name">PARTY</span>
2481 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002482 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2483people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002484 </li>
2485 <li>
2486 <span class="entry_type_enum_name">CANDLELIGHT</span>
2487 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002488 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2489is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002490 </li>
2491 <li>
2492 <span class="entry_type_enum_name">BARCODE</span>
2493 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002494 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2495for use by camera applications that wish to read the
2496barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002497 </li>
2498 </ul>
2499
2500 </td> <!-- entry_type -->
2501
2502 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002503 <p>A camera mode optimized for conditions typical in a particular
2504capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002505 </td>
2506
2507 <td class="entry_units">
2508 </td>
2509
2510 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002511 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002512 </td>
2513
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002514 <td class="entry_tags">
2515 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002516 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002517 </ul>
2518 </td>
2519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002520 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002521 <tr class="entries_header">
2522 <th class="th_details" colspan="5">Details</th>
2523 </tr>
2524 <tr class="entry_cont">
2525 <td class="entry_details" colspan="5">
2526 <p>This is the mode that that is active when
2527<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/>
2528these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2529<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2530<p>The interpretation and implementation of these scene modes is left
2531to the implementor of the camera device.<wbr/> Their behavior will not be
2532consistent across all devices,<wbr/> and any given device may only implement
2533a subset of these modes.<wbr/></p>
2534 </td>
2535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002536
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002537 <tr class="entries_header">
2538 <th class="th_details" colspan="5">HAL Implementation Details</th>
2539 </tr>
2540 <tr class="entry_cont">
2541 <td class="entry_details" colspan="5">
2542 <p>HAL implementations that include scene modes are expected to provide
2543the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2544<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
2545<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2546 </td>
2547 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002548
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002549 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002551
2552
2553 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002554 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002555 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002556 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002557 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002558 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002559
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002560 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002561
2562 <ul class="entry_type_enum">
2563 <li>
2564 <span class="entry_type_enum_name">OFF</span>
2565 </li>
2566 <li>
2567 <span class="entry_type_enum_name">ON</span>
2568 </li>
2569 </ul>
2570
2571 </td> <!-- entry_type -->
2572
2573 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002574 <p>Whether video stabilization is
2575active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002576 </td>
2577
2578 <td class="entry_units">
2579 </td>
2580
2581 <td class="entry_range">
2582 </td>
2583
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002584 <td class="entry_tags">
2585 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002586 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002587 </ul>
2588 </td>
2589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002590 </tr>
2591 <tr class="entries_header">
2592 <th class="th_details" colspan="5">Details</th>
2593 </tr>
2594 <tr class="entry_cont">
2595 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002596 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002597<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
Igor Murashkin0b080452013-12-27 15:30:25 -08002598stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002599 </td>
2600 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002601
2602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002603 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2604 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002605
2606
2607
2608 <!-- end of kind -->
2609 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002610 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002611
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002612 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002613 <tr>
2614 <th class="th_name">Property Name</th>
2615 <th class="th_type">Type</th>
2616 <th class="th_description">Description</th>
2617 <th class="th_units">Units</th>
2618 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002619 <th class="th_tags">Tags</th>
2620 </tr>
2621 </thead>
2622
2623 <tbody>
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002635 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002636 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002639 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002640 <span class="entry_type_container">x</span>
2641
2642 <span class="entry_type_array">
2643 n
2644 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002645 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002646 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002647
2648
2649 </td> <!-- entry_type -->
2650
2651 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002652 <p>The set of auto-exposure antibanding modes that are
2653supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002654 </td>
2655
2656 <td class="entry_units">
2657 </td>
2658
2659 <td class="entry_range">
2660 </td>
2661
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002662 <td class="entry_tags">
2663 </td>
2664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002665 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002666 <tr class="entries_header">
2667 <th class="th_details" colspan="5">Details</th>
2668 </tr>
2669 <tr class="entry_cont">
2670 <td class="entry_details" colspan="5">
2671 <p>Not all of the auto-exposure anti-banding modes may be
2672supported by a given camera device.<wbr/> This field lists the
2673valid anti-banding modes that the application may request
2674for this camera device; they must include AUTO.<wbr/></p>
2675 </td>
2676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002677
2678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002679 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2680 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002681
2682
2683 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002684 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002685 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002686 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002687 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002688 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002689 <span class="entry_type_container">x</span>
2690
2691 <span class="entry_type_array">
2692 n
2693 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002694 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002695 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002696
2697
2698 </td> <!-- entry_type -->
2699
2700 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002701 <p>The set of auto-exposure modes that are supported by this
2702camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002703 </td>
2704
2705 <td class="entry_units">
2706 </td>
2707
2708 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002709 </td>
2710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002711 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002712 <ul class="entry_tags">
2713 <li><a href="#tag_BC">BC</a></li>
2714 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002715 </td>
2716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002717 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002718 <tr class="entries_header">
2719 <th class="th_details" colspan="5">Details</th>
2720 </tr>
2721 <tr class="entry_cont">
2722 <td class="entry_details" colspan="5">
2723 <p>Not all the auto-exposure modes may be supported by a
2724given camera device,<wbr/> especially if no flash unit is
2725available.<wbr/> This entry lists the valid modes for
2726<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2727<p>All camera devices support ON,<wbr/> and all camera devices with
2728flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2729ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2730<p>Full-capability camera devices always support OFF mode,<wbr/>
2731which enables application control of camera exposure time,<wbr/>
2732sensitivity,<wbr/> and frame duration.<wbr/></p>
2733 </td>
2734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002735
2736
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002737 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002739
2740
2741 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002743 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002747 <span class="entry_type_container">x</span>
2748
2749 <span class="entry_type_array">
2750 2 x n
2751 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002752 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002753 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002754
2755
2756 </td> <!-- entry_type -->
2757
2758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002759 <p>List of frame rate ranges supported by the
2760AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002761 </td>
2762
2763 <td class="entry_units">
2764 </td>
2765
2766 <td class="entry_range">
2767 </td>
2768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002769 <td class="entry_tags">
2770 </td>
2771
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002773
2774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002775 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2776 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002777
2778
2779 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002780 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002781 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002783 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002784 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002785 <span class="entry_type_container">x</span>
2786
2787 <span class="entry_type_array">
2788 2
2789 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002790 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002791
2792
2793 </td> <!-- entry_type -->
2794
2795 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002796 <p>Maximum and minimum exposure compensation
2797setting,<wbr/> in counts of
2798android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002799 </td>
2800
2801 <td class="entry_units">
2802 </td>
2803
2804 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002805 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2806size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002807 </td>
2808
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002809 <td class="entry_tags">
2810 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002811 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 </ul>
2813 </td>
2814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002815 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002816
2817
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002818 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2819 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002820
2821
2822 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002823 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002824 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002825 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002826 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002827 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002828
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002829 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002830
2831
2832 </td> <!-- entry_type -->
2833
2834 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002835 <p>Smallest step by which exposure compensation
2836can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002837 </td>
2838
2839 <td class="entry_units">
2840 </td>
2841
2842 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002843 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002844 </td>
2845
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002846 <td class="entry_tags">
2847 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002848 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002849 </ul>
2850 </td>
2851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002852 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002853
2854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002855 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2856 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002857
2858
2859 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002860 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002861 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002862 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002863 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002864 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002865 <span class="entry_type_container">x</span>
2866
2867 <span class="entry_type_array">
2868 n
2869 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002870 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002871 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002872
2873
2874 </td> <!-- entry_type -->
2875
2876 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002877 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002878selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002879 </td>
2880
2881 <td class="entry_units">
2882 </td>
2883
2884 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002885 </td>
2886
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002887 <td class="entry_tags">
2888 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002889 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002890 </ul>
2891 </td>
2892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002893 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002894 <tr class="entries_header">
2895 <th class="th_details" colspan="5">Details</th>
2896 </tr>
2897 <tr class="entry_cont">
2898 <td class="entry_details" colspan="5">
2899 <p>Not all the auto-focus modes may be supported by a
2900given camera device.<wbr/> This entry lists the valid modes for
2901<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2902<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2903adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>)
2904will support AUTO mode.<wbr/></p>
2905 </td>
2906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002907
2908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002911
2912
2913 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002915 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002918 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002919 <span class="entry_type_container">x</span>
2920
2921 <span class="entry_type_array">
2922 n
2923 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002924 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002925 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002926
2927
2928 </td> <!-- entry_type -->
2929
2930 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002931 <p>List containing the subset of color effects
2932specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2933this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002934 </td>
2935
2936 <td class="entry_units">
2937 </td>
2938
2939 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002940 <p>Any subset of enums from those specified in
2941<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/> OFF must be included in any subset.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002942 </td>
2943
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002944 <td class="entry_tags">
2945 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002946 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 </ul>
2948 </td>
2949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002950 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002951 <tr class="entries_header">
2952 <th class="th_details" colspan="5">Details</th>
2953 </tr>
2954 <tr class="entry_cont">
2955 <td class="entry_details" colspan="5">
2956 <p>This list contains the color effect modes that can be applied to
2957images produced by the camera device.<wbr/> Only modes that have
2958been fully implemented for the current device may be included here.<wbr/>
2959Implementations are not expected to be consistent across all devices.<wbr/>
2960If no color effect modes are available for a device,<wbr/> this should
2961simply be set to OFF.<wbr/></p>
2962<p>A color effect will only be applied if
2963<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2964 </td>
2965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002966
2967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002970
2971
2972 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002973 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002974 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002976 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002977 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002978 <span class="entry_type_container">x</span>
2979
2980 <span class="entry_type_array">
2981 n
2982 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002983 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002984 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002985
2986
2987 </td> <!-- entry_type -->
2988
2989 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002990 <p>List containing a subset of scene modes
2991specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002992 </td>
2993
2994 <td class="entry_units">
2995 </td>
2996
2997 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002998 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
2999not including DISABLED,<wbr/> or solely DISABLED if no
3000scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3001if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003002 </td>
3003
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003004 <td class="entry_tags">
3005 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003006 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003007 </ul>
3008 </td>
3009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003010 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003011 <tr class="entries_header">
3012 <th class="th_details" colspan="5">Details</th>
3013 </tr>
3014 <tr class="entry_cont">
3015 <td class="entry_details" colspan="5">
3016 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3017Only scene modes that have been fully implemented for the
3018camera device may be included here.<wbr/> Implementations are not expected
3019to be consistent across all devices.<wbr/> If no scene modes are supported
3020by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3021 </td>
3022 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003023
3024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003025 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3026 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003027
3028
3029 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003030 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003031 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003032 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003033 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003034 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003035 <span class="entry_type_container">x</span>
3036
3037 <span class="entry_type_array">
3038 n
3039 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003040 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003041 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003042
3043
3044 </td> <!-- entry_type -->
3045
3046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003047 <p>List of video stabilization modes that can
3048be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003049 </td>
3050
3051 <td class="entry_units">
3052 </td>
3053
3054 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003055 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003056 </td>
3057
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003058 <td class="entry_tags">
3059 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003060 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003061 </ul>
3062 </td>
3063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003065
3066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003069
3070
3071 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003072 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003073 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003076 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003077 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003078
Alex Raya4251d92013-04-30 16:43:44 -07003079 <span class="entry_type_array">
3080 n
3081 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003082 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003083 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003084
3085
3086 </td> <!-- entry_type -->
3087
3088 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003089 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3090that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003091 </td>
3092
3093 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003094 </td>
3095
3096 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097 </td>
3098
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003099 <td class="entry_tags">
3100 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003101 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102 </ul>
3103 </td>
3104
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003105 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003106 <tr class="entries_header">
3107 <th class="th_details" colspan="5">Details</th>
3108 </tr>
3109 <tr class="entry_cont">
3110 <td class="entry_details" colspan="5">
3111 <p>Not all the auto-white-balance modes may be supported by a
3112given camera device.<wbr/> This entry lists the valid modes for
3113<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3114<p>All camera devices will support ON mode.<wbr/></p>
3115<p>Full-capability camera devices will always support OFF mode,<wbr/>
3116which enables application control of white balance,<wbr/> by using
3117<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/></p>
3118 </td>
3119 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003120
3121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003124
3125
3126 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003127 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003128 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003130 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003131 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003134
3135
3136 </td> <!-- entry_type -->
3137
3138 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003139 <p>For AE,<wbr/> AWB,<wbr/> and AF,<wbr/> how many individual
3140regions can be listed for metering?</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003141 </td>
3142
3143 <td class="entry_units">
3144 </td>
3145
3146 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08003147 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003148 </td>
3149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003150 <td class="entry_tags">
3151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003152 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003153 </ul>
3154 </td>
3155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003157
3158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003161
3162
3163 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003164 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003165 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003166 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003167 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003168 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003169 <span class="entry_type_container">x</span>
3170
3171 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003172 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003173 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003174 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003175
3176
3177 </td> <!-- entry_type -->
3178
3179 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003180 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3181settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003182 </td>
3183
3184 <td class="entry_units">
3185 </td>
3186
3187 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003188 <p>For each available scene mode,<wbr/> the list must contain three
3189entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3190<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
3191by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3192where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003193 </td>
3194
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003195 <td class="entry_tags">
3196 <ul class="entry_tags">
3197 <li><a href="#tag_BC">BC</a></li>
3198 </ul>
3199 </td>
3200
3201 </tr>
3202 <tr class="entries_header">
3203 <th class="th_details" colspan="5">Details</th>
3204 </tr>
3205 <tr class="entry_cont">
3206 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003207 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3208to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
3209and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3210that scene mode.<wbr/></p>
3211<p>The order of this list matches that of availableSceneModes,<wbr/>
3212with 3 entries for each mode.<wbr/> The overrides listed
3213for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3214mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3215<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
3216used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3217is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3218overrides should be set to 0.<wbr/></p>
3219<p>For example,<wbr/> if availableSceneModes contains
3220<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3221expects sceneModeOverrides to have 9 entries formatted like:
3222<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3223ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003224 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003226
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003227 <tr class="entries_header">
3228 <th class="th_details" colspan="5">HAL Implementation Details</th>
3229 </tr>
3230 <tr class="entry_cont">
3231 <td class="entry_details" colspan="5">
3232 <p>To maintain backward compatibility,<wbr/> this list will be made available
3233in the static metadata of the camera service.<wbr/> The camera service will
3234use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3235<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
3236mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3237 </td>
3238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003239
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003240 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3241 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003242
3243
3244
3245 <!-- end of kind -->
3246 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003247 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003249 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003250 <tr>
3251 <th class="th_name">Property Name</th>
3252 <th class="th_type">Type</th>
3253 <th class="th_description">Description</th>
3254 <th class="th_units">Units</th>
3255 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003256 <th class="th_tags">Tags</th>
3257 </tr>
3258 </thead>
3259
3260 <tbody>
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003273 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003276 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003278 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003279
3280
3281 </td> <!-- entry_type -->
3282
3283 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003284 <p>The ID sent with the latest
3285CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003286 </td>
3287
3288 <td class="entry_units">
3289 </td>
3290
3291 <td class="entry_range">
3292 </td>
3293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003294 <td class="entry_tags">
3295 </td>
3296
3297 </tr>
3298 <tr class="entries_header">
3299 <th class="th_details" colspan="5">Details</th>
3300 </tr>
3301 <tr class="entry_cont">
3302 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003303 <p>Must be 0 if no
3304CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3305by HAL.<wbr/> Always updated even if AE algorithm ignores the
3306trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003307 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003309
3310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003313
3314
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003315 <tr class="entry" id="dynamic_android.control.aeMode">
3316 <td class="entry_name" rowspan="3">
3317 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3318 </td>
3319 <td class="entry_type">
3320 <span class="entry_type_name entry_type_name_enum">byte</span>
3321
3322 <span class="entry_type_visibility"> [public]</span>
3323
3324 <ul class="entry_type_enum">
3325 <li>
3326 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003327 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3328the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3329<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3330<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3331device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3332a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003333 </li>
3334 <li>
3335 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003336 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3337with no flash control.<wbr/> The application's values for
3338<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3339<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3340<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3341application has control over the various
3342android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003343 </li>
3344 <li>
3345 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003346 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3347the camera's flash unit,<wbr/> firing it in low-light
3348conditions.<wbr/> The flash may be fired during a
3349precapture sequence (triggered by
3350<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3351for captures for which the
3352<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3353STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003354 </li>
3355 <li>
3356 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003357 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3358the camera's flash unit,<wbr/> always firing it for still
3359captures.<wbr/> The flash may be fired during a precapture
3360sequence (triggered by
3361<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3362be fired for captures for which the
3363<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3364STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003365 </li>
3366 <li>
3367 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003368 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3369reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3370a red eye reduction flash will fire during the
3371precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003372 </li>
3373 </ul>
3374
3375 </td> <!-- entry_type -->
3376
3377 <td class="entry_description">
3378 <p>The desired mode for the camera device's
3379auto-exposure routine.<wbr/></p>
3380 </td>
3381
3382 <td class="entry_units">
3383 </td>
3384
3385 <td class="entry_range">
3386 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3387 </td>
3388
3389 <td class="entry_tags">
3390 <ul class="entry_tags">
3391 <li><a href="#tag_BC">BC</a></li>
3392 </ul>
3393 </td>
3394
3395 </tr>
3396 <tr class="entries_header">
3397 <th class="th_details" colspan="5">Details</th>
3398 </tr>
3399 <tr class="entry_cont">
3400 <td class="entry_details" colspan="5">
3401 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3402AUTO.<wbr/></p>
3403<p>When set to any of the ON modes,<wbr/> the camera device's
3404auto-exposure routine is enabled,<wbr/> overriding the
3405application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3406and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3407<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3408<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3409is selected,<wbr/> the camera device's flash unit controls are
3410also overridden.<wbr/></p>
3411<p>The FLASH modes are only available if the camera device
3412has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3413<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3414ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3415<p>When set to any of the ON modes,<wbr/> the values chosen by the
3416camera device auto-exposure routine for the overridden
3417fields for a given capture will be available in its
3418CaptureResult.<wbr/></p>
3419 </td>
3420 </tr>
3421
3422
3423 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3424 <!-- end of entry -->
3425
3426
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003427 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003428 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003429 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003430 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003431 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003432 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003433 <span class="entry_type_container">x</span>
3434
3435 <span class="entry_type_array">
3436 5 x area_count
3437 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003438 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003439
3440
3441 </td> <!-- entry_type -->
3442
3443 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003444 <p>List of areas to use for
3445metering</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003446 </td>
3447
3448 <td class="entry_units">
3449 </td>
3450
3451 <td class="entry_range">
3452 </td>
3453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003454 <td class="entry_tags">
3455 <ul class="entry_tags">
3456 <li><a href="#tag_BC">BC</a></li>
3457 </ul>
3458 </td>
3459
3460 </tr>
3461 <tr class="entries_header">
3462 <th class="th_details" colspan="5">Details</th>
3463 </tr>
3464 <tr class="entry_cont">
3465 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003466 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3467xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3468specified coordinates.<wbr/></p>
3469<p>The coordinate system is based on the active pixel array,<wbr/>
3470with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003471(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3472<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003473bottom-right pixel in the active pixel array.<wbr/> The weight
3474should be nonnegative.<wbr/></p>
3475<p>If all regions have 0 weight,<wbr/> then no specific metering area
3476needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003477outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003478should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003479used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003480 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003481 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003482
3483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003484 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3485 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003486
3487
3488 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003489 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003490 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003491 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003492 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003493 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003494
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003495 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003496
3497 <ul class="entry_type_enum">
3498 <li>
3499 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003500 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
Igor Murashkina10351a2014-01-15 17:05:22 -08003501this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003502 </li>
3503 <li>
3504 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003505 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
Zhijun He92e698d2014-01-13 16:24:31 -08003506for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003507 </li>
3508 <li>
3509 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003510 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003511current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003512 </li>
3513 <li>
3514 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003515 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003519 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3520needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003521capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003522 </li>
3523 <li>
3524 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003525 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003526(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3527and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003528completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003529FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003530 </li>
3531 </ul>
3532
3533 </td> <!-- entry_type -->
3534
3535 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003536 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </td>
3538
3539 <td class="entry_units">
3540 </td>
3541
3542 <td class="entry_range">
3543 </td>
3544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003545 <td class="entry_tags">
3546 </td>
3547
3548 </tr>
3549 <tr class="entries_header">
3550 <th class="th_details" colspan="5">Details</th>
3551 </tr>
3552 <tr class="entry_cont">
3553 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003554 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3555resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3556or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3557the algorithm states to INACTIVE.<wbr/></p>
3558<p>The camera device can do several state transitions between two results,<wbr/> if it is
3559allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3560seen in a result.<wbr/></p>
3561<p>The state in the result is the state for this image (in sync with this image): if
3562AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3563be good to use.<wbr/></p>
3564<p>Below are state transition tables for different AE modes.<wbr/></p>
3565<table>
3566<thead>
3567<tr>
3568<th align="center">State</th>
3569<th align="center">Transition Cause</th>
3570<th align="center">New State</th>
3571<th align="center">Notes</th>
3572</tr>
3573</thead>
3574<tbody>
3575<tr>
3576<td align="center">INACTIVE</td>
3577<td align="center"></td>
3578<td align="center">INACTIVE</td>
3579<td align="center">Camera device auto exposure algorithm is disabled</td>
3580</tr>
3581</tbody>
3582</table>
3583<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3584<table>
3585<thead>
3586<tr>
3587<th align="center">State</th>
3588<th align="center">Transition Cause</th>
3589<th align="center">New State</th>
3590<th align="center">Notes</th>
3591</tr>
3592</thead>
3593<tbody>
3594<tr>
3595<td align="center">INACTIVE</td>
3596<td align="center">Camera device initiates AE scan</td>
3597<td align="center">SEARCHING</td>
3598<td align="center">Values changing</td>
3599</tr>
3600<tr>
3601<td align="center">INACTIVE</td>
3602<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3603<td align="center">LOCKED</td>
3604<td align="center">Values locked</td>
3605</tr>
3606<tr>
3607<td align="center">SEARCHING</td>
3608<td align="center">Camera device finishes AE scan</td>
3609<td align="center">CONVERGED</td>
3610<td align="center">Good values,<wbr/> not changing</td>
3611</tr>
3612<tr>
3613<td align="center">SEARCHING</td>
3614<td align="center">Camera device finishes AE scan</td>
3615<td align="center">FLASH_<wbr/>REQUIRED</td>
3616<td align="center">Converged but too dark w/<wbr/>o flash</td>
3617</tr>
3618<tr>
3619<td align="center">SEARCHING</td>
3620<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3621<td align="center">LOCKED</td>
3622<td align="center">Values locked</td>
3623</tr>
3624<tr>
3625<td align="center">CONVERGED</td>
3626<td align="center">Camera device initiates AE scan</td>
3627<td align="center">SEARCHING</td>
3628<td align="center">Values changing</td>
3629</tr>
3630<tr>
3631<td align="center">CONVERGED</td>
3632<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3633<td align="center">LOCKED</td>
3634<td align="center">Values locked</td>
3635</tr>
3636<tr>
3637<td align="center">FLASH_<wbr/>REQUIRED</td>
3638<td align="center">Camera device initiates AE scan</td>
3639<td align="center">SEARCHING</td>
3640<td align="center">Values changing</td>
3641</tr>
3642<tr>
3643<td align="center">FLASH_<wbr/>REQUIRED</td>
3644<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3645<td align="center">LOCKED</td>
3646<td align="center">Values locked</td>
3647</tr>
3648<tr>
3649<td align="center">LOCKED</td>
3650<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3651<td align="center">SEARCHING</td>
3652<td align="center">Values not good after unlock</td>
3653</tr>
3654<tr>
3655<td align="center">LOCKED</td>
3656<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3657<td align="center">CONVERGED</td>
3658<td align="center">Values good after unlock</td>
3659</tr>
3660<tr>
3661<td align="center">LOCKED</td>
3662<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3663<td align="center">FLASH_<wbr/>REQUIRED</td>
3664<td align="center">Exposure good,<wbr/> but too dark</td>
3665</tr>
3666<tr>
3667<td align="center">PRECAPTURE</td>
3668<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3669<td align="center">CONVERGED</td>
3670<td align="center">Ready for high-quality capture</td>
3671</tr>
3672<tr>
3673<td align="center">PRECAPTURE</td>
3674<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3675<td align="center">LOCKED</td>
3676<td align="center">Ready for high-quality capture</td>
3677</tr>
3678<tr>
3679<td align="center">Any state</td>
3680<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3681<td align="center">PRECAPTURE</td>
3682<td align="center">Start AE precapture metering sequence</td>
3683</tr>
3684</tbody>
3685</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003686 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003688
3689
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003690 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3691 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003692
3693
3694 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003695 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003696 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003697 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003698 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003699 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003700
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003701 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003702
3703 <ul class="entry_type_enum">
3704 <li>
3705 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003706 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3707<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3708application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003709 </li>
3710 <li>
3711 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003712 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3713<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
3714is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3715the autofocus trigger action is called.<wbr/> When that trigger
3716is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3717the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3718<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3719and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003720 </li>
3721 <li>
3722 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003723 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3724autofocus trigger action is called.<wbr/></p>
3725<p>When that trigger is activated,<wbr/> AF must transition to
3726ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3727NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3728position to default,<wbr/> and sets the AF state to
3729INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003730 </li>
3731 <li>
3732 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003733 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3734position continually to attempt to provide a
3735constantly-in-focus image stream.<wbr/></p>
3736<p>The focusing behavior should be suitable for good quality
3737video recording; typically this means slower focus
3738movement and no overshoots.<wbr/> When the AF trigger is not
3739involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3740and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3741states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3742the algorithm should immediately transition into
3743AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3744lens position until a cancel AF trigger is received.<wbr/></p>
3745<p>Once cancel is received,<wbr/> the algorithm should transition
3746back to INACTIVE and resume passive scan.<wbr/> Note that this
3747behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3748ongoing PASSIVE_<wbr/>SCAN must immediately be
3749canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003750 </li>
3751 <li>
3752 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003753 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3754position continually to attempt to provide a
3755constantly-in-focus image stream.<wbr/></p>
3756<p>The focusing behavior should be suitable for still image
3757capture; typically this means focusing as fast as
3758possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3759algorithm should start in INACTIVE state,<wbr/> and then
3760transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3761appropriate as it attempts to maintain focus.<wbr/> When the AF
3762trigger is activated,<wbr/> the algorithm should finish its
3763PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3764AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3765lens position until a cancel AF trigger is received.<wbr/></p>
3766<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3767should transition back to INACTIVE and then act as if it
3768has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003769 </li>
3770 <li>
3771 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003772 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3773trigger is ignored,<wbr/> AF state should always be
3774INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003775 </li>
3776 </ul>
3777
3778 </td> <!-- entry_type -->
3779
3780 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003781 <p>Whether AF is currently enabled,<wbr/> and what
3782mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003783 </td>
3784
3785 <td class="entry_units">
3786 </td>
3787
3788 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003789 <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003790 </td>
3791
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003792 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003793 <ul class="entry_tags">
3794 <li><a href="#tag_BC">BC</a></li>
3795 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003796 </td>
3797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003798 </tr>
3799 <tr class="entries_header">
3800 <th class="th_details" colspan="5">Details</th>
3801 </tr>
3802 <tr class="entry_cont">
3803 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003804 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08003805<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3806the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3807in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003808 </td>
3809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003810
3811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003814
3815
3816 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003817 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003818 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003821 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003822 <span class="entry_type_container">x</span>
3823
3824 <span class="entry_type_array">
3825 5 x area_count
3826 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003827 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003828
3829
3830 </td> <!-- entry_type -->
3831
3832 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003833 <p>List of areas to use for focus
3834estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003835 </td>
3836
3837 <td class="entry_units">
3838 </td>
3839
3840 <td class="entry_range">
3841 </td>
3842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003843 <td class="entry_tags">
3844 <ul class="entry_tags">
3845 <li><a href="#tag_BC">BC</a></li>
3846 </ul>
3847 </td>
3848
3849 </tr>
3850 <tr class="entries_header">
3851 <th class="th_details" colspan="5">Details</th>
3852 </tr>
3853 <tr class="entry_cont">
3854 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003855 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3856xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
3857specified coordinates.<wbr/></p>
3858<p>The coordinate system is based on the active pixel array,<wbr/>
3859with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003860(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3861<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08003862bottom-right pixel in the active pixel array.<wbr/> The weight
3863should be nonnegative.<wbr/></p>
3864<p>If all regions have 0 weight,<wbr/> then no specific focus area
3865needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003866outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08003867should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08003868used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003869 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003870 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003871
3872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003873 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3874 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003875
3876
3877 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003878 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003879 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003880 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003881 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003882 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003884 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003885
3886 <ul class="entry_type_enum">
3887 <li>
3888 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003889 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3890to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3891this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003892 </li>
3893 <li>
3894 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003895 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3896currently doing an AF scan initiated by a continuous
3897autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003898 </li>
3899 <li>
3900 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003901 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3902believes it is in focus,<wbr/> but may restart scanning at
3903any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003904 </li>
3905 <li>
3906 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003907 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3908an AF scan because it was triggered by AF
3909trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003910 </li>
3911 <li>
3912 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003913 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3914believes it is focused correctly and is
3915locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003916 </li>
3917 <li>
3918 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003919 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3920failed to focus successfully and is
3921locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003922 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003923 <li>
3924 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003925 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3926passive scan without finding focus,<wbr/> and may restart
3927scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003928 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003929 </ul>
3930
3931 </td> <!-- entry_type -->
3932
3933 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003934 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003935 </td>
3936
3937 <td class="entry_units">
3938 </td>
3939
3940 <td class="entry_range">
3941 </td>
3942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003943 <td class="entry_tags">
3944 </td>
3945
3946 </tr>
3947 <tr class="entries_header">
3948 <th class="th_details" colspan="5">Details</th>
3949 </tr>
3950 <tr class="entry_cont">
3951 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003952 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3953resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3954or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
3955the algorithm states to INACTIVE.<wbr/></p>
3956<p>The camera device can do several state transitions between two results,<wbr/> if it is
3957allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3958seen in a result.<wbr/></p>
3959<p>The state in the result is the state for this image (in sync with this image): if
3960AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3961be sharp.<wbr/></p>
3962<p>Below are state transition tables for different AF modes.<wbr/></p>
3963<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>OFF or AF_<wbr/>MODE_<wbr/>EDOF:</p>
3964<table>
3965<thead>
3966<tr>
3967<th align="center">State</th>
3968<th align="center">Transition Cause</th>
3969<th align="center">New State</th>
3970<th align="center">Notes</th>
3971</tr>
3972</thead>
3973<tbody>
3974<tr>
3975<td align="center">INACTIVE</td>
3976<td align="center"></td>
3977<td align="center">INACTIVE</td>
3978<td align="center">Never changes</td>
3979</tr>
3980</tbody>
3981</table>
3982<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>AUTO or AF_<wbr/>MODE_<wbr/>MACRO:</p>
3983<table>
3984<thead>
3985<tr>
3986<th align="center">State</th>
3987<th align="center">Transition Cause</th>
3988<th align="center">New State</th>
3989<th align="center">Notes</th>
3990</tr>
3991</thead>
3992<tbody>
3993<tr>
3994<td align="center">INACTIVE</td>
3995<td align="center">AF_<wbr/>TRIGGER</td>
3996<td align="center">ACTIVE_<wbr/>SCAN</td>
3997<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
3998</tr>
3999<tr>
4000<td align="center">ACTIVE_<wbr/>SCAN</td>
4001<td align="center">AF sweep done</td>
4002<td align="center">FOCUSED_<wbr/>LOCKED</td>
4003<td align="center">Focused,<wbr/> Lens now locked</td>
4004</tr>
4005<tr>
4006<td align="center">ACTIVE_<wbr/>SCAN</td>
4007<td align="center">AF sweep done</td>
4008<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4009<td align="center">Not focused,<wbr/> Lens now locked</td>
4010</tr>
4011<tr>
4012<td align="center">ACTIVE_<wbr/>SCAN</td>
4013<td align="center">AF_<wbr/>CANCEL</td>
4014<td align="center">INACTIVE</td>
4015<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4016</tr>
4017<tr>
4018<td align="center">FOCUSED_<wbr/>LOCKED</td>
4019<td align="center">AF_<wbr/>CANCEL</td>
4020<td align="center">INACTIVE</td>
4021<td align="center">Cancel/<wbr/>reset AF</td>
4022</tr>
4023<tr>
4024<td align="center">FOCUSED_<wbr/>LOCKED</td>
4025<td align="center">AF_<wbr/>TRIGGER</td>
4026<td align="center">ACTIVE_<wbr/>SCAN</td>
4027<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4028</tr>
4029<tr>
4030<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4031<td align="center">AF_<wbr/>CANCEL</td>
4032<td align="center">INACTIVE</td>
4033<td align="center">Cancel/<wbr/>reset AF</td>
4034</tr>
4035<tr>
4036<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4037<td align="center">AF_<wbr/>TRIGGER</td>
4038<td align="center">ACTIVE_<wbr/>SCAN</td>
4039<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4040</tr>
4041<tr>
4042<td align="center">Any state</td>
4043<td align="center">Mode change</td>
4044<td align="center">INACTIVE</td>
4045<td align="center"></td>
4046</tr>
4047</tbody>
4048</table>
4049<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>VIDEO:</p>
4050<table>
4051<thead>
4052<tr>
4053<th align="center">State</th>
4054<th align="center">Transition Cause</th>
4055<th align="center">New State</th>
4056<th align="center">Notes</th>
4057</tr>
4058</thead>
4059<tbody>
4060<tr>
4061<td align="center">INACTIVE</td>
4062<td align="center">Camera device initiates new scan</td>
4063<td align="center">PASSIVE_<wbr/>SCAN</td>
4064<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4065</tr>
4066<tr>
4067<td align="center">INACTIVE</td>
4068<td align="center">AF_<wbr/>TRIGGER</td>
4069<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4070<td align="center">AF state query,<wbr/> Lens now locked</td>
4071</tr>
4072<tr>
4073<td align="center">PASSIVE_<wbr/>SCAN</td>
4074<td align="center">Camera device completes current scan</td>
4075<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4076<td align="center">End AF scan,<wbr/> Lens now locked</td>
4077</tr>
4078<tr>
4079<td align="center">PASSIVE_<wbr/>SCAN</td>
4080<td align="center">Camera device fails current scan</td>
4081<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4082<td align="center">End AF scan,<wbr/> Lens now locked</td>
4083</tr>
4084<tr>
4085<td align="center">PASSIVE_<wbr/>SCAN</td>
4086<td align="center">AF_<wbr/>TRIGGER</td>
4087<td align="center">FOCUSED_<wbr/>LOCKED</td>
4088<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4089</tr>
4090<tr>
4091<td align="center">PASSIVE_<wbr/>SCAN</td>
4092<td align="center">AF_<wbr/>TRIGGER</td>
4093<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4094<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4095</tr>
4096<tr>
4097<td align="center">PASSIVE_<wbr/>SCAN</td>
4098<td align="center">AF_<wbr/>CANCEL</td>
4099<td align="center">INACTIVE</td>
4100<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4101</tr>
4102<tr>
4103<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4104<td align="center">Camera device initiates new scan</td>
4105<td align="center">PASSIVE_<wbr/>SCAN</td>
4106<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4107</tr>
4108<tr>
4109<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4110<td align="center">Camera device initiates new scan</td>
4111<td align="center">PASSIVE_<wbr/>SCAN</td>
4112<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4113</tr>
4114<tr>
4115<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4116<td align="center">AF_<wbr/>TRIGGER</td>
4117<td align="center">FOCUSED_<wbr/>LOCKED</td>
4118<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4119</tr>
4120<tr>
4121<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4122<td align="center">AF_<wbr/>TRIGGER</td>
4123<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4124<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4125</tr>
4126<tr>
4127<td align="center">FOCUSED_<wbr/>LOCKED</td>
4128<td align="center">AF_<wbr/>TRIGGER</td>
4129<td align="center">FOCUSED_<wbr/>LOCKED</td>
4130<td align="center">No effect</td>
4131</tr>
4132<tr>
4133<td align="center">FOCUSED_<wbr/>LOCKED</td>
4134<td align="center">AF_<wbr/>CANCEL</td>
4135<td align="center">INACTIVE</td>
4136<td align="center">Restart AF scan</td>
4137</tr>
4138<tr>
4139<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4140<td align="center">AF_<wbr/>TRIGGER</td>
4141<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">No effect</td>
4143</tr>
4144<tr>
4145<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4146<td align="center">AF_<wbr/>CANCEL</td>
4147<td align="center">INACTIVE</td>
4148<td align="center">Restart AF scan</td>
4149</tr>
4150</tbody>
4151</table>
4152<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>PICTURE:</p>
4153<table>
4154<thead>
4155<tr>
4156<th align="center">State</th>
4157<th align="center">Transition Cause</th>
4158<th align="center">New State</th>
4159<th align="center">Notes</th>
4160</tr>
4161</thead>
4162<tbody>
4163<tr>
4164<td align="center">INACTIVE</td>
4165<td align="center">Camera device initiates new scan</td>
4166<td align="center">PASSIVE_<wbr/>SCAN</td>
4167<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4168</tr>
4169<tr>
4170<td align="center">INACTIVE</td>
4171<td align="center">AF_<wbr/>TRIGGER</td>
4172<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4173<td align="center">AF state query,<wbr/> Lens now locked</td>
4174</tr>
4175<tr>
4176<td align="center">PASSIVE_<wbr/>SCAN</td>
4177<td align="center">Camera device completes current scan</td>
4178<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4179<td align="center">End AF scan,<wbr/> Lens now locked</td>
4180</tr>
4181<tr>
4182<td align="center">PASSIVE_<wbr/>SCAN</td>
4183<td align="center">Camera device fails current scan</td>
4184<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4185<td align="center">End AF scan,<wbr/> Lens now locked</td>
4186</tr>
4187<tr>
4188<td align="center">PASSIVE_<wbr/>SCAN</td>
4189<td align="center">AF_<wbr/>TRIGGER</td>
4190<td align="center">FOCUSED_<wbr/>LOCKED</td>
4191<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4192</tr>
4193<tr>
4194<td align="center">PASSIVE_<wbr/>SCAN</td>
4195<td align="center">AF_<wbr/>TRIGGER</td>
4196<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4197<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4198</tr>
4199<tr>
4200<td align="center">PASSIVE_<wbr/>SCAN</td>
4201<td align="center">AF_<wbr/>CANCEL</td>
4202<td align="center">INACTIVE</td>
4203<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4204</tr>
4205<tr>
4206<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4207<td align="center">Camera device initiates new scan</td>
4208<td align="center">PASSIVE_<wbr/>SCAN</td>
4209<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4210</tr>
4211<tr>
4212<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4213<td align="center">Camera device initiates new scan</td>
4214<td align="center">PASSIVE_<wbr/>SCAN</td>
4215<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4216</tr>
4217<tr>
4218<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4219<td align="center">AF_<wbr/>TRIGGER</td>
4220<td align="center">FOCUSED_<wbr/>LOCKED</td>
4221<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4222</tr>
4223<tr>
4224<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4225<td align="center">AF_<wbr/>TRIGGER</td>
4226<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4227<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4228</tr>
4229<tr>
4230<td align="center">FOCUSED_<wbr/>LOCKED</td>
4231<td align="center">AF_<wbr/>TRIGGER</td>
4232<td align="center">FOCUSED_<wbr/>LOCKED</td>
4233<td align="center">No effect</td>
4234</tr>
4235<tr>
4236<td align="center">FOCUSED_<wbr/>LOCKED</td>
4237<td align="center">AF_<wbr/>CANCEL</td>
4238<td align="center">INACTIVE</td>
4239<td align="center">Restart AF scan</td>
4240</tr>
4241<tr>
4242<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4243<td align="center">AF_<wbr/>TRIGGER</td>
4244<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">No effect</td>
4246</tr>
4247<tr>
4248<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4249<td align="center">AF_<wbr/>CANCEL</td>
4250<td align="center">INACTIVE</td>
4251<td align="center">Restart AF scan</td>
4252</tr>
4253</tbody>
4254</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004255 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004256 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004257
4258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004259 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4260 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004261
4262
4263 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004264 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004265 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004266 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004267 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004268 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004269
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004270 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004271
4272
4273 </td> <!-- entry_type -->
4274
4275 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004276 <p>The ID sent with the latest
4277CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004278 </td>
4279
4280 <td class="entry_units">
4281 </td>
4282
4283 <td class="entry_range">
4284 </td>
4285
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004286 <td class="entry_tags">
4287 </td>
4288
4289 </tr>
4290 <tr class="entries_header">
4291 <th class="th_details" colspan="5">Details</th>
4292 </tr>
4293 <tr class="entry_cont">
4294 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004295 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4296received yet by HAL.<wbr/> Always updated even if AF algorithm
4297ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004298 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004299 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004300
4301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004302 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4303 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004304
4305
4306 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004307 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004308 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004309 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004310 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004311 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004312
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004313 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004314
4315 <ul class="entry_type_enum">
4316 <li>
4317 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004318 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4319the application-selected color transform matrix
4320(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4321(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4322device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004323 </li>
4324 <li>
4325 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004326 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4327the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4328and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004329 </li>
4330 <li>
4331 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004332 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4333the camera device uses incandescent light as the assumed scene
4334illumination for white balance.<wbr/> While the exact white balance
4335transforms are up to the camera device,<wbr/> they will approximately
4336match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004337 </li>
4338 <li>
4339 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004340 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4341the camera device uses fluorescent light as the assumed scene
4342illumination for white balance.<wbr/> While the exact white balance
4343transforms are up to the camera device,<wbr/> they will approximately
4344match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004345 </li>
4346 <li>
4347 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004348 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4349the camera device uses warm fluorescent light as the assumed scene
4350illumination for white balance.<wbr/> While the exact white balance
4351transforms are up to the camera device,<wbr/> they will approximately
4352match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004353 </li>
4354 <li>
4355 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004356 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4357the camera device uses daylight light as the assumed scene
4358illumination for white balance.<wbr/> While the exact white balance
4359transforms are up to the camera device,<wbr/> they will approximately
4360match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004361 </li>
4362 <li>
4363 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004364 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4365the camera device uses cloudy daylight light as the assumed scene
4366illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004367 </li>
4368 <li>
4369 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004370 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4371the camera device uses twilight light as the assumed scene
4372illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004373 </li>
4374 <li>
4375 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004376 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4377the camera device uses shade light as the assumed scene
4378illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004379 </li>
4380 </ul>
4381
4382 </td> <!-- entry_type -->
4383
4384 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004385 <p>Whether AWB is currently setting the color
4386transform fields,<wbr/> and what its illumination target
4387is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004388 </td>
4389
4390 <td class="entry_units">
4391 </td>
4392
4393 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004394 <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004395 </td>
4396
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004397 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004398 <ul class="entry_tags">
4399 <li><a href="#tag_BC">BC</a></li>
4400 <li><a href="#tag_AWB">AWB</a></li>
4401 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004402 </td>
4403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004404 </tr>
4405 <tr class="entries_header">
4406 <th class="th_details" colspan="5">Details</th>
4407 </tr>
4408 <tr class="entry_cont">
4409 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004410 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4411<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4412routine is enabled,<wbr/> overriding the application's selected
4413<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
4414<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4415<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4416routine is disabled.<wbr/> The applicantion manually controls the white
4417balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4418and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4419<p>When set to any other modes,<wbr/> the camera device's auto white balance
4420routine is disabled.<wbr/> The camera device uses each particular illumination
4421target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004422 </td>
4423 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004424
4425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004426 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4427 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004428
4429
4430 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004431 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004432 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004433 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004434 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004435 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004436 <span class="entry_type_container">x</span>
4437
4438 <span class="entry_type_array">
4439 5 x area_count
4440 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004441 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004442
4443
4444 </td> <!-- entry_type -->
4445
4446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004447 <p>List of areas to use for illuminant
4448estimation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004449 </td>
4450
4451 <td class="entry_units">
4452 </td>
4453
4454 <td class="entry_range">
4455 </td>
4456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004457 <td class="entry_tags">
4458 <ul class="entry_tags">
4459 <li><a href="#tag_BC">BC</a></li>
4460 </ul>
4461 </td>
4462
4463 </tr>
4464 <tr class="entries_header">
4465 <th class="th_details" colspan="5">Details</th>
4466 </tr>
4467 <tr class="entry_cont">
4468 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004469 <p>Only used in AUTO mode.<wbr/></p>
4470<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4471xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined inclusive of the
4472specified coordinates.<wbr/></p>
4473<p>The coordinate system is based on the active pixel array,<wbr/>
4474with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004475(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4476<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Igor Murashkin0b080452013-12-27 15:30:25 -08004477bottom-right pixel in the active pixel array.<wbr/> The weight
4478should be nonnegative.<wbr/></p>
4479<p>If all regions have 0 weight,<wbr/> then no specific metering area
4480needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004481outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
Igor Murashkin8aa2a112013-12-09 12:06:17 -08004482should ignore the sections outside the region and output the
Igor Murashkin0b080452013-12-27 15:30:25 -08004483used sections in the frame metadata</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004484 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004486
4487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004490
4491
4492 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004494 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004497 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004499 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004500
4501 <ul class="entry_type_enum">
4502 <li>
4503 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004504 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4505starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506 </li>
4507 <li>
4508 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004509 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004510values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 </li>
4512 <li>
4513 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004514 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004515current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004516 </li>
4517 <li>
4518 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004519 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004520 </li>
4521 </ul>
4522
4523 </td> <!-- entry_type -->
4524
4525 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004526 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004527 </td>
4528
4529 <td class="entry_units">
4530 </td>
4531
4532 <td class="entry_range">
4533 </td>
4534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004535 <td class="entry_tags">
4536 </td>
4537
4538 </tr>
4539 <tr class="entries_header">
4540 <th class="th_details" colspan="5">Details</th>
4541 </tr>
4542 <tr class="entry_cont">
4543 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004544 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4545resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4546or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
4547the algorithm states to INACTIVE.<wbr/></p>
4548<p>The camera device can do several state transitions between two results,<wbr/> if it is
4549allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4550a result.<wbr/></p>
4551<p>The state in the result is the state for this image (in sync with this image): if
4552AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4553be good to use.<wbr/></p>
4554<p>Below are state transition tables for different AWB modes.<wbr/></p>
4555<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4556<table>
4557<thead>
4558<tr>
4559<th align="center">State</th>
4560<th align="center">Transition Cause</th>
4561<th align="center">New State</th>
4562<th align="center">Notes</th>
4563</tr>
4564</thead>
4565<tbody>
4566<tr>
4567<td align="center">INACTIVE</td>
4568<td align="center"></td>
4569<td align="center">INACTIVE</td>
4570<td align="center">Camera device auto white balance algorithm is disabled</td>
4571</tr>
4572</tbody>
4573</table>
4574<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4575<table>
4576<thead>
4577<tr>
4578<th align="center">State</th>
4579<th align="center">Transition Cause</th>
4580<th align="center">New State</th>
4581<th align="center">Notes</th>
4582</tr>
4583</thead>
4584<tbody>
4585<tr>
4586<td align="center">INACTIVE</td>
4587<td align="center">Camera device initiates AWB scan</td>
4588<td align="center">SEARCHING</td>
4589<td align="center">Values changing</td>
4590</tr>
4591<tr>
4592<td align="center">INACTIVE</td>
4593<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4594<td align="center">LOCKED</td>
4595<td align="center">Values locked</td>
4596</tr>
4597<tr>
4598<td align="center">SEARCHING</td>
4599<td align="center">Camera device finishes AWB scan</td>
4600<td align="center">CONVERGED</td>
4601<td align="center">Good values,<wbr/> not changing</td>
4602</tr>
4603<tr>
4604<td align="center">SEARCHING</td>
4605<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4606<td align="center">LOCKED</td>
4607<td align="center">Values locked</td>
4608</tr>
4609<tr>
4610<td align="center">CONVERGED</td>
4611<td align="center">Camera device initiates AWB scan</td>
4612<td align="center">SEARCHING</td>
4613<td align="center">Values changing</td>
4614</tr>
4615<tr>
4616<td align="center">CONVERGED</td>
4617<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4618<td align="center">LOCKED</td>
4619<td align="center">Values locked</td>
4620</tr>
4621<tr>
4622<td align="center">LOCKED</td>
4623<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4624<td align="center">SEARCHING</td>
4625<td align="center">Values not good after unlock</td>
4626</tr>
4627<tr>
4628<td align="center">LOCKED</td>
4629<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4630<td align="center">CONVERGED</td>
4631<td align="center">Values good after unlock</td>
4632</tr>
4633</tbody>
4634</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004635 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004636 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004637
4638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004639 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4640 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004641
4642
4643 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004644 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004645 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004646 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004647 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004648 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004649
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004650 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004651
4652 <ul class="entry_type_enum">
4653 <li>
4654 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004655 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4656routines are disabled,<wbr/> no other settings in
4657android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004658 </li>
4659 <li>
4660 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004661 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4662Manual control of capture parameters is disabled.<wbr/> All
4663controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4664effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004665 </li>
4666 <li>
4667 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004668 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4669control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4670controls; the HAL must ignore those settings while
4671USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4672scene mode).<wbr/> Other control entries are still active.<wbr/>
4673This setting can only be used if availableSceneModes !=
4674UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004675 </li>
4676 </ul>
4677
4678 </td> <!-- entry_type -->
4679
4680 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004681 <p>Overall mode of 3A control
4682routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004683 </td>
4684
4685 <td class="entry_units">
4686 </td>
4687
4688 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004689 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004690 </td>
4691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004692 <td class="entry_tags">
4693 <ul class="entry_tags">
4694 <li><a href="#tag_BC">BC</a></li>
4695 </ul>
4696 </td>
4697
4698 </tr>
4699 <tr class="entries_header">
4700 <th class="th_details" colspan="5">Details</th>
4701 </tr>
4702 <tr class="entry_cont">
4703 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004704 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004705by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004706capture parameters itself.<wbr/></p>
4707<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004708android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08004709<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004710android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004711one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004712as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004713<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004714 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004715 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004716
4717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004718 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4719 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004720
4721
4722
4723 <!-- end of kind -->
4724 </tbody>
4725
4726 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004727 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004728
4729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004730 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004731
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004732 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004733 <tr>
4734 <th class="th_name">Property Name</th>
4735 <th class="th_type">Type</th>
4736 <th class="th_description">Description</th>
4737 <th class="th_units">Units</th>
4738 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <th class="th_tags">Tags</th>
4740 </tr>
4741 </thead>
4742
4743 <tbody>
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004755 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004756 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004757 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004758 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004759 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004760
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004761 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004762
4763 <ul class="entry_type_enum">
4764 <li>
4765 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004766 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4767Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004768 </li>
4769 <li>
4770 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004771 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4772rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004773 </li>
4774 </ul>
4775
4776 </td> <!-- entry_type -->
4777
4778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004779 <p>Controls the quality of the demosaicing
4780processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004781 </td>
4782
4783 <td class="entry_units">
4784 </td>
4785
4786 <td class="entry_range">
4787 </td>
4788
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004789 <td class="entry_tags">
4790 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004791 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004792 </ul>
4793 </td>
4794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004795 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004796
4797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004798 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4799 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004800
4801
4802
4803 <!-- end of kind -->
4804 </tbody>
4805
4806 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004807 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004808
4809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004810 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004811
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004812 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004813 <tr>
4814 <th class="th_name">Property Name</th>
4815 <th class="th_type">Type</th>
4816 <th class="th_description">Description</th>
4817 <th class="th_units">Units</th>
4818 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 <th class="th_tags">Tags</th>
4820 </tr>
4821 </thead>
4822
4823 <tbody>
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004835 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004836 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004837 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004839 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004840
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004842
4843 <ul class="entry_type_enum">
4844 <li>
4845 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004846 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004847 </li>
4848 <li>
4849 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004850 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4851output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004852 </li>
4853 <li>
4854 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004855 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4856quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857 </li>
4858 </ul>
4859
4860 </td> <!-- entry_type -->
4861
4862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004863 <p>Operation mode for edge
4864enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865 </td>
4866
4867 <td class="entry_units">
4868 </td>
4869
4870 <td class="entry_range">
4871 </td>
4872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004873 <td class="entry_tags">
4874 </td>
4875
4876 </tr>
4877 <tr class="entries_header">
4878 <th class="th_details" colspan="5">Details</th>
4879 </tr>
4880 <tr class="entry_cont">
4881 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004882 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4883enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004884<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004885will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004886camera device will use the highest-quality enhancement algorithms,<wbr/>
4887even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004888not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004889 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004890 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004891
4892
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004893 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4894 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004895
4896
4897 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004899 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004902 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004903
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004904 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004905
4906
4907 </td> <!-- entry_type -->
4908
4909 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004910 <p>Control the amount of edge enhancement
4911applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004912 </td>
4913
4914 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004915 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 </td>
4917
4918 <td class="entry_range">
4919 </td>
4920
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004921 <td class="entry_tags">
4922 </td>
4923
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004924 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004925
4926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004927 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4928 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004929
4930
4931
4932 <!-- end of kind -->
4933 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004934 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004935
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004936 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004937 <tr>
4938 <th class="th_name">Property Name</th>
4939 <th class="th_type">Type</th>
4940 <th class="th_description">Description</th>
4941 <th class="th_units">Units</th>
4942 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 <th class="th_tags">Tags</th>
4944 </tr>
4945 </thead>
4946
4947 <tbody>
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004959 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004960 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004961 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004962 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004963 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004964
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004965 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004966
4967 <ul class="entry_type_enum">
4968 <li>
4969 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004970 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004971 </li>
4972 <li>
4973 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004974 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4975output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004976 </li>
4977 <li>
4978 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004979 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4980quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004981 </li>
4982 </ul>
4983
4984 </td> <!-- entry_type -->
4985
4986 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004987 <p>Operation mode for edge
4988enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989 </td>
4990
4991 <td class="entry_units">
4992 </td>
4993
4994 <td class="entry_range">
4995 </td>
4996
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004997 <td class="entry_tags">
4998 </td>
4999
5000 </tr>
5001 <tr class="entries_header">
5002 <th class="th_details" colspan="5">Details</th>
5003 </tr>
5004 <tr class="entry_cont">
5005 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005006 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5007enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005008<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005009will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005010camera device will use the highest-quality enhancement algorithms,<wbr/>
5011even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005012not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005013 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005015
5016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005019
5020
5021
5022 <!-- end of kind -->
5023 </tbody>
5024
5025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005026 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005027
5028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005032 <tr>
5033 <th class="th_name">Property Name</th>
5034 <th class="th_type">Type</th>
5035 <th class="th_description">Description</th>
5036 <th class="th_units">Units</th>
5037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 <th class="th_tags">Tags</th>
5039 </tr>
5040 </thead>
5041
5042 <tbody>
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005054 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005055 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005058 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005060 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005061
5062
5063 </td> <!-- entry_type -->
5064
5065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005066 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005067 </td>
5068
5069 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005070 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005071 </td>
5072
5073 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005074 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005075 </td>
5076
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077 <td class="entry_tags">
5078 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005079 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005080 </ul>
5081 </td>
5082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005083 </tr>
5084 <tr class="entries_header">
5085 <th class="th_details" colspan="5">Details</th>
5086 </tr>
5087 <tr class="entry_cont">
5088 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005089 <p>Power for snapshot may use a different scale than
5090for torch mode.<wbr/> Only one entry for torch mode will be
5091used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005092 </td>
5093 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005094
5095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005096 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5097 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098
5099
5100 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005101 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005102 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005103 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005105 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005106
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005107 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005108
5109
5110 </td> <!-- entry_type -->
5111
5112 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005113 <p>Firing time of flash relative to start of
5114exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005115 </td>
5116
5117 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005118 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 </td>
5120
5121 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005122 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005123 </td>
5124
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125 <td class="entry_tags">
5126 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005127 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005128 </ul>
5129 </td>
5130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005131 </tr>
5132 <tr class="entries_header">
5133 <th class="th_details" colspan="5">Details</th>
5134 </tr>
5135 <tr class="entry_cont">
5136 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005137 <p>Clamped to (0,<wbr/> exposure time - flash
5138duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005139 </td>
5140 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005141
5142
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005143 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5144 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005145
5146
5147 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005149 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005152 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005154 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005155
5156 <ul class="entry_type_enum">
5157 <li>
5158 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005159 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005160 </li>
5161 <li>
5162 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005163 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5164for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5165<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005166 </li>
5167 <li>
5168 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005169 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005170 </li>
5171 </ul>
5172
5173 </td> <!-- entry_type -->
5174
5175 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005176 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005177 </td>
5178
5179 <td class="entry_units">
5180 </td>
5181
5182 <td class="entry_range">
5183 </td>
5184
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005185 <td class="entry_tags">
5186 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005187 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005188 </ul>
5189 </td>
5190
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005191 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005192 <tr class="entries_header">
5193 <th class="th_details" colspan="5">Details</th>
5194 </tr>
5195 <tr class="entry_cont">
5196 <td class="entry_details" colspan="5">
5197 <p>This control is only effective when flash unit is available
5198(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5199<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5200Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5201ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5202<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5203<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5204device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5205control should be used along with AE precapture metering sequence
5206(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5207<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5208for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5209 </td>
5210 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005211
5212
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005213 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5214 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005215
5216
5217
5218 <!-- end of kind -->
5219 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005220 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005221
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005222 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005223 <tr>
5224 <th class="th_name">Property Name</th>
5225 <th class="th_type">Type</th>
5226 <th class="th_description">Description</th>
5227 <th class="th_units">Units</th>
5228 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005229 <th class="th_tags">Tags</th>
5230 </tr>
5231 </thead>
5232
5233 <tbody>
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005247 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005248 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005249 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005250 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005251 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005252
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005253 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005254
5255
5256 </td> <!-- entry_type -->
5257
5258 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005259 <p>Whether this camera has a
5260flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005261 </td>
5262
5263 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005264 boolean (0 = false,<wbr/> otherwise true)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005265 </td>
5266
5267 <td class="entry_range">
5268 </td>
5269
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005270 <td class="entry_tags">
5271 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005272 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005273 </ul>
5274 </td>
5275
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005276 </tr>
5277 <tr class="entries_header">
5278 <th class="th_details" colspan="5">Details</th>
5279 </tr>
5280 <tr class="entry_cont">
5281 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005282 <p>If no flash,<wbr/> none of the flash controls do
5283anything.<wbr/> All other metadata should return 0</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005284 </td>
5285 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005286
5287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005288 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5289 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005290
5291
5292 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005293 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005294 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005295 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005296 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005297 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005298
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005299 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005300
5301
5302 </td> <!-- entry_type -->
5303
5304 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005305 <p>Time taken before flash can fire
5306again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005307 </td>
5308
5309 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005310 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005311 </td>
5312
5313 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005314 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005315 </td>
5316
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005317 <td class="entry_tags">
5318 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005319 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005320 </ul>
5321 </td>
5322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005323 </tr>
5324 <tr class="entries_header">
5325 <th class="th_details" colspan="5">Details</th>
5326 </tr>
5327 <tr class="entry_cont">
5328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005329 <p>1 second too long/<wbr/>too short for recharge? Should
5330this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005331 </td>
5332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005333
5334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005337
5338
5339
5340
5341
5342 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005343 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005344 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005345 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005346 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005347 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005348
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005349 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005350
5351
5352 </td> <!-- entry_type -->
5353
5354 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005355 <p>The x,<wbr/>y whitepoint of the
5356flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005357 </td>
5358
5359 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005360 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005361 </td>
5362
5363 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005364 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005365 </td>
5366
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005367 <td class="entry_tags">
5368 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005369 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005370 </ul>
5371 </td>
5372
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005373 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005374
5375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005376 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5377 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005378
5379
5380 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005381 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005382 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005383 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005384 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005385 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005386
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005387 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005388
5389
5390 </td> <!-- entry_type -->
5391
5392 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005393 <p>Max energy output of the flash for a full
5394power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005395 </td>
5396
5397 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005398 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005399 </td>
5400
5401 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005402 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005403 </td>
5404
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005405 <td class="entry_tags">
5406 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005407 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005408 </ul>
5409 </td>
5410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005411 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005412
5413
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005414 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5415 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005416
5417
5418
5419 <!-- end of kind -->
5420 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005421 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005423 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005424 <tr>
5425 <th class="th_name">Property Name</th>
5426 <th class="th_type">Type</th>
5427 <th class="th_description">Description</th>
5428 <th class="th_units">Units</th>
5429 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430 <th class="th_tags">Tags</th>
5431 </tr>
5432 </thead>
5433
5434 <tbody>
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005446 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005447 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005448 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005449 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005450 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005451
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005452 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005453
5454
5455 </td> <!-- entry_type -->
5456
5457 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005458 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005459 </td>
5460
5461 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005462 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005463 </td>
5464
5465 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005466 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005467 </td>
5468
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005469 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005470 <ul class="entry_tags">
5471 <li><a href="#tag_V1">V1</a></li>
5472 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473 </td>
5474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005475 </tr>
5476 <tr class="entries_header">
5477 <th class="th_details" colspan="5">Details</th>
5478 </tr>
5479 <tr class="entry_cont">
5480 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005481 <p>Power for snapshot may use a different scale than
5482for torch mode.<wbr/> Only one entry for torch mode will be
5483used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005484 </td>
5485 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005486
5487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005488 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5489 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005490
5491
5492 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005493 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005494 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005495 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005496 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005497 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005498
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005499 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005500
5501
5502 </td> <!-- entry_type -->
5503
5504 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005505 <p>Firing time of flash relative to start of
5506exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005507 </td>
5508
5509 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005510 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005511 </td>
5512
5513 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005514 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005515 </td>
5516
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005517 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005518 <ul class="entry_tags">
5519 <li><a href="#tag_V1">V1</a></li>
5520 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005521 </td>
5522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005523 </tr>
5524 <tr class="entries_header">
5525 <th class="th_details" colspan="5">Details</th>
5526 </tr>
5527 <tr class="entry_cont">
5528 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005529 <p>Clamped to (0,<wbr/> exposure time - flash
5530duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005531 </td>
5532 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005533
5534
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005535 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5536 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005537
5538
5539 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005540 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005541 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005542 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005543 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005544 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005545
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005546 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005547
5548 <ul class="entry_type_enum">
5549 <li>
5550 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005551 <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005552 </li>
5553 <li>
5554 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005555 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5556for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5557<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005558 </li>
5559 <li>
5560 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005561 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005562 </li>
5563 </ul>
5564
5565 </td> <!-- entry_type -->
5566
5567 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005568 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005569 </td>
5570
5571 <td class="entry_units">
5572 </td>
5573
5574 <td class="entry_range">
5575 </td>
5576
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005577 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005578 <ul class="entry_tags">
5579 <li><a href="#tag_BC">BC</a></li>
5580 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005581 </td>
5582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005583 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005584 <tr class="entries_header">
5585 <th class="th_details" colspan="5">Details</th>
5586 </tr>
5587 <tr class="entry_cont">
5588 <td class="entry_details" colspan="5">
5589 <p>This control is only effective when flash unit is available
5590(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> != 0</code>).<wbr/></p>
5591<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
5592Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5593ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5594<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5595<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5596device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5597control should be used along with AE precapture metering sequence
5598(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
5599<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5600for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5601 </td>
5602 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005603
5604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005605 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5606 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005607
5608
5609 <tr class="entry" id="dynamic_android.flash.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005610 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005611 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005612 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005613 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005614 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005615
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005616 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005617
5618 <ul class="entry_type_enum">
5619 <li>
5620 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005621 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005622 </li>
5623 <li>
5624 <span class="entry_type_enum_name">CHARGING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005625 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5626charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005627 </li>
5628 <li>
5629 <span class="entry_type_enum_name">READY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005630 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash is
5631ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005632 </li>
5633 <li>
5634 <span class="entry_type_enum_name">FIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005635 <span class="entry_type_enum_notes"><p>if android.<wbr/>flash.<wbr/>available is true Flash fired
5636for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005637 </li>
5638 </ul>
5639
5640 </td> <!-- entry_type -->
5641
5642 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005643 <p>Current state of the flash
5644unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005645 </td>
5646
5647 <td class="entry_units">
5648 </td>
5649
5650 <td class="entry_range">
5651 </td>
5652
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005653 <td class="entry_tags">
5654 </td>
5655
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005656 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005657
5658
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005659 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5660 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005661
5662
5663
5664 <!-- end of kind -->
5665 </tbody>
5666
5667 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005668 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005669
5670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005671 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005672
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005673 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005674 <tr>
5675 <th class="th_name">Property Name</th>
5676 <th class="th_type">Type</th>
5677 <th class="th_description">Description</th>
5678 <th class="th_units">Units</th>
5679 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680 <th class="th_tags">Tags</th>
5681 </tr>
5682 </thead>
5683
5684 <tbody>
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005696 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005697 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005698 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005699 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005700 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005701
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005702 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005703
5704 <ul class="entry_type_enum">
5705 <li>
5706 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005707 <span class="entry_type_enum_notes"><p>No geometric correction is
5708applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005709 </li>
5710 <li>
5711 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005712 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5713bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005714 </li>
5715 <li>
5716 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005717 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5718quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005719 </li>
5720 </ul>
5721
5722 </td> <!-- entry_type -->
5723
5724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005725 <p>Operating mode of geometric
5726correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005727 </td>
5728
5729 <td class="entry_units">
5730 </td>
5731
5732 <td class="entry_range">
5733 </td>
5734
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005735 <td class="entry_tags">
5736 </td>
5737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005739
5740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005741 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5742 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005743
5744
5745 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005746 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005747 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005748 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005749 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005750 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005751
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005752 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005753
5754
5755 </td> <!-- entry_type -->
5756
5757 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005758 <p>Control the amount of shading correction
5759applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005760 </td>
5761
5762 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005763 unitless: 1-10; 10 is full shading
5764 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005765 </td>
5766
5767 <td class="entry_range">
5768 </td>
5769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005770 <td class="entry_tags">
5771 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005772 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005773 </ul>
5774 </td>
5775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005777
5778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5780 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005781
5782
5783
5784 <!-- end of kind -->
5785 </tbody>
5786
5787 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005788 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005789
5790
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005791 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005792
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005793 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005794 <tr>
5795 <th class="th_name">Property Name</th>
5796 <th class="th_type">Type</th>
5797 <th class="th_description">Description</th>
5798 <th class="th_units">Units</th>
5799 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005800 <th class="th_tags">Tags</th>
5801 </tr>
5802 </thead>
5803
5804 <tbody>
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005816 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005817 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005818 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005820 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005821
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005822 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005823
5824 <ul class="entry_type_enum">
5825 <li>
5826 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005827 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5828applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005829 </li>
5830 <li>
5831 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005832 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5833Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005834 </li>
5835 <li>
5836 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005837 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5838quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005839 </li>
5840 </ul>
5841
5842 </td> <!-- entry_type -->
5843
5844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005845 <p>Set operational mode for hot pixel
5846correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005847 </td>
5848
5849 <td class="entry_units">
5850 </td>
5851
5852 <td class="entry_range">
5853 </td>
5854
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005855 <td class="entry_tags">
5856 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005857 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005858 </ul>
5859 </td>
5860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005862
5863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005864 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5865 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005866
5867
5868
5869 <!-- end of kind -->
5870 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005871 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005872
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005873 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005874 <tr>
5875 <th class="th_name">Property Name</th>
5876 <th class="th_type">Type</th>
5877 <th class="th_description">Description</th>
5878 <th class="th_units">Units</th>
5879 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005880 <th class="th_tags">Tags</th>
5881 </tr>
5882 </thead>
5883
5884 <tbody>
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005898 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005899 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005900 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005901 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005902 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005903 <span class="entry_type_container">x</span>
5904
5905 <span class="entry_type_array">
5906 2 x n
5907 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005908 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005909 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005910
5911
5912 </td> <!-- entry_type -->
5913
5914 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005915 <p>Location of hot/<wbr/>defective pixels on
5916sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005917 </td>
5918
5919 <td class="entry_units">
5920 </td>
5921
5922 <td class="entry_range">
5923 </td>
5924
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005925 <td class="entry_tags">
5926 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005927 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005928 </ul>
5929 </td>
5930
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005931 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005932
5933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005934 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5935 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005936
5937
5938
5939
5940
5941
5942 <!-- end of kind -->
5943 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005944 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005945
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005946 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005947 <tr>
5948 <th class="th_name">Property Name</th>
5949 <th class="th_type">Type</th>
5950 <th class="th_description">Description</th>
5951 <th class="th_units">Units</th>
5952 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005953 <th class="th_tags">Tags</th>
5954 </tr>
5955 </thead>
5956
5957 <tbody>
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005969 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005970 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005971 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005972 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005973 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005974
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005975 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005976
5977 <ul class="entry_type_enum">
5978 <li>
5979 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005980 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5981applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982 </li>
5983 <li>
5984 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005985 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5986Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005987 </li>
5988 <li>
5989 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005990 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5991quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005992 </li>
5993 </ul>
5994
5995 </td> <!-- entry_type -->
5996
5997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005998 <p>Set operational mode for hot pixel
5999correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006000 </td>
6001
6002 <td class="entry_units">
6003 </td>
6004
6005 <td class="entry_range">
6006 </td>
6007
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006008 <td class="entry_tags">
6009 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006010 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006011 </ul>
6012 </td>
6013
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006014 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006015
6016
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6018 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006019
6020
6021
6022 <!-- end of kind -->
6023 </tbody>
6024
6025 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006026 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006027
6028
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006029 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006030
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006031 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006032 <tr>
6033 <th class="th_name">Property Name</th>
6034 <th class="th_type">Type</th>
6035 <th class="th_description">Description</th>
6036 <th class="th_units">Units</th>
6037 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006038 <th class="th_tags">Tags</th>
6039 </tr>
6040 </thead>
6041
6042 <tbody>
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006054 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006055 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006058 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006059 <span class="entry_type_container">x</span>
6060
6061 <span class="entry_type_array">
6062 3
6063 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006064 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006065 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006066
6067
6068 </td> <!-- entry_type -->
6069
6070 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006071 <p>GPS coordinates to include in output JPEG
6072EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006073 </td>
6074
6075 <td class="entry_units">
6076 </td>
6077
6078 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006079 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006080 </td>
6081
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006082 <td class="entry_tags">
6083 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006084 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006085 </ul>
6086 </td>
6087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006089
6090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006093
6094
6095 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006096 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006097 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006098 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006099 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006100 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006101
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006102 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006103
6104
6105 </td> <!-- entry_type -->
6106
6107 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006108 <p>32 characters describing GPS algorithm to
6109include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006110 </td>
6111
6112 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006113 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006114 </td>
6115
6116 <td class="entry_range">
6117 </td>
6118
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 <td class="entry_tags">
6120 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006121 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006122 </ul>
6123 </td>
6124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006125 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006126
6127
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006128 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6129 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006130
6131
6132 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006133 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006134 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006135 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006137 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006138
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006139 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006140
6141
6142 </td> <!-- entry_type -->
6143
6144 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006145 <p>Time GPS fix was made to include in
6146EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147 </td>
6148
6149 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006150 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006151 </td>
6152
6153 <td class="entry_range">
6154 </td>
6155
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 <td class="entry_tags">
6157 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006158 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006159 </ul>
6160 </td>
6161
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006162 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006163
6164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006165 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6166 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006167
6168
6169 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006170 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006171 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006172 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006173 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006174 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006175
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006177
6178
6179 </td> <!-- entry_type -->
6180
6181 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006182 <p>Orientation of JPEG image to
6183write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184 </td>
6185
6186 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006187 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006188 </td>
6189
6190 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006191 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006192 </td>
6193
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194 <td class="entry_tags">
6195 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006196 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006197 </ul>
6198 </td>
6199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006200 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006201
6202
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006203 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6204 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006205
6206
6207 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006208 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006209 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006210 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006211 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006212 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006213
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006214 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006215
6216
6217 </td> <!-- entry_type -->
6218
6219 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006220 <p>Compression quality of the final JPEG
6221image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006222 </td>
6223
6224 <td class="entry_units">
6225 </td>
6226
6227 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006228 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006229 </td>
6230
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006231 <td class="entry_tags">
6232 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006233 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006234 </ul>
6235 </td>
6236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006237 </tr>
6238 <tr class="entries_header">
6239 <th class="th_details" colspan="5">Details</th>
6240 </tr>
6241 <tr class="entry_cont">
6242 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006243 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006244 </td>
6245 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006246
6247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006248 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6249 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006250
6251
6252 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006253 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006254 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006255 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006257 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006258
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006259 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006260
6261
6262 </td> <!-- entry_type -->
6263
6264 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006265 <p>Compression quality of JPEG
6266thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006267 </td>
6268
6269 <td class="entry_units">
6270 </td>
6271
6272 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006273 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006274 </td>
6275
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006276 <td class="entry_tags">
6277 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006278 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006279 </ul>
6280 </td>
6281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006282 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006283
6284
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006285 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6286 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006287
6288
6289 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006290 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006291 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006292 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006294 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006295 <span class="entry_type_container">x</span>
6296
6297 <span class="entry_type_array">
6298 2
6299 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006300 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006301
6302
6303 </td> <!-- entry_type -->
6304
6305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006306 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006307 </td>
6308
6309 <td class="entry_units">
6310 </td>
6311
6312 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006313 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006314 </td>
6315
6316 <td class="entry_tags">
6317 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006318 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006319 </ul>
6320 </td>
6321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006322 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006323 <tr class="entries_header">
6324 <th class="th_details" colspan="5">Details</th>
6325 </tr>
6326 <tr class="entry_cont">
6327 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006328 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6329but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006330<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6331the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006332 </td>
6333 </tr>
6334
6335
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006336 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6337 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006338
6339
6340
6341 <!-- end of kind -->
6342 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006343 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006345 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006346 <tr>
6347 <th class="th_name">Property Name</th>
6348 <th class="th_type">Type</th>
6349 <th class="th_description">Description</th>
6350 <th class="th_units">Units</th>
6351 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006352 <th class="th_tags">Tags</th>
6353 </tr>
6354 </thead>
6355
6356 <tbody>
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006368 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006369 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006370 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006371 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006372 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006373 <span class="entry_type_container">x</span>
6374
6375 <span class="entry_type_array">
6376 2 x n
6377 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006378 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006379
6380
6381 </td> <!-- entry_type -->
6382
6383 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006384 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006385 </td>
6386
6387 <td class="entry_units">
6388 </td>
6389
6390 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006391 <p>Will include at least one valid resolution,<wbr/> plus
6392(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006393 </td>
6394
6395 <td class="entry_tags">
6396 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006397 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006398 </ul>
6399 </td>
6400
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006401 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006402 <tr class="entries_header">
6403 <th class="th_details" colspan="5">Details</th>
6404 </tr>
6405 <tr class="entry_cont">
6406 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006407 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006408<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006409<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6410If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6411<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006412aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006413The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006414in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006415<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
Igor Murashkin0b080452013-12-27 15:30:25 -08006416one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6417and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006418<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006419</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006420 </td>
6421 </tr>
6422
6423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006424 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6425 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006426
6427
6428 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006429 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006430 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006431 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006432 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006433 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006434
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006435 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006436
6437
6438 </td> <!-- entry_type -->
6439
6440 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006441 <p>Maximum size in bytes for the compressed
6442JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006443 </td>
6444
6445 <td class="entry_units">
6446 </td>
6447
6448 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006449 <p>Must be large enough to fit any JPEG produced by
6450the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006451 </td>
6452
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006453 <td class="entry_tags">
6454 </td>
6455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006456 </tr>
6457 <tr class="entries_header">
6458 <th class="th_details" colspan="5">Details</th>
6459 </tr>
6460 <tr class="entry_cont">
6461 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006462 <p>This is used for sizing the gralloc buffers for
6463JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006464 </td>
6465 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006466
6467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006470
6471
6472
6473 <!-- end of kind -->
6474 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006475 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006476
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006477 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478 <tr>
6479 <th class="th_name">Property Name</th>
6480 <th class="th_type">Type</th>
6481 <th class="th_description">Description</th>
6482 <th class="th_units">Units</th>
6483 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006484 <th class="th_tags">Tags</th>
6485 </tr>
6486 </thead>
6487
6488 <tbody>
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006500 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006501 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006502 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006503 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006504 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006505 <span class="entry_type_container">x</span>
6506
6507 <span class="entry_type_array">
6508 3
6509 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006510 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006511 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006512
6513
6514 </td> <!-- entry_type -->
6515
6516 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006517 <p>GPS coordinates to include in output JPEG
6518EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006519 </td>
6520
6521 <td class="entry_units">
6522 </td>
6523
6524 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006525 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006526 </td>
6527
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006528 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006529 <ul class="entry_tags">
6530 <li><a href="#tag_BC">BC</a></li>
6531 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006532 </td>
6533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006534 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006535
6536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006537 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6538 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006539
6540
6541 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006542 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006543 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006544 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006545 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006546 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006547
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006548 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006549
6550
6551 </td> <!-- entry_type -->
6552
6553 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006554 <p>32 characters describing GPS algorithm to
6555include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006556 </td>
6557
6558 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006559 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006560 </td>
6561
6562 <td class="entry_range">
6563 </td>
6564
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006565 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006566 <ul class="entry_tags">
6567 <li><a href="#tag_BC">BC</a></li>
6568 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006569 </td>
6570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006572
6573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006576
6577
6578 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006579 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006580 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006583 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006585 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006586
6587
6588 </td> <!-- entry_type -->
6589
6590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006591 <p>Time GPS fix was made to include in
6592EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006593 </td>
6594
6595 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006596 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006597 </td>
6598
6599 <td class="entry_range">
6600 </td>
6601
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006602 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006603 <ul class="entry_tags">
6604 <li><a href="#tag_BC">BC</a></li>
6605 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006606 </td>
6607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006608 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006609
6610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006611 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6612 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006613
6614
6615 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006616 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006617 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006618 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006619 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006620 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006621
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006622 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006623
6624
6625 </td> <!-- entry_type -->
6626
6627 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006628 <p>Orientation of JPEG image to
6629write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006630 </td>
6631
6632 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006633 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006634 </td>
6635
6636 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006637 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006638 </td>
6639
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006640 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006641 <ul class="entry_tags">
6642 <li><a href="#tag_BC">BC</a></li>
6643 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006644 </td>
6645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006646 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006647
6648
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006649 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6650 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006651
6652
6653 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006654 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006655 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006658 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006659
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006660 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006661
6662
6663 </td> <!-- entry_type -->
6664
6665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006666 <p>Compression quality of the final JPEG
6667image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006668 </td>
6669
6670 <td class="entry_units">
6671 </td>
6672
6673 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006674 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006675 </td>
6676
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006677 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006678 <ul class="entry_tags">
6679 <li><a href="#tag_BC">BC</a></li>
6680 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006681 </td>
6682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006683 </tr>
6684 <tr class="entries_header">
6685 <th class="th_details" colspan="5">Details</th>
6686 </tr>
6687 <tr class="entry_cont">
6688 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006689 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006690 </td>
6691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006692
6693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006696
6697
6698 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006699 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006700 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006701 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006703 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006704
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006705 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006706
6707
6708 </td> <!-- entry_type -->
6709
6710 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006711 <p>The size of the compressed JPEG image,<wbr/> in
6712bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006713 </td>
6714
6715 <td class="entry_units">
6716 </td>
6717
6718 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006719 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006720 </td>
6721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006722 <td class="entry_tags">
6723 </td>
6724
6725 </tr>
6726 <tr class="entries_header">
6727 <th class="th_details" colspan="5">Details</th>
6728 </tr>
6729 <tr class="entry_cont">
6730 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006731 <p>If no JPEG output is produced for the request,<wbr/>
6732this must be 0.<wbr/></p>
6733<p>Otherwise,<wbr/> this describes the real size of the compressed
6734JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006735if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6736has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
Igor Murashkin0b080452013-12-27 15:30:25 -08006737the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6738500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006739 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006740 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006741
6742
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006743 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6744 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006745
6746
6747 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006748 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006749 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006750 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006751 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006752 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006753
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006754 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006755
6756
6757 </td> <!-- entry_type -->
6758
6759 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006760 <p>Compression quality of JPEG
6761thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006762 </td>
6763
6764 <td class="entry_units">
6765 </td>
6766
6767 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006768 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006769 </td>
6770
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006771 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006772 <ul class="entry_tags">
6773 <li><a href="#tag_BC">BC</a></li>
6774 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006775 </td>
6776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006778
6779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6781 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006782
6783
6784 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006785 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006786 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006787 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006789 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006790 <span class="entry_type_container">x</span>
6791
6792 <span class="entry_type_array">
6793 2
6794 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006795 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006796
6797
6798 </td> <!-- entry_type -->
6799
6800 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006801 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006802 </td>
6803
6804 <td class="entry_units">
6805 </td>
6806
6807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006808 <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006809 </td>
6810
6811 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006812 <ul class="entry_tags">
6813 <li><a href="#tag_BC">BC</a></li>
6814 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815 </td>
6816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006817 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006818 <tr class="entries_header">
6819 <th class="th_details" colspan="5">Details</th>
6820 </tr>
6821 <tr class="entry_cont">
6822 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006823 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6824but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006825<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6826the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006827 </td>
6828 </tr>
6829
6830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006833
6834
6835
6836 <!-- end of kind -->
6837 </tbody>
6838
6839 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006840 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006841
6842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006843 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006844
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006845 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006846 <tr>
6847 <th class="th_name">Property Name</th>
6848 <th class="th_type">Type</th>
6849 <th class="th_description">Description</th>
6850 <th class="th_units">Units</th>
6851 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006852 <th class="th_tags">Tags</th>
6853 </tr>
6854 </thead>
6855
6856 <tbody>
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006868 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006869 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006870 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006871 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006872 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006873
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006874 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006875
6876
6877 </td> <!-- entry_type -->
6878
6879 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006880 <p>The ratio of lens focal length to the effective
6881aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006882 </td>
6883
6884 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006885 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006886 </td>
6887
6888 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006889 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006890 </td>
6891
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006892 <td class="entry_tags">
6893 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006894 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006895 </ul>
6896 </td>
6897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006898 </tr>
6899 <tr class="entries_header">
6900 <th class="th_details" colspan="5">Details</th>
6901 </tr>
6902 <tr class="entry_cont">
6903 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006904 <p>This will only be supported on the camera devices that
6905have variable aperture lens.<wbr/> The aperture value can only be
6906one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6907<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6908this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6909<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6910to achieve manual exposure control.<wbr/></p>
6911<p>The requested aperture value may take several frames to reach the
6912requested value; the camera device will report the current (intermediate)
6913aperture size in capture result metadata while the aperture is changing.<wbr/></p>
6914<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6915the ON modes,<wbr/> this will be overridden by the camera device
6916auto-exposure algorithm,<wbr/> the overridden values are then provided
6917back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006918 </td>
6919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006920
6921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6923 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006924
6925
6926 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006927 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006928 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006929 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006930 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006931 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006932
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006933 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006934
6935
6936 </td> <!-- entry_type -->
6937
6938 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006939 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006940 </td>
6941
6942 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006943 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006944 </td>
6945
6946 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006947 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006948 </td>
6949
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950 <td class="entry_tags">
6951 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006952 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006953 </ul>
6954 </td>
6955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006956 </tr>
6957 <tr class="entries_header">
6958 <th class="th_details" colspan="5">Details</th>
6959 </tr>
6960 <tr class="entry_cont">
6961 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006962 <p>This will not be supported on most camera devices.<wbr/> On devices
6963where this is supported,<wbr/> this may only be set to one of the
6964values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
6965<p>Lens filters are typically used to lower the amount of light the
6966sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
6967step is the standard logarithmic representation,<wbr/> which are
6968non-negative,<wbr/> and inversely proportional to the amount of light
6969hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
6970in no reduction of the incoming light,<wbr/> and setting this to 2 would
6971mean that the filter is set to reduce incoming light by two stops
6972(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006973 </td>
6974 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006975
6976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006977 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6978 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979
6980
6981 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006982 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006983 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006984 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006985 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006986 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006987
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006988 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006989
6990
6991 </td> <!-- entry_type -->
6992
6993 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08006994 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006995 </td>
6996
6997 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006998 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006999 </td>
7000
7001 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007002 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007003 </td>
7004
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007005 <td class="entry_tags">
7006 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007007 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007008 </ul>
7009 </td>
7010
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007011 </tr>
7012 <tr class="entries_header">
7013 <th class="th_details" colspan="5">Details</th>
7014 </tr>
7015 <tr class="entry_cont">
7016 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007017 <p>This setting controls the physical focal length of the camera
7018device's lens.<wbr/> Changing the focal length changes the field of
7019view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7020<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7021setting won't be applied instantaneously,<wbr/> and it may take several
7022frames before the lens can move to the requested focal length.<wbr/>
7023While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7024be set to MOVING.<wbr/></p>
7025<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007026 </td>
7027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007028
7029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007030 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7031 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007032
7033
7034 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007035 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007036 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007037 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007038 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007039 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007040
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007041 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007042
7043
7044 </td> <!-- entry_type -->
7045
7046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007047 <p>Distance to plane of sharpest focus,<wbr/>
7048measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007049 </td>
7050
7051 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007052 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007053 </td>
7054
7055 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007056 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007057 </td>
7058
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007059 <td class="entry_tags">
7060 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007061 <li><a href="#tag_BC">BC</a></li>
7062 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007063 </ul>
7064 </td>
7065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007066 </tr>
7067 <tr class="entries_header">
7068 <th class="th_details" colspan="5">Details</th>
7069 </tr>
7070 <tr class="entry_cont">
7071 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007072 <p>0 = infinity focus.<wbr/> Used value should be clamped
7073to (0,<wbr/>minimum focus distance)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007074 </td>
7075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007076
7077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007078 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080
7081
7082 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007083 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007084 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007085 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007087 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007089 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007090
7091 <ul class="entry_type_enum">
7092 <li>
7093 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007094 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007095 </li>
7096 <li>
7097 <span class="entry_type_enum_name">ON</span>
7098 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007099 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007100 </li>
7101 </ul>
7102
7103 </td> <!-- entry_type -->
7104
7105 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007106 <p>Sets whether the camera device uses optical image stabilization (OIS)
7107when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007108 </td>
7109
7110 <td class="entry_units">
7111 </td>
7112
7113 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007114 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007115 </td>
7116
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007117 <td class="entry_tags">
7118 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007119 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007120 </ul>
7121 </td>
7122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007123 </tr>
7124 <tr class="entries_header">
7125 <th class="th_details" colspan="5">Details</th>
7126 </tr>
7127 <tr class="entry_cont">
7128 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007129 <p>OIS is used to compensate for motion blur due to small movements of
7130the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7131use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7132allows for longer exposure times before camera shake becomes
7133apparent.<wbr/></p>
7134<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007135 </td>
7136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007137
7138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7140 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007141
7142
7143
7144 <!-- end of kind -->
7145 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007146 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007148 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007149 <tr>
7150 <th class="th_name">Property Name</th>
7151 <th class="th_type">Type</th>
7152 <th class="th_description">Description</th>
7153 <th class="th_units">Units</th>
7154 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007155 <th class="th_tags">Tags</th>
7156 </tr>
7157 </thead>
7158
7159 <tbody>
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007173 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007174 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007175 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007176 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007177 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007178 <span class="entry_type_container">x</span>
7179
7180 <span class="entry_type_array">
7181 n
7182 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007183 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007184
7185
7186 </td> <!-- entry_type -->
7187
7188 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007189 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007190values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007191 </td>
7192
7193 <td class="entry_units">
7194 </td>
7195
7196 <td class="entry_range">
Zhijun He1b58d382014-01-10 10:22:53 -08007197 <p>one entry required,<wbr/> &amp;&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007198 </td>
7199
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007200 <td class="entry_tags">
7201 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007202 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007203 </ul>
7204 </td>
7205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007206 </tr>
7207 <tr class="entries_header">
7208 <th class="th_details" colspan="5">Details</th>
7209 </tr>
7210 <tr class="entry_cont">
7211 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007212 <p>If the camera device doesn't support variable apertures,<wbr/>
7213listed value will be the fixed aperture.<wbr/></p>
7214<p>If the camera device supports variable apertures,<wbr/> the aperture value
7215in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007216 </td>
7217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007218
7219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7221 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007222
7223
7224 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007225 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007226 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007227 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007228 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007229 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007230 <span class="entry_type_container">x</span>
7231
7232 <span class="entry_type_array">
7233 n
7234 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007235 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007236
7237
7238 </td> <!-- entry_type -->
7239
7240 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007241 <p>List of supported neutral density filter values for
7242<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007243 </td>
7244
7245 <td class="entry_units">
7246 </td>
7247
7248 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007249 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007250 </td>
7251
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007252 <td class="entry_tags">
7253 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007254 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007255 </ul>
7256 </td>
7257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007258 </tr>
7259 <tr class="entries_header">
7260 <th class="th_details" colspan="5">Details</th>
7261 </tr>
7262 <tr class="entry_cont">
7263 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007264 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7265availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7266list contains only the exact filter density values available on
7267this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007268 </td>
7269 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007270
7271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007272 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7273 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007274
7275
7276 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007277 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007278 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007280 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007281 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282 <span class="entry_type_container">x</span>
7283
7284 <span class="entry_type_array">
7285 n
7286 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007287 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007288 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007289
7290
7291 </td> <!-- entry_type -->
7292
7293 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007294 <p>The available focal lengths for this device for use with
7295<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007296 </td>
7297
7298 <td class="entry_units">
7299 </td>
7300
7301 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007302 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7303contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007304 </td>
7305
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007306 <td class="entry_tags">
7307 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007308 <li><a href="#tag_BC">BC</a></li>
7309 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007310 </ul>
7311 </td>
7312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007313 </tr>
7314 <tr class="entries_header">
7315 <th class="th_details" colspan="5">Details</th>
7316 </tr>
7317 <tr class="entry_cont">
7318 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007319 <p>If optical zoom is not supported,<wbr/> this will only report
7320a single value corresponding to the static focal length of the
7321device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7322by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007323 </td>
7324 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007325
7326
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007327 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7328 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007329
7330
7331 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007332 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007333 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007334 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007335 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007336 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007337 <span class="entry_type_container">x</span>
7338
7339 <span class="entry_type_array">
7340 n
7341 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007342 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007343 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007344
7345
7346 </td> <!-- entry_type -->
7347
7348 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007349 <p>List containing a subset of the optical image
7350stabilization (OIS) modes specified in
7351<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007352 </td>
7353
7354 <td class="entry_units">
7355 </td>
7356
7357 <td class="entry_range">
7358 </td>
7359
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007360 <td class="entry_tags">
7361 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007362 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007363 </ul>
7364 </td>
7365
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007366 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007367 <tr class="entries_header">
7368 <th class="th_details" colspan="5">Details</th>
7369 </tr>
7370 <tr class="entry_cont">
7371 <td class="entry_details" colspan="5">
7372 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7373contain only OFF.<wbr/></p>
7374 </td>
7375 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007376
7377
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007378 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7379 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007380
7381
7382 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007383 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007384 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007385 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007387 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007388 <span class="entry_type_container">x</span>
7389
7390 <span class="entry_type_array">
7391 2 x 3 x n x m
7392 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007393 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007394 <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr/> per color channel.<wbr/> Size in the range of 2x3x40x30</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007395
7396
7397 </td> <!-- entry_type -->
7398
7399 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007400 <p>A low-resolution map for correction of
7401geometric distortions and chromatic aberrations,<wbr/> per
7402color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007403 </td>
7404
7405 <td class="entry_units">
7406 </td>
7407
7408 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007409 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007410 </td>
7411
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007412 <td class="entry_tags">
7413 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007414 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007415 </ul>
7416 </td>
7417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007418 </tr>
7419 <tr class="entries_header">
7420 <th class="th_details" colspan="5">Details</th>
7421 </tr>
7422 <tr class="entry_cont">
7423 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007424 <p>[DNG wants a function instead].<wbr/> What's easiest
7425for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7426j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7427j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7428entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007429 </td>
7430 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007431
7432
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007433 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7434 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007435
7436
7437 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007438 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007439 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007440 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007441 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007442 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007443 <span class="entry_type_container">x</span>
7444
7445 <span class="entry_type_array">
7446 2
7447 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007448 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007449 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007450
7451
7452 </td> <!-- entry_type -->
7453
7454 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007455 <p>Dimensions of geometric correction
7456map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 </td>
7458
7459 <td class="entry_units">
7460 </td>
7461
7462 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007463 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007464 </td>
7465
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007466 <td class="entry_tags">
7467 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007468 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007469 </ul>
7470 </td>
7471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007472 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007473
7474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7476 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007477
7478
7479 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007480 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007481 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007482 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007483 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007484 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007485
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007486 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007487
7488
7489 </td> <!-- entry_type -->
7490
7491 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007492 <p>Hyperfocal distance for this lens; set to
74930 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007494 </td>
7495
7496 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007497 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007498 </td>
7499
7500 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007501 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007502 </td>
7503
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007504 <td class="entry_tags">
7505 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007506 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007507 </ul>
7508 </td>
7509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007510 </tr>
7511 <tr class="entries_header">
7512 <th class="th_details" colspan="5">Details</th>
7513 </tr>
7514 <tr class="entry_cont">
7515 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007516 <p>The hyperfocal distance is used for the old
7517API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007518 </td>
7519 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007520
7521
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007522 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7523 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007524
7525
7526 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007527 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007528 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007529 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007530 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007531 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007532
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007533 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007534
7535
7536 </td> <!-- entry_type -->
7537
7538 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007539 <p>Shortest distance from frontmost surface
7540of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007541 </td>
7542
7543 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007544 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007545 </td>
7546
7547 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007548 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007549 </td>
7550
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007551 <td class="entry_tags">
7552 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007553 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007554 </ul>
7555 </td>
7556
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007557 </tr>
7558 <tr class="entries_header">
7559 <th class="th_details" colspan="5">Details</th>
7560 </tr>
7561 <tr class="entry_cont">
7562 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007563 <p>If the lens is fixed-focus,<wbr/> this should be
75640</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007565 </td>
7566 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007567
7568
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007569 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7570 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007571
7572
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007573 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007574 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007575 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007576 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007577 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007578 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007579 <span class="entry_type_container">x</span>
7580
7581 <span class="entry_type_array">
7582 2
7583 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007584 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007585 <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007586
7587
7588 </td> <!-- entry_type -->
7589
7590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007591 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007592 </td>
7593
7594 <td class="entry_units">
7595 </td>
7596
7597 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007598 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007599 </td>
7600
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007601 <td class="entry_tags">
7602 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007603 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007604 </ul>
7605 </td>
7606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007607 </tr>
7608 <tr class="entries_header">
7609 <th class="th_details" colspan="5">Details</th>
7610 </tr>
7611 <tr class="entry_cont">
7612 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007613 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7614must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007615 </td>
7616 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007617
7618
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007619 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7620 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007621
7622
7623
7624
7625
7626 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007627 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007628 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007629 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007630 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007631 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007632
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007633 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007634
7635 <ul class="entry_type_enum">
7636 <li>
7637 <span class="entry_type_enum_name">FRONT</span>
7638 </li>
7639 <li>
7640 <span class="entry_type_enum_name">BACK</span>
7641 </li>
7642 </ul>
7643
7644 </td> <!-- entry_type -->
7645
7646 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007647 <p>Direction the camera faces relative to
7648device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007649 </td>
7650
7651 <td class="entry_units">
7652 </td>
7653
7654 <td class="entry_range">
7655 </td>
7656
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007657 <td class="entry_tags">
7658 </td>
7659
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007660 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007661
7662
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007663 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7664 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007665
7666
7667 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007668 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007669 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007670 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007671 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007672 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007673 <span class="entry_type_container">x</span>
7674
7675 <span class="entry_type_array">
7676 2
7677 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007678 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007679 <div class="entry_type_notes">degrees.<wbr/> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr/> The second then defines the clockwise rotation of the optical axis from native device up.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007680
7681
7682 </td> <!-- entry_type -->
7683
7684 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007685 <p>Relative angle of camera optical axis to the
7686perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007687 </td>
7688
7689 <td class="entry_units">
7690 </td>
7691
7692 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007693 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007694 </td>
7695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007696 <td class="entry_tags">
7697 <ul class="entry_tags">
7698 <li><a href="#tag_ADV">ADV</a></li>
7699 </ul>
7700 </td>
7701
7702 </tr>
7703 <tr class="entries_header">
7704 <th class="th_details" colspan="5">Details</th>
7705 </tr>
7706 <tr class="entry_cont">
7707 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007708 <p>Examples:</p>
7709<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007710is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007711<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007712device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007713<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7714the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007715<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007716direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007717 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007718 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007719
7720
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007721 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7722 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007723
7724
7725 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007726 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007727 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007728 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007729 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007730 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007731 <span class="entry_type_container">x</span>
7732
7733 <span class="entry_type_array">
7734 3, location in mm, in the sensor coordinate
7735 system
7736 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007737 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007738
7739
7740 </td> <!-- entry_type -->
7741
7742 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007743 <p>Coordinates of camera optical axis on
7744device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007745 </td>
7746
7747 <td class="entry_units">
7748 </td>
7749
7750 <td class="entry_range">
7751 </td>
7752
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007753 <td class="entry_tags">
7754 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007755 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007756 </ul>
7757 </td>
7758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007759 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007760
7761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007762 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7763 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007764
7765
7766
7767 <!-- end of kind -->
7768 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007769 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007770
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007771 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007772 <tr>
7773 <th class="th_name">Property Name</th>
7774 <th class="th_type">Type</th>
7775 <th class="th_description">Description</th>
7776 <th class="th_units">Units</th>
7777 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007778 <th class="th_tags">Tags</th>
7779 </tr>
7780 </thead>
7781
7782 <tbody>
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007794 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007795 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007796 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007797 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007798 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007799
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007800 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007801
7802
7803 </td> <!-- entry_type -->
7804
7805 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007806 <p>The ratio of lens focal length to the effective
7807aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007808 </td>
7809
7810 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007811 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007812 </td>
7813
7814 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007815 <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007816 </td>
7817
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007818 <td class="entry_tags">
7819 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007820 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007821 </ul>
7822 </td>
7823
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007824 </tr>
7825 <tr class="entries_header">
7826 <th class="th_details" colspan="5">Details</th>
7827 </tr>
7828 <tr class="entry_cont">
7829 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007830 <p>This will only be supported on the camera devices that
7831have variable aperture lens.<wbr/> The aperture value can only be
7832one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7833<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7834this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7835<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7836to achieve manual exposure control.<wbr/></p>
7837<p>The requested aperture value may take several frames to reach the
7838requested value; the camera device will report the current (intermediate)
7839aperture size in capture result metadata while the aperture is changing.<wbr/></p>
7840<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7841the ON modes,<wbr/> this will be overridden by the camera device
7842auto-exposure algorithm,<wbr/> the overridden values are then provided
7843back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007844 </td>
7845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007846
7847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7849 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007850
7851
7852 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007854 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007857 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007858
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007859 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007860
7861
7862 </td> <!-- entry_type -->
7863
7864 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007865 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007866 </td>
7867
7868 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007869 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007870 </td>
7871
7872 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007873 <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007874 </td>
7875
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007876 <td class="entry_tags">
7877 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007878 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007879 </ul>
7880 </td>
7881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007882 </tr>
7883 <tr class="entries_header">
7884 <th class="th_details" colspan="5">Details</th>
7885 </tr>
7886 <tr class="entry_cont">
7887 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007888 <p>This will not be supported on most camera devices.<wbr/> On devices
7889where this is supported,<wbr/> this may only be set to one of the
7890values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7891<p>Lens filters are typically used to lower the amount of light the
7892sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7893step is the standard logarithmic representation,<wbr/> which are
7894non-negative,<wbr/> and inversely proportional to the amount of light
7895hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7896in no reduction of the incoming light,<wbr/> and setting this to 2 would
7897mean that the filter is set to reduce incoming light by two stops
7898(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007899 </td>
7900 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007901
7902
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007903 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7904 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007905
7906
7907 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007908 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007909 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007910 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007911 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007912 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007913
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007914 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007915
7916
7917 </td> <!-- entry_type -->
7918
7919 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007920 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007921 </td>
7922
7923 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007924 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007925 </td>
7926
7927 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007928 <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007929 </td>
7930
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007931 <td class="entry_tags">
7932 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007933 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007934 </ul>
7935 </td>
7936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007937 </tr>
7938 <tr class="entries_header">
7939 <th class="th_details" colspan="5">Details</th>
7940 </tr>
7941 <tr class="entry_cont">
7942 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007943 <p>This setting controls the physical focal length of the camera
7944device's lens.<wbr/> Changing the focal length changes the field of
7945view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7946<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
7947setting won't be applied instantaneously,<wbr/> and it may take several
7948frames before the lens can move to the requested focal length.<wbr/>
7949While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7950be set to MOVING.<wbr/></p>
7951<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007952 </td>
7953 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007954
7955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007956 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7957 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007958
7959
7960 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007961 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007962 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007963 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007964 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007965 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007966
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007967 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007968
7969
7970 </td> <!-- entry_type -->
7971
7972 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007973 <p>Distance to plane of sharpest focus,<wbr/>
7974measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007975 </td>
7976
7977 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007978 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007979 </td>
7980
7981 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007982 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007983 </td>
7984
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007985 <td class="entry_tags">
7986 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007987 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007988 </ul>
7989 </td>
7990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007991 </tr>
7992 <tr class="entries_header">
7993 <th class="th_details" colspan="5">Details</th>
7994 </tr>
7995 <tr class="entry_cont">
7996 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007997 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007998 </td>
7999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008000
8001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008004
8005
8006 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008007 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008008 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008009 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008010 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008011 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008012 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008013
Zhijun He50451ad2013-09-26 10:27:47 -07008014 <span class="entry_type_array">
8015 2
8016 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008017 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008018 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008019
8020
8021 </td> <!-- entry_type -->
8022
8023 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008024 <p>The range of scene distances that are in
8025sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008026 </td>
8027
8028 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008029 pair of focus distances in diopters: (near,<wbr/>
8030 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008031 </td>
8032
8033 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008034 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008035 </td>
8036
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008037 <td class="entry_tags">
8038 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008039 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008040 </ul>
8041 </td>
8042
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008043 </tr>
8044 <tr class="entries_header">
8045 <th class="th_details" colspan="5">Details</th>
8046 </tr>
8047 <tr class="entry_cont">
8048 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008049 <p>If variable focus not supported,<wbr/> can still report
8050fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008051 </td>
8052 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008053
8054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008055 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8056 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008057
8058
8059 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008060 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008061 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008064 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008066 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008067
8068 <ul class="entry_type_enum">
8069 <li>
8070 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008071 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </li>
8073 <li>
8074 <span class="entry_type_enum_name">ON</span>
8075 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008076 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008077 </li>
8078 </ul>
8079
8080 </td> <!-- entry_type -->
8081
8082 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008083 <p>Sets whether the camera device uses optical image stabilization (OIS)
8084when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008085 </td>
8086
8087 <td class="entry_units">
8088 </td>
8089
8090 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008091 <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008092 </td>
8093
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008094 <td class="entry_tags">
8095 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008096 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008097 </ul>
8098 </td>
8099
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008100 </tr>
8101 <tr class="entries_header">
8102 <th class="th_details" colspan="5">Details</th>
8103 </tr>
8104 <tr class="entry_cont">
8105 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008106 <p>OIS is used to compensate for motion blur due to small movements of
8107the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8108use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8109allows for longer exposure times before camera shake becomes
8110apparent.<wbr/></p>
8111<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008112 </td>
8113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008114
8115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8117 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008118
8119
8120 <tr class="entry" id="dynamic_android.lens.state">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008121 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008122 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008123 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008124 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008125 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008126
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008127 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008128
8129 <ul class="entry_type_enum">
8130 <li>
8131 <span class="entry_type_enum_name">STATIONARY</span>
8132 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008133 <li>
8134 <span class="entry_type_enum_name">MOVING</span>
8135 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008136 </ul>
8137
8138 </td> <!-- entry_type -->
8139
8140 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008141 <p>Current lens status</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008142 </td>
8143
8144 <td class="entry_units">
8145 </td>
8146
8147 <td class="entry_range">
8148 </td>
8149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008150 <td class="entry_tags">
8151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008152 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008153 </ul>
8154 </td>
8155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008157
8158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008161
8162
8163
8164 <!-- end of kind -->
8165 </tbody>
8166
8167 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008168 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008169
8170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008171 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008172
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008173 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008174 <tr>
8175 <th class="th_name">Property Name</th>
8176 <th class="th_type">Type</th>
8177 <th class="th_description">Description</th>
8178 <th class="th_units">Units</th>
8179 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008180 <th class="th_tags">Tags</th>
8181 </tr>
8182 </thead>
8183
8184 <tbody>
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008196 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008197 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008198 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008199 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008200 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008201
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008202 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008203
8204 <ul class="entry_type_enum">
8205 <li>
8206 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008207 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008208 </li>
8209 <li>
8210 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008211 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8212output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008213 </li>
8214 <li>
8215 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008216 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8217quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008218 </li>
8219 </ul>
8220
8221 </td> <!-- entry_type -->
8222
8223 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008224 <p>Mode of operation for the noise reduction
8225algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008226 </td>
8227
8228 <td class="entry_units">
8229 </td>
8230
8231 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008232 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008233 </td>
8234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008235 <td class="entry_tags">
8236 <ul class="entry_tags">
8237 <li><a href="#tag_V1">V1</a></li>
8238 </ul>
8239 </td>
8240
8241 </tr>
8242 <tr class="entries_header">
8243 <th class="th_details" colspan="5">Details</th>
8244 </tr>
8245 <tr class="entry_cont">
8246 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008247 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8248will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008249<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8250will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8251will use the highest-quality noise filtering algorithms,<wbr/>
8252even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008253slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008254 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008255 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008256
8257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008258 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8259 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008260
8261
8262 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008263 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008264 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008266 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008267 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008268
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008269 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008270
8271
8272 </td> <!-- entry_type -->
8273
8274 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008275 <p>Control the amount of noise reduction
8276applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008277 </td>
8278
8279 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008280 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008281 </td>
8282
8283 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008284 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008285 </td>
8286
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008287 <td class="entry_tags">
8288 </td>
8289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008290 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008291
8292
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008293 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8294 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008295
8296
8297
8298 <!-- end of kind -->
8299 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008300 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008301
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008302 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008303 <tr>
8304 <th class="th_name">Property Name</th>
8305 <th class="th_type">Type</th>
8306 <th class="th_description">Description</th>
8307 <th class="th_units">Units</th>
8308 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008309 <th class="th_tags">Tags</th>
8310 </tr>
8311 </thead>
8312
8313 <tbody>
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008325 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008326 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008327 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008328 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008329 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008330
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008331 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008332
8333 <ul class="entry_type_enum">
8334 <li>
8335 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008336 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008337 </li>
8338 <li>
8339 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008340 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8341output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008342 </li>
8343 <li>
8344 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008345 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8346quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008347 </li>
8348 </ul>
8349
8350 </td> <!-- entry_type -->
8351
8352 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008353 <p>Mode of operation for the noise reduction
8354algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008355 </td>
8356
8357 <td class="entry_units">
8358 </td>
8359
8360 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008361 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008362 </td>
8363
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008364 <td class="entry_tags">
8365 <ul class="entry_tags">
8366 <li><a href="#tag_V1">V1</a></li>
8367 </ul>
8368 </td>
8369
8370 </tr>
8371 <tr class="entries_header">
8372 <th class="th_details" colspan="5">Details</th>
8373 </tr>
8374 <tr class="entry_cont">
8375 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008376 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8377will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008378<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8379will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8380will use the highest-quality noise filtering algorithms,<wbr/>
8381even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008382slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008383 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008384 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008385
8386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008387 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8388 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008389
8390
8391
8392 <!-- end of kind -->
8393 </tbody>
8394
8395 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008396 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008397
8398
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008399 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008400
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008401 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008402 <tr>
8403 <th class="th_name">Property Name</th>
8404 <th class="th_type">Type</th>
8405 <th class="th_description">Description</th>
8406 <th class="th_units">Units</th>
8407 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008408 <th class="th_tags">Tags</th>
8409 </tr>
8410 </thead>
8411
8412 <tbody>
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008424 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008425 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008426 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008427 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008428 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008429
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008430 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008431
8432
8433 </td> <!-- entry_type -->
8434
8435 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008436 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008437scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008438region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8439and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008440 </td>
8441
8442 <td class="entry_units">
8443 </td>
8444
8445 <td class="entry_range">
8446 </td>
8447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008448 <td class="entry_tags">
8449 </td>
8450
8451 </tr>
8452 <tr class="entries_header">
8453 <th class="th_details" colspan="5">Details</th>
8454 </tr>
8455 <tr class="entry_cont">
8456 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008457 <p>Normalized coordinates refer to those in the
8458(-1000,<wbr/>1000) range mentioned in the
8459android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008460<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008461sensor array-relative coordinates for all region data.<wbr/> Does
8462not need to be listed in static metadata.<wbr/> Support will be
8463removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008464 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008465 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008466
8467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008468 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8469 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008470
8471
8472 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008473 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008474 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008475 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008477 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008478
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008479 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008480
8481
8482 </td> <!-- entry_type -->
8483
8484 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008485 <p>If set to 1,<wbr/> then the camera service always
8486switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8487trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008488 </td>
8489
8490 <td class="entry_units">
8491 </td>
8492
8493 <td class="entry_range">
8494 </td>
8495
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008496 <td class="entry_tags">
8497 </td>
8498
8499 </tr>
8500 <tr class="entries_header">
8501 <th class="th_details" colspan="5">Details</th>
8502 </tr>
8503 <tr class="entry_cont">
8504 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008505 <p>HAL implementations should implement AF trigger
8506modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8507CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8508not need to be listed in static metadata.<wbr/> Support will be
8509removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008510 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008511 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008512
8513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008514 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8515 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008516
8517
8518 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008519 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008520 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008521 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008522 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008523 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008524
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008525 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008526
8527
8528 </td> <!-- entry_type -->
8529
8530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008531 <p>If set to 1,<wbr/> the camera service uses
8532CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8533HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8534shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008535 </td>
8536
8537 <td class="entry_units">
8538 </td>
8539
8540 <td class="entry_range">
8541 </td>
8542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008543 <td class="entry_tags">
8544 </td>
8545
8546 </tr>
8547 <tr class="entries_header">
8548 <th class="th_details" colspan="5">Details</th>
8549 </tr>
8550 <tr class="entry_cont">
8551 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008552 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008553to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008554zero-shutter-lag,<wbr/> instead of relying on an explicit
8555format setting.<wbr/> Does not need to be listed in static
8556metadata.<wbr/> Support will be removed in future versions of
8557camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008558 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008559 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008560
8561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008562 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8563 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008564
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008565
8566 <tr class="entry" id="static_android.quirks.usePartialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008567 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008568 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008569 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008570 <td class="entry_type">
8571 <span class="entry_type_name">byte</span>
8572
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008573 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008574
8575
8576 </td> <!-- entry_type -->
8577
8578 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008579 <p>If set to 1,<wbr/> the HAL will always split result
8580metadata for a single capture into multiple buffers,<wbr/>
8581returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008582 </td>
8583
8584 <td class="entry_units">
8585 </td>
8586
8587 <td class="entry_range">
8588 </td>
8589
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008590 <td class="entry_tags">
8591 </td>
8592
8593 </tr>
8594 <tr class="entries_header">
8595 <th class="th_details" colspan="5">Details</th>
8596 </tr>
8597 <tr class="entry_cont">
8598 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008599 <p>Does not need to be listed in static
8600metadata.<wbr/> Support for partial results will be reworked in
8601future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008602working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008603consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008604 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008605 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008606
8607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008608 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8609 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008610
8611
8612
8613 <!-- end of kind -->
8614 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008615 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008616
8617 <thead class="entries_header">
8618 <tr>
8619 <th class="th_name">Property Name</th>
8620 <th class="th_type">Type</th>
8621 <th class="th_description">Description</th>
8622 <th class="th_units">Units</th>
8623 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008624 <th class="th_tags">Tags</th>
8625 </tr>
8626 </thead>
8627
8628 <tbody>
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639 <tr class="entry" id="dynamic_android.quirks.partialResult">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008640 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008641 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008642 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008643 <td class="entry_type">
8644 <span class="entry_type_name entry_type_name_enum">byte</span>
8645
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008646 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008647
8648 <ul class="entry_type_enum">
8649 <li>
8650 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008651 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8652for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008653 </li>
8654 <li>
8655 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008656 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8657capture.<wbr/> More result buffers for this capture will be sent
8658by the HAL,<wbr/> the last of which will be marked
8659FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008660 </li>
8661 </ul>
8662
8663 </td> <!-- entry_type -->
8664
8665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008666 <p>Whether a result given to the framework is the
8667final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008668subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008669values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008670 </td>
8671
8672 <td class="entry_units">
8673 </td>
8674
8675 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008676 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008677 </td>
8678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008679 <td class="entry_tags">
8680 </td>
8681
8682 </tr>
8683 <tr class="entries_header">
8684 <th class="th_details" colspan="5">Details</th>
8685 </tr>
8686 <tr class="entry_cont">
8687 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008688 <p>The entries in the result metadata buffers for a
8689single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008690FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008691requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8692always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8693before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8694in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8695capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8696only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008697 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008698 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008699
8700
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008701 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8702 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008703
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008704
8705
8706 <!-- end of kind -->
8707 </tbody>
8708
8709 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008710 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008711
8712
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008713 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008714
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008715 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008716 <tr>
8717 <th class="th_name">Property Name</th>
8718 <th class="th_type">Type</th>
8719 <th class="th_description">Description</th>
8720 <th class="th_units">Units</th>
8721 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008722 <th class="th_tags">Tags</th>
8723 </tr>
8724 </thead>
8725
8726 <tbody>
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008738 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008739 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008740 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008741 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008742 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008743
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008744 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008745
8746
8747 </td> <!-- entry_type -->
8748
8749 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008750 <p>A frame counter set by the framework.<wbr/> Must
8751be maintained unchanged in output frame.<wbr/> This value monotonically
8752increases with every new result (that is,<wbr/> each new result has a unique
8753frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008754 </td>
8755
8756 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008757 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008758 </td>
8759
8760 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008761 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008762 </td>
8763
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008764 <td class="entry_tags">
8765 </td>
8766
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008767 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008768
8769
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008770 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8771 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008772
8773
8774 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008775 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008776 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008777 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008778 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008779 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008780
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008781 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008782
8783
8784 </td> <!-- entry_type -->
8785
8786 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008787 <p>An application-specified ID for the current
8788request.<wbr/> Must be maintained unchanged in output
8789frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008790 </td>
8791
8792 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008793 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008794 </td>
8795
8796 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008797 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008798 </td>
8799
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008800 <td class="entry_tags">
8801 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008802 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008803 </ul>
8804 </td>
8805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008806 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008807
8808
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008809 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8810 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008811
8812
8813 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008814 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008815 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008816 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008817 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008818 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008819 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008820
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008821 <span class="entry_type_array">
8822 n
8823 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008824 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008825
8826
8827 </td> <!-- entry_type -->
8828
8829 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008830 <p>List which camera reprocess stream is used
8831for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008832 </td>
8833
8834 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008835 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008836 </td>
8837
8838 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008839 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid
8840reprocess stream ID.<wbr/></p>
8841<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8842reprocess streams may be included in a single request; they
8843must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008844 </td>
8845
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008846 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008847 <ul class="entry_tags">
8848 <li><a href="#tag_HAL2">HAL2</a></li>
8849 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008850 </td>
8851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008852 </tr>
8853 <tr class="entries_header">
8854 <th class="th_details" colspan="5">Details</th>
8855 </tr>
8856 <tr class="entry_cont">
8857 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008858 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008859REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008860 </td>
8861 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008862
8863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008864 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8865 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008866
8867
8868 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008869 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008870 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008871 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008872 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008873 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008874
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008875 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008876
8877 <ul class="entry_type_enum">
8878 <li>
8879 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008880 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8881for application-bound buffer data.<wbr/> If no
8882application-bound streams exist,<wbr/> no frame should be
8883placed in the output frame queue.<wbr/> If such streams
8884exist,<wbr/> a frame should be placed on the output queue
8885with null metadata but with the necessary output buffer
8886information.<wbr/> Timestamp information should still be
8887included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008888 </li>
8889 <li>
8890 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008891 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8892only be produced if they are separately
8893enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008894 </li>
8895 </ul>
8896
8897 </td> <!-- entry_type -->
8898
8899 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008900 <p>How much metadata to produce on
8901output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008902 </td>
8903
8904 <td class="entry_units">
8905 </td>
8906
8907 <td class="entry_range">
8908 </td>
8909
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008910 <td class="entry_tags">
8911 </td>
8912
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008913 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008914
8915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008916 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8917 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008918
8919
8920 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008921 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008922 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008923 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008924 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008925 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008926 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008927
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008928 <span class="entry_type_array">
8929 n
8930 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008931 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008932
8933
8934 </td> <!-- entry_type -->
8935
8936 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008937 <p>Lists which camera output streams image data
8938from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008939 </td>
8940
8941 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008942 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008943 </td>
8944
8945 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008946 <p>List must only include streams that have been
8947created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008948 </td>
8949
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008950 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008951 <ul class="entry_tags">
8952 <li><a href="#tag_HAL2">HAL2</a></li>
8953 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008954 </td>
8955
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008956 </tr>
8957 <tr class="entries_header">
8958 <th class="th_details" colspan="5">Details</th>
8959 </tr>
8960 <tr class="entry_cont">
8961 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008962 <p>If no output streams are listed,<wbr/> then the image
8963data should simply be discarded.<wbr/> The image data must
8964still be captured for metadata and statistics production,<wbr/>
8965and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008966 </td>
8967 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008968
8969
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008970 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8971 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008972
8973
8974 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008975 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008976 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008977 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008978 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008979 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008980
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008981 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008982
8983 <ul class="entry_type_enum">
8984 <li>
8985 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008986 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
8987and process it according to the
8988settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008989 </li>
8990 <li>
8991 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008992 <span class="entry_type_enum_notes"><p>Process previously captured data; the
8993android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
8994source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
8995needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008996 </li>
8997 </ul>
8998
8999 </td> <!-- entry_type -->
9000
9001 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009002 <p>The type of the request; either CAPTURE or
9003REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009004 </td>
9005
9006 <td class="entry_units">
9007 </td>
9008
9009 <td class="entry_range">
9010 </td>
9011
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009012 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009013 <ul class="entry_tags">
9014 <li><a href="#tag_HAL2">HAL2</a></li>
9015 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009016 </td>
9017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009018 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009019
9020
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009021 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9022 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009023
9024
9025
9026 <!-- end of kind -->
9027 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009028 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009029
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009030 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009031 <tr>
9032 <th class="th_name">Property Name</th>
9033 <th class="th_type">Type</th>
9034 <th class="th_description">Description</th>
9035 <th class="th_units">Units</th>
9036 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009037 <th class="th_tags">Tags</th>
9038 </tr>
9039 </thead>
9040
9041 <tbody>
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009053 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009054 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009055 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009056 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009057 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009058 <span class="entry_type_container">x</span>
9059
9060 <span class="entry_type_array">
9061 3
9062 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009063 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009064
9065
9066 </td> <!-- entry_type -->
9067
9068 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009069 <p>How many output streams can be allocated at
9070the same time for each type of stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009071 </td>
9072
9073 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009074 The number of raw sensor streams; the number of
9075 processed,<wbr/> uncompressed streams; and the number of
9076 JPEG-compressed streams
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077 </td>
9078
9079 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009080 <p>&gt;=1 for Raw and JPEG-compressed stream.<wbr/> &gt;= 3
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009081for processed,<wbr/> uncompressed streams</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009082 </td>
9083
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009084 <td class="entry_tags">
9085 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009086 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009087 </ul>
9088 </td>
9089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009090 </tr>
9091 <tr class="entries_header">
9092 <th class="th_details" colspan="5">Details</th>
9093 </tr>
9094 <tr class="entry_cont">
9095 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009096 <p>Video snapshot with preview callbacks requires 3
9097processed streams (preview,<wbr/> record,<wbr/> app callbacks) and
9098one JPEG stream (snapshot)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009099 </td>
9100 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009101
9102
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009103 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9104 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009105
9106
9107 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009108 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009109 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009110 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009111 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009112 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009113 <span class="entry_type_container">x</span>
9114
9115 <span class="entry_type_array">
9116 1
9117 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009118 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009119
9120
9121 </td> <!-- entry_type -->
9122
9123 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009124 <p>How many reprocessing streams of any type
9125can be allocated at the same time</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009126 </td>
9127
9128 <td class="entry_units">
9129 </td>
9130
9131 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009132 <p>&gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009133 </td>
9134
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009135 <td class="entry_tags">
9136 </td>
9137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009139
9140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009141 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9142 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009143
Igor Murashkina46e02f2014-01-09 17:43:38 -08009144
9145 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9146 <td class="entry_name" rowspan="5">
9147 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9148 </td>
9149 <td class="entry_type">
9150 <span class="entry_type_name">byte</span>
9151
9152 <span class="entry_type_visibility"> [public]</span>
9153
9154
9155 </td> <!-- entry_type -->
9156
9157 <td class="entry_description">
9158 <p>Specifies the number of maximum pipeline stages a frame
9159has to go through from when it's exposed to when it's available
9160to the framework.<wbr/></p>
9161 </td>
9162
9163 <td class="entry_units">
9164 </td>
9165
9166 <td class="entry_range">
9167 </td>
9168
9169 <td class="entry_tags">
9170 </td>
9171
9172 </tr>
9173 <tr class="entries_header">
9174 <th class="th_details" colspan="5">Details</th>
9175 </tr>
9176 <tr class="entry_cont">
9177 <td class="entry_details" colspan="5">
9178 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9179one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9180its own stages to do custom HW processing.<wbr/> Further stages may be
9181added by SW processing.<wbr/></p>
9182<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9183processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9184depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9185the max pipeline depth.<wbr/></p>
9186<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9187X frame intervals.<wbr/></p>
9188<p>This value will be 8 or less.<wbr/></p>
9189 </td>
9190 </tr>
9191
9192 <tr class="entries_header">
9193 <th class="th_details" colspan="5">HAL Implementation Details</th>
9194 </tr>
9195 <tr class="entry_cont">
9196 <td class="entry_details" colspan="5">
9197 <p>This value should be 4 or less.<wbr/></p>
9198 </td>
9199 </tr>
9200
9201 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9202 <!-- end of entry -->
9203
Igor Murashkin2e291102014-01-10 14:18:30 -08009204
9205 <tr class="entry" id="static_android.request.partialResultCount">
9206 <td class="entry_name" rowspan="3">
9207 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9208 </td>
9209 <td class="entry_type">
9210 <span class="entry_type_name">int32</span>
9211
9212 <span class="entry_type_visibility"> [public]</span>
9213
9214
9215 </td> <!-- entry_type -->
9216
9217 <td class="entry_description">
9218 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9219a result will be composed of.<wbr/></p>
9220 </td>
9221
9222 <td class="entry_units">
9223 </td>
9224
9225 <td class="entry_range">
9226 <p>&gt;= 1</p>
9227 </td>
9228
9229 <td class="entry_tags">
9230 </td>
9231
9232 </tr>
9233 <tr class="entries_header">
9234 <th class="th_details" colspan="5">Details</th>
9235 </tr>
9236 <tr class="entry_cont">
9237 <td class="entry_details" colspan="5">
9238 <p>In order to combat the pipeline latency,<wbr/> partial results
9239may be delivered to the application layer from the camera device as
9240soon as they are available.<wbr/></p>
9241<p>A value of 1 means that partial results are not supported.<wbr/></p>
9242<p>A typical use case for this might be: after requesting an AF lock the
9243new AF state might be available 50% of the way through the pipeline.<wbr/>
9244The camera device could then immediately dispatch this state via a
9245partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9246the metadata via later partial results.<wbr/></p>
9247 </td>
9248 </tr>
9249
9250
9251 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9252 <!-- end of entry -->
9253
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009254
9255
9256 <!-- end of kind -->
9257 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009258 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009259
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009260 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009261 <tr>
9262 <th class="th_name">Property Name</th>
9263 <th class="th_type">Type</th>
9264 <th class="th_description">Description</th>
9265 <th class="th_units">Units</th>
9266 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009267 <th class="th_tags">Tags</th>
9268 </tr>
9269 </thead>
9270
9271 <tbody>
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009283 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009284 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009285 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009286 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009287 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009288
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009289 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009290
9291
9292 </td> <!-- entry_type -->
9293
9294 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009295 <p>A frame counter set by the framework.<wbr/> This value monotonically
9296increases with every new result (that is,<wbr/> each new result has a unique
9297frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009298 </td>
9299
9300 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009301 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009302 </td>
9303
9304 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009305 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009306 </td>
9307
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009308 <td class="entry_tags">
9309 </td>
9310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009311 </tr>
9312 <tr class="entries_header">
9313 <th class="th_details" colspan="5">Details</th>
9314 </tr>
9315 <tr class="entry_cont">
9316 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009317 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009318 </td>
9319 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009320
9321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009322 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9323 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009324
9325
9326 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009327 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009328 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009329 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009330 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009331 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009332
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009333 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009334
9335
9336 </td> <!-- entry_type -->
9337
9338 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009339 <p>An application-specified ID for the current
9340request.<wbr/> Must be maintained unchanged in output
9341frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009342 </td>
9343
9344 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009345 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009346 </td>
9347
9348 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009349 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009350 </td>
9351
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009352 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009353 <ul class="entry_tags">
9354 <li><a href="#tag_V1">V1</a></li>
9355 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009356 </td>
9357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009358 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009359
9360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009363
9364
9365 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009366 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009367 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009368 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009370 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009371
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009372 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009373
9374 <ul class="entry_type_enum">
9375 <li>
9376 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009377 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9378for application-bound buffer data.<wbr/> If no
9379application-bound streams exist,<wbr/> no frame should be
9380placed in the output frame queue.<wbr/> If such streams
9381exist,<wbr/> a frame should be placed on the output queue
9382with null metadata but with the necessary output buffer
9383information.<wbr/> Timestamp information should still be
9384included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009385 </li>
9386 <li>
9387 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009388 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9389only be produced if they are separately
9390enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009391 </li>
9392 </ul>
9393
9394 </td> <!-- entry_type -->
9395
9396 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009397 <p>How much metadata to produce on
9398output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009399 </td>
9400
9401 <td class="entry_units">
9402 </td>
9403
9404 <td class="entry_range">
9405 </td>
9406
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009407 <td class="entry_tags">
9408 </td>
9409
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009410 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009411
9412
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009413 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9414 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009415
9416
9417 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009418 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009419 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009420 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009421 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009422 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009423 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009424
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009425 <span class="entry_type_array">
9426 n
9427 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009428 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009429
9430
9431 </td> <!-- entry_type -->
9432
9433 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009434 <p>Lists which camera output streams image data
9435from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009436 </td>
9437
9438 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009439 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009440 </td>
9441
9442 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009443 <p>List must only include streams that have been
9444created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009445 </td>
9446
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009447 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009448 <ul class="entry_tags">
9449 <li><a href="#tag_HAL2">HAL2</a></li>
9450 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009451 </td>
9452
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009453 </tr>
9454 <tr class="entries_header">
9455 <th class="th_details" colspan="5">Details</th>
9456 </tr>
9457 <tr class="entry_cont">
9458 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009459 <p>If no output streams are listed,<wbr/> then the image
9460data should simply be discarded.<wbr/> The image data must
9461still be captured for metadata and statistics production,<wbr/>
9462and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009463 </td>
9464 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009465
9466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009467 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9468 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009469
Igor Murashkina46e02f2014-01-09 17:43:38 -08009470
9471 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9472 <td class="entry_name" rowspan="5">
9473 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9474 </td>
9475 <td class="entry_type">
9476 <span class="entry_type_name">byte</span>
9477
9478 <span class="entry_type_visibility"> [public]</span>
9479
9480
9481 </td> <!-- entry_type -->
9482
9483 <td class="entry_description">
9484 <p>Specifies the number of pipeline stages the frame went
9485through from when it was exposed to when the final completed result
9486was available to the framework.<wbr/></p>
9487 </td>
9488
9489 <td class="entry_units">
9490 </td>
9491
9492 <td class="entry_range">
9493 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9494 </td>
9495
9496 <td class="entry_tags">
9497 </td>
9498
9499 </tr>
9500 <tr class="entries_header">
9501 <th class="th_details" colspan="5">Details</th>
9502 </tr>
9503 <tr class="entry_cont">
9504 <td class="entry_details" colspan="5">
9505 <p>Depending on what settings are used in the request,<wbr/> and
9506what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9507and some pipeline stages skipped.<wbr/></p>
9508<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9509 </td>
9510 </tr>
9511
9512 <tr class="entries_header">
9513 <th class="th_details" colspan="5">HAL Implementation Details</th>
9514 </tr>
9515 <tr class="entry_cont">
9516 <td class="entry_details" colspan="5">
9517 <p>This value must always represent the accurate count of how many
9518pipeline stages were actually used.<wbr/></p>
9519 </td>
9520 </tr>
9521
9522 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9523 <!-- end of entry -->
9524
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009525
9526
9527 <!-- end of kind -->
9528 </tbody>
9529
9530 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009531 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009532
9533
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009534 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009535
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009536 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009537 <tr>
9538 <th class="th_name">Property Name</th>
9539 <th class="th_type">Type</th>
9540 <th class="th_description">Description</th>
9541 <th class="th_units">Units</th>
9542 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543 <th class="th_tags">Tags</th>
9544 </tr>
9545 </thead>
9546
9547 <tbody>
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009559 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009560 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009561 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009562 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009563 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564 <span class="entry_type_container">x</span>
9565
9566 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009567 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009568 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009569 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009570
9571
9572 </td> <!-- entry_type -->
9573
9574 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009575 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9576<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9577(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9578output.<wbr/> Each stream must use this rectangle to produce its
9579output,<wbr/> cropping to a smaller region if necessary to
9580maintain the stream's aspect ratio.<wbr/></p>
9581<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009582 </td>
9583
9584 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009585 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9586 in pixels; (0,<wbr/>0) is top-left corner of
9587 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009588 </td>
9589
9590 <td class="entry_range">
9591 </td>
9592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009593 <td class="entry_tags">
9594 <ul class="entry_tags">
9595 <li><a href="#tag_BC">BC</a></li>
9596 </ul>
9597 </td>
9598
9599 </tr>
9600 <tr class="entries_header">
9601 <th class="th_details" colspan="5">Details</th>
9602 </tr>
9603 <tr class="entry_cont">
9604 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009605 <p>Any additional per-stream cropping must be done to
9606maximize the final pixel area of the stream.<wbr/></p>
9607<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9608ratio,<wbr/> then 4:3 streams should use the exact crop
9609region.<wbr/> 16:9 streams should further crop vertically
9610(letterbox).<wbr/></p>
9611<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9612outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9613streams should match exactly.<wbr/> These additional crops must
9614be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009615<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009616times,<wbr/> no matter what the relative aspect ratios of the
9617crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009618corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009619larger than active pixel array.<wbr/> Width and height may be
9620rounded to nearest larger supportable width,<wbr/> especially
9621for raw output,<wbr/> where only a few fixed scales may be
9622possible.<wbr/> The width and height of the crop region cannot
9623be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9624android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9625activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9626respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009627 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009628 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009629
9630
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009631 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9632 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009633
9634
9635
9636 <!-- end of kind -->
9637 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009638 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009639
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009640 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009641 <tr>
9642 <th class="th_name">Property Name</th>
9643 <th class="th_type">Type</th>
9644 <th class="th_description">Description</th>
9645 <th class="th_units">Units</th>
9646 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009647 <th class="th_tags">Tags</th>
9648 </tr>
9649 </thead>
9650
9651 <tbody>
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009663 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009664 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009665 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009666 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009667 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009668 <span class="entry_type_container">x</span>
9669
9670 <span class="entry_type_array">
9671 n
9672 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009673 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009674
9675 <ul class="entry_type_enum">
9676 <li>
9677 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009678 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009679 <span class="entry_type_enum_value">0x20</span>
9680 </li>
9681 <li>
9682 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009683 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009684 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009685 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009686 </li>
9687 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009688 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009689 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009690 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009691 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009692 </li>
9693 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009694 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9695 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009696 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009697 </li>
9698 <li>
9699 <span class="entry_type_enum_name">YCbCr_420_888</span>
9700 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009701 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009702 </li>
9703 <li>
9704 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009705 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009706 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009707 </li>
9708 </ul>
9709
9710 </td> <!-- entry_type -->
9711
9712 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009713 <p>The list of image formats that are supported by this
9714camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009715 </td>
9716
9717 <td class="entry_units">
9718 </td>
9719
9720 <td class="entry_range">
9721 </td>
9722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009723 <td class="entry_tags">
9724 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009725 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009726 </ul>
9727 </td>
9728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009729 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009730 <tr class="entries_header">
9731 <th class="th_details" colspan="5">Details</th>
9732 </tr>
9733 <tr class="entry_cont">
9734 <td class="entry_details" colspan="5">
9735 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9736<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9737 </td>
9738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009739
Zhijun Heb8317e22014-01-16 09:47:07 -08009740 <tr class="entries_header">
9741 <th class="th_details" colspan="5">HAL Implementation Details</th>
9742 </tr>
9743 <tr class="entry_cont">
9744 <td class="entry_details" colspan="5">
9745 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9746system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9747<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9748gralloc module will select a format based on the usage flags provided
9749by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9750usually used by preview and recording streams,<wbr/> where the application doesn't
9751need access the image data.<wbr/></p>
9752<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9753needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9754<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9755 </td>
9756 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009757
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009758 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9759 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009760
9761
9762 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009763 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009764 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009765 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009766 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009767 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009768 <span class="entry_type_container">x</span>
9769
9770 <span class="entry_type_array">
9771 n
9772 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009773 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009774
9775
9776 </td> <!-- entry_type -->
9777
9778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009779 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009780for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009781 </td>
9782
9783 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009784 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009785 </td>
9786
9787 <td class="entry_range">
9788 </td>
9789
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009790 <td class="entry_tags">
9791 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009792 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009793 </ul>
9794 </td>
9795
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009796 </tr>
9797 <tr class="entries_header">
9798 <th class="th_details" colspan="5">Details</th>
9799 </tr>
9800 <tr class="entry_cont">
9801 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009802 <p>This corresponds to the minimum steady-state frame duration when only
9803that JPEG stream is active and captured in a burst,<wbr/> with all
9804processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9805<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009806frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009807durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009808 </td>
9809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009810
9811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009814
9815
9816 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009817 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009818 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009821 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009822 <span class="entry_type_container">x</span>
9823
9824 <span class="entry_type_array">
9825 n x 2
9826 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009827 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009828
9829
9830 </td> <!-- entry_type -->
9831
9832 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009833 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009834 </td>
9835
9836 <td class="entry_units">
9837 </td>
9838
9839 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009840 </td>
9841
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009842 <td class="entry_tags">
9843 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009844 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009845 </ul>
9846 </td>
9847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009848 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009849 <tr class="entries_header">
9850 <th class="th_details" colspan="5">Details</th>
9851 </tr>
9852 <tr class="entry_cont">
9853 <td class="entry_details" colspan="5">
9854 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
9855sensor maximum resolution (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
9856 </td>
9857 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009858
Zhijun Heb8317e22014-01-16 09:47:07 -08009859 <tr class="entries_header">
9860 <th class="th_details" colspan="5">HAL Implementation Details</th>
9861 </tr>
9862 <tr class="entry_cont">
9863 <td class="entry_details" colspan="5">
9864 <p>The HAL must include sensor maximum resolution
9865(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
9866and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
9867 </td>
9868 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009869
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9871 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009872
9873
9874 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009875 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009876 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009878 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009879 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009880
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009881 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009882
9883
9884 </td> <!-- entry_type -->
9885
9886 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009887 <p>The maximum ratio between active area width
9888and crop region width,<wbr/> or between active area height and
9889crop region height,<wbr/> if the crop region height is larger
9890than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009891 </td>
9892
9893 <td class="entry_units">
9894 </td>
9895
9896 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009897 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009898 </td>
9899
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009900 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -07009901 <ul class="entry_tags">
9902 <li><a href="#tag_BC">BC</a></li>
9903 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009904 </td>
9905
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009907
9908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009911
9912
9913 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009915 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009918 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009919 <span class="entry_type_container">x</span>
9920
9921 <span class="entry_type_array">
9922 n
9923 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009924 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009925
9926
9927 </td> <!-- entry_type -->
9928
9929 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009930 <p>For each available processed output size (defined in
9931<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
9932minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009933 </td>
9934
9935 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009936 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009937 </td>
9938
9939 <td class="entry_range">
9940 </td>
9941
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009942 <td class="entry_tags">
9943 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009944 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009945 </ul>
9946 </td>
9947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009948 </tr>
9949 <tr class="entries_header">
9950 <th class="th_details" colspan="5">Details</th>
9951 </tr>
9952 <tr class="entry_cont">
9953 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009954 <p>This should correspond to the frame duration when only that processed
9955stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
9956set to FAST.<wbr/></p>
9957<p>When multiple streams are configured,<wbr/> the minimum frame duration will
9958be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009959 </td>
9960 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009961
9962
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009963 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9964 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009965
9966
9967 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009968 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009969 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009970 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009971 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009972 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009973 <span class="entry_type_container">x</span>
9974
9975 <span class="entry_type_array">
9976 n x 2
9977 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009978 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009979
9980
9981 </td> <!-- entry_type -->
9982
9983 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009984 <p>The resolutions available for use with
9985processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
9986platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -08009987encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009988 </td>
9989
9990 <td class="entry_units">
9991 </td>
9992
9993 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009994 </td>
9995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009996 <td class="entry_tags">
9997 <ul class="entry_tags">
9998 <li><a href="#tag_BC">BC</a></li>
9999 </ul>
10000 </td>
10001
10002 </tr>
10003 <tr class="entries_header">
10004 <th class="th_details" colspan="5">Details</th>
10005 </tr>
10006 <tr class="entry_cont">
10007 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010008 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10009<p>For a given use case,<wbr/> the actual maximum supported resolution
10010may be lower than what is listed here,<wbr/> depending on the destination
10011Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10012the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10013smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10014can provide.<wbr/></p>
10015<p>Please reference the documentation for the image data destination to
10016check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010017 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010018 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010019
Zhijun Heb8317e22014-01-16 09:47:07 -080010020 <tr class="entries_header">
10021 <th class="th_details" colspan="5">HAL Implementation Details</th>
10022 </tr>
10023 <tr class="entry_cont">
10024 <td class="entry_details" colspan="5">
10025 <p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
10026the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10027and each below resolution if it is smaller than or equal to the sensor
10028maximum resolution (if they are not listed in JPEG sizes already):</p>
10029<ul>
10030<li>240p (320 x 240)</li>
10031<li>480p (640 x 480)</li>
10032<li>720p (1280 x 720)</li>
10033<li>1080p (1920 x 1080)</li>
10034</ul>
10035<p>For LIMITED capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
10036the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10037 </td>
10038 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010040 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010042
10043
10044 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010045 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010046 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010047 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010048 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010049 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010050 <span class="entry_type_container">x</span>
10051
10052 <span class="entry_type_array">
10053 n
10054 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010055 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010056
10057
10058 </td> <!-- entry_type -->
10059
10060 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010061 <p>For each available processed output size (defined in
10062<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10063supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010064 </td>
10065
10066 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010067 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010068 </td>
10069
10070 <td class="entry_range">
10071 </td>
10072
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010073 <td class="entry_tags">
10074 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010075 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010076 </ul>
10077 </td>
10078
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010079 </tr>
10080 <tr class="entries_header">
10081 <th class="th_details" colspan="5">Details</th>
10082 </tr>
10083 <tr class="entry_cont">
10084 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010085 <p>Should correspond to the frame duration when only the raw stream is
10086active.<wbr/></p>
10087<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010088frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010089durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010090 </td>
10091 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010092
10093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010094 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10095 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010096
10097
10098 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010099 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010100 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010101 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010102 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010103 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010104 <span class="entry_type_container">x</span>
10105
10106 <span class="entry_type_array">
10107 n x 2
10108 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010109 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010110
10111
10112 </td> <!-- entry_type -->
10113
10114 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010115 <p>The resolutions available for use with raw
10116sensor output streams,<wbr/> listed as width,<wbr/>
10117height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010118 </td>
10119
10120 <td class="entry_units">
10121 </td>
10122
10123 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010124 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010125 </td>
10126
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010127 <td class="entry_tags">
10128 </td>
10129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010130 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010131
10132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10134 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010135
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010136
10137
10138 <!-- end of kind -->
10139 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010140 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010141
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010142 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010143 <tr>
10144 <th class="th_name">Property Name</th>
10145 <th class="th_type">Type</th>
10146 <th class="th_description">Description</th>
10147 <th class="th_units">Units</th>
10148 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010149 <th class="th_tags">Tags</th>
10150 </tr>
10151 </thead>
10152
10153 <tbody>
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010165 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010166 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010167 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010168 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010169 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010170 <span class="entry_type_container">x</span>
10171
10172 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010173 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010174 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010175 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010176
10177
10178 </td> <!-- entry_type -->
10179
10180 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010181 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10182<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10183(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10184output.<wbr/> Each stream must use this rectangle to produce its
10185output,<wbr/> cropping to a smaller region if necessary to
10186maintain the stream's aspect ratio.<wbr/></p>
10187<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010188 </td>
10189
10190 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010191 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10192 in pixels; (0,<wbr/>0) is top-left corner of
10193 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010194 </td>
10195
10196 <td class="entry_range">
10197 </td>
10198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010199 <td class="entry_tags">
10200 <ul class="entry_tags">
10201 <li><a href="#tag_BC">BC</a></li>
10202 </ul>
10203 </td>
10204
10205 </tr>
10206 <tr class="entries_header">
10207 <th class="th_details" colspan="5">Details</th>
10208 </tr>
10209 <tr class="entry_cont">
10210 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010211 <p>Any additional per-stream cropping must be done to
10212maximize the final pixel area of the stream.<wbr/></p>
10213<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10214ratio,<wbr/> then 4:3 streams should use the exact crop
10215region.<wbr/> 16:9 streams should further crop vertically
10216(letterbox).<wbr/></p>
10217<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10218outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10219streams should match exactly.<wbr/> These additional crops must
10220be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010221<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010222times,<wbr/> no matter what the relative aspect ratios of the
10223crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010224corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010225larger than active pixel array.<wbr/> Width and height may be
10226rounded to nearest larger supportable width,<wbr/> especially
10227for raw output,<wbr/> where only a few fixed scales may be
10228possible.<wbr/> The width and height of the crop region cannot
10229be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10230android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10231activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10232respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010233 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010235
10236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010237 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10238 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010239
10240
10241
10242 <!-- end of kind -->
10243 </tbody>
10244
10245 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010246 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010247
10248
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010249 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010250
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010251 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010252 <tr>
10253 <th class="th_name">Property Name</th>
10254 <th class="th_type">Type</th>
10255 <th class="th_description">Description</th>
10256 <th class="th_units">Units</th>
10257 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010258 <th class="th_tags">Tags</th>
10259 </tr>
10260 </thead>
10261
10262 <tbody>
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010274 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010275 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010276 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010277 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010278 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010279
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010280 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010281
10282
10283 </td> <!-- entry_type -->
10284
10285 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010286 <p>Duration each pixel is exposed to
10287light.<wbr/></p>
10288<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10289duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010290 </td>
10291
10292 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010293 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010294 </td>
10295
10296 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010297 <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010298 </td>
10299
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010300 <td class="entry_tags">
10301 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010302 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010303 </ul>
10304 </td>
10305
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010306 </tr>
10307 <tr class="entries_header">
10308 <th class="th_details" colspan="5">Details</th>
10309 </tr>
10310 <tr class="entry_cont">
10311 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010312 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010313 </td>
10314 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010315
10316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10318 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010319
10320
10321 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010322 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010323 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010324 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010325 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010326 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010327
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010328 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010329
10330
10331 </td> <!-- entry_type -->
10332
10333 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010334 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010335start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010336 </td>
10337
10338 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010339 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010340 </td>
10341
10342 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010343 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10344android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10345is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010346 </td>
10347
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010348 <td class="entry_tags">
10349 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010350 <li><a href="#tag_V1">V1</a></li>
10351 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010352 </ul>
10353 </td>
10354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010355 </tr>
10356 <tr class="entries_header">
10357 <th class="th_details" colspan="5">Details</th>
10358 </tr>
10359 <tr class="entry_cont">
10360 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010361 <p>The maximum frame rate that can be supported by a camera subsystem is
10362a function of many factors:</p>
10363<ul>
10364<li>Requested resolutions of output image streams</li>
10365<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10366<li>The bandwidth of the imager interface</li>
10367<li>The bandwidth of the various ISP processing blocks</li>
10368</ul>
10369<p>Since these factors can vary greatly between different ISPs and
10370sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10371restrictions with as simple a model as possible.<wbr/></p>
10372<p>The model presented has the following characteristics:</p>
10373<ul>
10374<li>The image sensor is always configured to output the smallest
10375resolution possible given the application's requested output stream
10376sizes.<wbr/> The smallest resolution is defined as being at least as large
10377as the largest requested output stream size; the camera pipeline must
10378never digitally upsample sensor data when the crop region covers the
10379whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10380resolutions are configured,<wbr/> the sensor can provide a higher frame
10381rate.<wbr/></li>
10382<li>Since any request may use any or all the currently configured
10383output streams,<wbr/> the sensor and ISP must be configured to support
10384scaling a single capture to all the streams at the same time.<wbr/> This
10385means the camera pipeline must be ready to produce the largest
10386requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10387frame rate of a given configured stream set is governed only by the
10388largest requested stream resolution.<wbr/></li>
10389<li>Using more than one output stream in a request does not affect the
10390frame duration.<wbr/></li>
10391<li>JPEG streams act like processed YUV streams in requests for which
10392they are not included; in requests in which they are directly
10393referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10394JPEG stream requires the underlying YUV data to always be ready for
10395use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10396frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10397<li>The JPEG processor can run concurrently to the rest of the camera
10398pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10399</ul>
10400<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10401is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10402These are used to determine the maximum frame rate /<wbr/> minimum frame
10403duration that is possible for a given stream configuration.<wbr/></p>
10404<p>Specifically,<wbr/> the application can use the following rules to
10405determine the minimum frame duration it can request from the HAL
10406device:</p>
10407<ol>
10408<li>Given the application's currently configured set of output
10409streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10410<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10411<code>SP</code>.<wbr/></li>
10412<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10413count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10414<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10415<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
10416no exact match for <code>RP == RJ</code> (in particular there isn't an available
10417processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10418to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10419there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10420the processed resolution closest to <code>RJ</code>.<wbr/></li>
10421<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
10422no exact match for <code>RR == RP</code> (in particular there isn't an available
10423raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10424or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10425there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10426the raw resolution closest to <code>RP</code>.<wbr/></li>
10427<li>Look up the matching minimum frame durations in the property lists
10428<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10429<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10430<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10431minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10432<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10433supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10434<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10435supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10436<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10437the application,<wbr/> then the HAL will have to delay JPEG-using requests
10438whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10439This will happen whenever a JPEG-using request starts capture less
10440than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10441supported frame duration will vary between the values calculated in
10442#6 and #7.<wbr/></li>
10443</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010444 </td>
10445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010446
10447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010448 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010450
10451
10452 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010454 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010458
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010459 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010460
10461
10462 </td> <!-- entry_type -->
10463
10464 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010465 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010466implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010467below 'maximum analog sensitivity'.<wbr/></p>
10468<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10469gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010470 </td>
10471
10472 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010473 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010474 </td>
10475
10476 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010477 <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010478 </td>
10479
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010480 <td class="entry_tags">
10481 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010482 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010483 </ul>
10484 </td>
10485
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010486 </tr>
10487 <tr class="entries_header">
10488 <th class="th_details" colspan="5">Details</th>
10489 </tr>
10490 <tr class="entry_cont">
10491 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010492 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010493 </td>
10494 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010495
10496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010497 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10498 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010499
Igor Murashkina46e02f2014-01-09 17:43:38 -080010500
10501 <tr class="entry" id="controls_android.sensor.testPatternData">
10502 <td class="entry_name" rowspan="5">
10503 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10504 </td>
10505 <td class="entry_type">
10506 <span class="entry_type_name">int32</span>
10507 <span class="entry_type_container">x</span>
10508
10509 <span class="entry_type_array">
10510 4
10511 </span>
10512 <span class="entry_type_visibility"> [public]</span>
10513
10514
10515 </td> <!-- entry_type -->
10516
10517 <td class="entry_description">
10518 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10519when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10520 </td>
10521
10522 <td class="entry_units">
10523 </td>
10524
10525 <td class="entry_range">
10526 <p>Optional.<wbr/>
10527Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10528SOLID_<wbr/>COLOR.<wbr/></p>
10529 </td>
10530
10531 <td class="entry_tags">
10532 </td>
10533
10534 </tr>
10535 <tr class="entries_header">
10536 <th class="th_details" colspan="5">Details</th>
10537 </tr>
10538 <tr class="entry_cont">
10539 <td class="entry_details" colspan="5">
10540 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10541The camera device then uses the most significant X bits
10542that correspond to how many bits are in its Bayer raw sensor
10543output.<wbr/></p>
10544<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1054510 most significant bits from each color channel.<wbr/></p>
10546 </td>
10547 </tr>
10548
10549 <tr class="entries_header">
10550 <th class="th_details" colspan="5">HAL Implementation Details</th>
10551 </tr>
10552 <tr class="entry_cont">
10553 <td class="entry_details" colspan="5">
10554
10555 </td>
10556 </tr>
10557
10558 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10559 <!-- end of entry -->
10560
10561
10562 <tr class="entry" id="controls_android.sensor.testPatternMode">
10563 <td class="entry_name" rowspan="5">
10564 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10565 </td>
10566 <td class="entry_type">
10567 <span class="entry_type_name entry_type_name_enum">int32</span>
10568
10569 <span class="entry_type_visibility"> [public]</span>
10570
10571 <ul class="entry_type_enum">
10572 <li>
10573 <span class="entry_type_enum_name">OFF</span>
10574 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10575device returns captures from the image sensor.<wbr/></p></span>
10576 </li>
10577 <li>
10578 <span class="entry_type_enum_name">SOLID_COLOR</span>
10579 <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
10580respective color channel provided in
10581<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10582<p>For example:</p>
10583<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10584</code></pre>
10585<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10586<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10587</code></pre>
10588<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10589are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10590 </li>
10591 <li>
10592 <span class="entry_type_enum_name">COLOR_BARS</span>
10593 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10594<p>The vertical bars (left-to-right) are as follows:</p>
10595<ul>
10596<li>100% white</li>
10597<li>yellow</li>
10598<li>cyan</li>
10599<li>green</li>
10600<li>magenta</li>
10601<li>red</li>
10602<li>blue</li>
10603<li>black</li>
10604</ul>
10605<p>In general the image would look like the following:</p>
10606<pre><code>W Y C G M R B K
10607W Y C G M R B K
10608W Y C G M R B K
10609W Y C G M R B K
10610W Y C G M R B K
10611.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10612.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10613.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10614
10615(B = Blue,<wbr/> K = Black)
10616</code></pre>
10617<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10618When this is not possible,<wbr/> the bar size should be rounded
10619down to the nearest integer and the pattern can repeat
10620on the right side.<wbr/></p>
10621<p>Each bar's height must always take up the full sensor
10622pixel array height.<wbr/></p>
10623<p>Each pixel in this test pattern must be set to either
106240% intensity or 100% intensity.<wbr/></p></span>
10625 </li>
10626 <li>
10627 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10628 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10629each bar should start at its specified color at the top,<wbr/>
10630and fade to gray at the bottom.<wbr/></p>
10631<p>Furthermore each bar is further subdivided into a left and
10632right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10633and the right half should have a quantized gradient.<wbr/></p>
10634<p>In particular,<wbr/> the right half's should consist of blocks of the
10635same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10636<p>The least significant bits in the quantized gradient should
10637be copied from the most significant bits of the smooth gradient.<wbr/></p>
10638<p>The height of each bar should always be a multiple of 128.<wbr/>
10639When this is not the case,<wbr/> the pattern should repeat at the bottom
10640of the image.<wbr/></p></span>
10641 </li>
10642 <li>
10643 <span class="entry_type_enum_name">PN9</span>
10644 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10645generated from a PN9 512-bit sequence (typically implemented
10646in hardware with a linear feedback shift register).<wbr/></p>
10647<p>The generator should be reset at the beginning of each frame,<wbr/>
10648and thus each subsequent raw frame with this test pattern should
10649be exactly the same as the last.<wbr/></p></span>
10650 </li>
10651 <li>
10652 <span class="entry_type_enum_name">CUSTOM1</span>
10653 <span class="entry_type_enum_value">256</span>
10654 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10655available only on this camera device are at least this numeric
10656value.<wbr/></p>
10657<p>All of the custom test patterns will be static
10658(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10659 </li>
10660 </ul>
10661
10662 </td> <!-- entry_type -->
10663
10664 <td class="entry_description">
10665 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10666doing a real exposure from the camera.<wbr/></p>
10667 </td>
10668
10669 <td class="entry_units">
10670 </td>
10671
10672 <td class="entry_range">
10673 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10674<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10675 </td>
10676
10677 <td class="entry_tags">
10678 </td>
10679
10680 </tr>
10681 <tr class="entries_header">
10682 <th class="th_details" colspan="5">Details</th>
10683 </tr>
10684 <tr class="entry_cont">
10685 <td class="entry_details" colspan="5">
10686 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10687by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10688work as normal.<wbr/></p>
10689<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10690occur (and that the test pattern remain unmodified,<wbr/> since the flash
10691would not actually affect it).<wbr/></p>
10692 </td>
10693 </tr>
10694
10695 <tr class="entries_header">
10696 <th class="th_details" colspan="5">HAL Implementation Details</th>
10697 </tr>
10698 <tr class="entry_cont">
10699 <td class="entry_details" colspan="5">
10700 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10701<p>The HAL may choose to substitute test patterns from the sensor
10702with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10703indistinguishable to the ISP whether the data came from the
10704sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10705 </td>
10706 </tr>
10707
10708 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10709 <!-- end of entry -->
10710
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010711
10712
10713 <!-- end of kind -->
10714 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010715 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010716
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010717 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010718 <tr>
10719 <th class="th_name">Property Name</th>
10720 <th class="th_type">Type</th>
10721 <th class="th_description">Description</th>
10722 <th class="th_units">Units</th>
10723 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010724 <th class="th_tags">Tags</th>
10725 </tr>
10726 </thead>
10727
10728 <tbody>
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010743 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010746 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010747 <span class="entry_type_container">x</span>
10748
10749 <span class="entry_type_array">
10750 4
10751 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010752 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010753 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010754
10755
10756 </td> <!-- entry_type -->
10757
10758 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010759 <p>Area of raw data which corresponds to only
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010760active pixels; smaller or equal to
Igor Murashkin0b080452013-12-27 15:30:25 -080010761pixelArraySize.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010762 </td>
10763
10764 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010765 xmin,<wbr/> ymin,<wbr/> width,<wbr/> height.<wbr/> Top left of full
10766 pixel array is (0,<wbr/>0)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010767 </td>
10768
10769 <td class="entry_range">
10770 </td>
10771
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010772 <td class="entry_tags">
10773 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010774 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010775 </ul>
10776 </td>
10777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010778 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010779
10780
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010781 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10782 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010783
10784
Zhijun He69fc0ea2013-07-17 09:42:58 -070010785 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010786 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010787 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010788 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010789 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010790 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010791 <span class="entry_type_container">x</span>
10792
10793 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010794 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010795 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010796 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010797 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010798
10799
10800 </td> <!-- entry_type -->
10801
10802 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010803 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010804 </td>
10805
10806 <td class="entry_units">
10807 </td>
10808
10809 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010810 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010811 </td>
10812
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010813 <td class="entry_tags">
10814 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010815 <li><a href="#tag_BC">BC</a></li>
10816 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010817 </ul>
10818 </td>
10819
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010820 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010821
10822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010823 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10824 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010825
10826
10827 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010828 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010829 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010830 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010831 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010832 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010833
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010834 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010835
10836 <ul class="entry_type_enum">
10837 <li>
10838 <span class="entry_type_enum_name">RGGB</span>
10839 </li>
10840 <li>
10841 <span class="entry_type_enum_name">GRBG</span>
10842 </li>
10843 <li>
10844 <span class="entry_type_enum_name">GBRG</span>
10845 </li>
10846 <li>
10847 <span class="entry_type_enum_name">BGGR</span>
10848 </li>
10849 <li>
10850 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010851 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
10852values for each pixel,<wbr/> instead of just 1 16-bit value
10853per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010854 </li>
10855 </ul>
10856
10857 </td> <!-- entry_type -->
10858
10859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010860 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010861represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080010862the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010863 </td>
10864
10865 <td class="entry_units">
10866 </td>
10867
10868 <td class="entry_range">
10869 </td>
10870
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010871 <td class="entry_tags">
10872 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010873 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010874 </ul>
10875 </td>
10876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010877 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010878
10879
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010880 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10881 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010882
10883
10884 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010885 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010886 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010887 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010888 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010889 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010890 <span class="entry_type_container">x</span>
10891
10892 <span class="entry_type_array">
10893 2
10894 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010895 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010896 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010897
10898
10899 </td> <!-- entry_type -->
10900
10901 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010902 <p>Range of valid exposure
10903times</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010904 </td>
10905
10906 <td class="entry_units">
10907 </td>
10908
10909 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010910 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 30e9 (30
10911sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010912 </td>
10913
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010914 <td class="entry_tags">
10915 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010916 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010917 </ul>
10918 </td>
10919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010920 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010921
10922
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010923 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10924 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010925
10926
10927 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010928 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010929 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010930 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010931 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010932 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010933
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010934 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010935
10936
10937 </td> <!-- entry_type -->
10938
10939 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010940 <p>Maximum possible frame duration (minimum frame
10941rate)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010942 </td>
10943
10944 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010945 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010946 </td>
10947
10948 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010949 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010950 </td>
10951
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010952 <td class="entry_tags">
10953 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010954 <li><a href="#tag_BC">BC</a></li>
10955 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010956 </ul>
10957 </td>
10958
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010959 </tr>
10960 <tr class="entries_header">
10961 <th class="th_details" colspan="5">Details</th>
10962 </tr>
10963 <tr class="entry_cont">
10964 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010965 <p>Minimum duration is a function of resolution,<wbr/>
10966processing settings.<wbr/> See
10967android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10968android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010969<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010970 </td>
10971 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010972
10973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010974 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10975 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010976
10977
10978 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010979 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010980 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010981 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010982 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010983 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010984 <span class="entry_type_container">x</span>
10985
10986 <span class="entry_type_array">
10987 2
10988 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070010989 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010990 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010991
10992
10993 </td> <!-- entry_type -->
10994
10995 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010996 <p>The physical dimensions of the full pixel
10997array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010998 </td>
10999
11000 <td class="entry_units">
11001 </td>
11002
11003 <td class="entry_range">
11004 </td>
11005
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011006 <td class="entry_tags">
11007 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011008 <li><a href="#tag_V1">V1</a></li>
11009 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011010 </ul>
11011 </td>
11012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011013 </tr>
11014 <tr class="entries_header">
11015 <th class="th_details" colspan="5">Details</th>
11016 </tr>
11017 <tr class="entry_cont">
11018 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011019 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011020 </td>
11021 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011022
11023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011024 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11025 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011026
11027
11028 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011029 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011030 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011032 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011033 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011034 <span class="entry_type_container">x</span>
11035
11036 <span class="entry_type_array">
11037 2
11038 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011039 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011040
11041
11042 </td> <!-- entry_type -->
11043
11044 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011045 <p>Dimensions of full pixel array,<wbr/> possibly
11046including black calibration pixels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011047 </td>
11048
11049 <td class="entry_units">
11050 </td>
11051
11052 <td class="entry_range">
11053 </td>
11054
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011055 <td class="entry_tags">
11056 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011057 <li><a href="#tag_DNG">DNG</a></li>
11058 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059 </ul>
11060 </td>
11061
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011062 </tr>
11063 <tr class="entries_header">
11064 <th class="th_details" colspan="5">Details</th>
11065 </tr>
11066 <tr class="entry_cont">
11067 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011068 <p>Maximum output resolution for raw format must
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011069match this in
Igor Murashkin0b080452013-12-27 15:30:25 -080011070android.<wbr/>scaler.<wbr/>info.<wbr/>available<wbr/>Sizes<wbr/>Per<wbr/>Format</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011071 </td>
11072 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011073
11074
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011075 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11076 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011077
11078
11079 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011080 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011081 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011082 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011083 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011084 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011085
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011086 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011087
11088
11089 </td> <!-- entry_type -->
11090
11091 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011092 <p>Maximum raw value output by
11093sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011094 </td>
11095
11096 <td class="entry_units">
11097 </td>
11098
11099 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011100 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011101 </td>
11102
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011103 <td class="entry_tags">
11104 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011105 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011106 </ul>
11107 </td>
11108
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011109 </tr>
11110 <tr class="entries_header">
11111 <th class="th_details" colspan="5">Details</th>
11112 </tr>
11113 <tr class="entry_cont">
11114 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011115 <p>Defines sensor bit depth (10-14 bits is
11116expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011117 </td>
11118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011119
11120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11122 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011123
11124
11125
11126
11127
11128 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011129 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011130 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011131 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011132 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011133 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011134
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011135 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011136
11137
11138 </td> <!-- entry_type -->
11139
11140 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011141 <p>Gain factor from electrons to raw units when
11142ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011143 </td>
11144
11145 <td class="entry_units">
11146 </td>
11147
11148 <td class="entry_range">
11149 </td>
11150
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011151 <td class="entry_tags">
11152 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011153 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011154 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011155 </ul>
11156 </td>
11157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011158 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011159
11160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011161 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11162 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011163
11164
11165 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011166 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011167 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011168 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011169 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011170 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011171 <span class="entry_type_container">x</span>
11172
11173 <span class="entry_type_array">
11174 4
11175 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011176 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011177 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011178
11179
11180 </td> <!-- entry_type -->
11181
11182 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011183 <p>A fixed black level offset for each of the
11184Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011185 </td>
11186
11187 <td class="entry_units">
11188 </td>
11189
11190 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011191 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011192 </td>
11193
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011194 <td class="entry_tags">
11195 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011196 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011197 </ul>
11198 </td>
11199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011200 </tr>
11201 <tr class="entries_header">
11202 <th class="th_details" colspan="5">Details</th>
11203 </tr>
11204 <tr class="entry_cont">
11205 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011206 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11207tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011208 </td>
11209 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011210
11211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011212 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11213 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011214
11215
11216 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011217 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011218 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011219 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011220 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011221 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011222 <span class="entry_type_container">x</span>
11223
11224 <span class="entry_type_array">
11225 9
11226 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011227 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011228 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011229
11230
11231 </td> <!-- entry_type -->
11232
11233 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011234 <p>Per-device calibration on top of color space
11235transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011236 </td>
11237
11238 <td class="entry_units">
11239 </td>
11240
11241 <td class="entry_range">
11242 </td>
11243
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011244 <td class="entry_tags">
11245 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011246 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011247 </ul>
11248 </td>
11249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011250 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011251
11252
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011253 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11254 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011255
11256
11257 <tr class="entry" id="static_android.sensor.calibrationTransform2">
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/>calibration<wbr/>Transform2
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 <span class="entry_type_container">x</span>
11264
11265 <span class="entry_type_array">
11266 9
11267 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011268 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011269 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011270
11271
11272 </td> <!-- entry_type -->
11273
11274 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011275 <p>Per-device calibration on top of color space
11276transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011277 </td>
11278
11279 <td class="entry_units">
11280 </td>
11281
11282 <td class="entry_range">
11283 </td>
11284
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011285 <td class="entry_tags">
11286 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011287 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011288 </ul>
11289 </td>
11290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011291 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011292
11293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011294 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11295 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011296
11297
11298 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011299 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011300 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011301 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011302 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011303 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011304 <span class="entry_type_container">x</span>
11305
11306 <span class="entry_type_array">
11307 9
11308 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011309 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011310 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011311
11312
11313 </td> <!-- entry_type -->
11314
11315 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011316 <p>Linear mapping from XYZ (D50) color space to
11317reference linear sensor color,<wbr/> for first reference
11318illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011319 </td>
11320
11321 <td class="entry_units">
11322 </td>
11323
11324 <td class="entry_range">
11325 </td>
11326
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011327 <td class="entry_tags">
11328 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011329 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011330 </ul>
11331 </td>
11332
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011333 </tr>
11334 <tr class="entries_header">
11335 <th class="th_details" colspan="5">Details</th>
11336 </tr>
11337 <tr class="entry_cont">
11338 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011339 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11340black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11341At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011342 </td>
11343 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011344
11345
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011346 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11347 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011348
11349
11350 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011351 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011352 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011353 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011354 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011355 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011356 <span class="entry_type_container">x</span>
11357
11358 <span class="entry_type_array">
11359 9
11360 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011361 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011362 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011363
11364
11365 </td> <!-- entry_type -->
11366
11367 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011368 <p>Linear mapping from XYZ (D50) color space to
11369reference linear sensor color,<wbr/> for second reference
11370illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011371 </td>
11372
11373 <td class="entry_units">
11374 </td>
11375
11376 <td class="entry_range">
11377 </td>
11378
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011379 <td class="entry_tags">
11380 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011381 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011382 </ul>
11383 </td>
11384
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011385 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011386
11387
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011388 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11389 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011390
11391
11392 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011393 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011394 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011395 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011396 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011397 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011398 <span class="entry_type_container">x</span>
11399
11400 <span class="entry_type_array">
11401 9
11402 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011403 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011404 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011405
11406
11407 </td> <!-- entry_type -->
11408
11409 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011410 <p>Used by DNG for better WB
11411adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011412 </td>
11413
11414 <td class="entry_units">
11415 </td>
11416
11417 <td class="entry_range">
11418 </td>
11419
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011420 <td class="entry_tags">
11421 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011422 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011423 </ul>
11424 </td>
11425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011426 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011427
11428
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011429 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11430 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011431
11432
11433 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011434 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011435 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011436 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011437 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011438 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011439 <span class="entry_type_container">x</span>
11440
11441 <span class="entry_type_array">
11442 9
11443 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011444 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011445 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011446
11447
11448 </td> <!-- entry_type -->
11449
11450 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011451 <p>Used by DNG for better WB
11452adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011453 </td>
11454
11455 <td class="entry_units">
11456 </td>
11457
11458 <td class="entry_range">
11459 </td>
11460
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011461 <td class="entry_tags">
11462 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011463 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011464 </ul>
11465 </td>
11466
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011467 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011468
11469
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011470 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11471 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011472
11473
11474 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011475 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011476 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011477 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011478 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011479 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011480
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011481 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011482
11483
11484 </td> <!-- entry_type -->
11485
11486 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011487 <p>Maximum sensitivity that is implemented
11488purely through analog gain</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011489 </td>
11490
11491 <td class="entry_units">
11492 </td>
11493
11494 <td class="entry_range">
11495 </td>
11496
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011497 <td class="entry_tags">
11498 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011499 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011500 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011501 </ul>
11502 </td>
11503
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011504 </tr>
11505 <tr class="entries_header">
11506 <th class="th_details" colspan="5">Details</th>
11507 </tr>
11508 <tr class="entry_cont">
11509 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011510 <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 -080011511equal to this,<wbr/> all applied gain must be analog.<wbr/> For
11512values above this,<wbr/> it can be a mix of analog and
11513digital</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011514 </td>
11515 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011516
11517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011518 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11519 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011520
11521
11522 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011523 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011524 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011525 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011526 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011527 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011528 <span class="entry_type_container">x</span>
11529
11530 <span class="entry_type_array">
11531 2
11532 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011533 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011534 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011535
11536
11537 </td> <!-- entry_type -->
11538
11539 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011540 <p>Estimation of sensor noise
11541characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011542 </td>
11543
11544 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011545 var(raw pixel value) = electrons * (baseGainFactor
11546 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11547 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011548 </td>
11549
11550 <td class="entry_range">
11551 </td>
11552
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011553 <td class="entry_tags">
11554 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011555 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011556 </ul>
11557 </td>
11558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011559 </tr>
11560 <tr class="entries_header">
11561 <th class="th_details" colspan="5">Details</th>
11562 </tr>
11563 <tr class="entry_cont">
11564 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011565 <p>A represents sensor read noise before analog
11566amplification; B represents noise from A/<wbr/>D conversion and
11567other circuits after amplification.<wbr/> Both noise sources
11568are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11569across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011570 </td>
11571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011572
11573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011576
11577
11578 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011579 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011580 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011583 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011585 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011586
11587
11588 </td> <!-- entry_type -->
11589
11590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011591 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011592image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011593screen in its native orientation.<wbr/> Also defines the
11594direction of rolling shutter readout,<wbr/> which is from top
11595to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011596 </td>
11597
11598 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011599 degrees clockwise rotation,<wbr/> only multiples of
11600 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011601 </td>
11602
11603 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011604 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011605 </td>
11606
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011607 <td class="entry_tags">
11608 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011609 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011610 </ul>
11611 </td>
11612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011613 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011614
11615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011616 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11617 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011618
11619
11620 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011621 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011622 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011623 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011624 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011625 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011626
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011627 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011628
11629 <ul class="entry_type_enum">
11630 <li>
11631 <span class="entry_type_enum_name">DAYLIGHT</span>
11632 <span class="entry_type_enum_value">1</span>
11633 </li>
11634 <li>
11635 <span class="entry_type_enum_name">FLUORESCENT</span>
11636 <span class="entry_type_enum_value">2</span>
11637 </li>
11638 <li>
11639 <span class="entry_type_enum_name">TUNGSTEN</span>
11640 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011641 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011642 </li>
11643 <li>
11644 <span class="entry_type_enum_name">FLASH</span>
11645 <span class="entry_type_enum_value">4</span>
11646 </li>
11647 <li>
11648 <span class="entry_type_enum_name">FINE_WEATHER</span>
11649 <span class="entry_type_enum_value">9</span>
11650 </li>
11651 <li>
11652 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11653 <span class="entry_type_enum_value">10</span>
11654 </li>
11655 <li>
11656 <span class="entry_type_enum_name">SHADE</span>
11657 <span class="entry_type_enum_value">11</span>
11658 </li>
11659 <li>
11660 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11661 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011662 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011663 </li>
11664 <li>
11665 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11666 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011667 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011668 </li>
11669 <li>
11670 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11671 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011672 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011673 </li>
11674 <li>
11675 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11676 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011677 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011678 </li>
11679 <li>
11680 <span class="entry_type_enum_name">STANDARD_A</span>
11681 <span class="entry_type_enum_value">17</span>
11682 </li>
11683 <li>
11684 <span class="entry_type_enum_name">STANDARD_B</span>
11685 <span class="entry_type_enum_value">18</span>
11686 </li>
11687 <li>
11688 <span class="entry_type_enum_name">STANDARD_C</span>
11689 <span class="entry_type_enum_value">19</span>
11690 </li>
11691 <li>
11692 <span class="entry_type_enum_name">D55</span>
11693 <span class="entry_type_enum_value">20</span>
11694 </li>
11695 <li>
11696 <span class="entry_type_enum_name">D65</span>
11697 <span class="entry_type_enum_value">21</span>
11698 </li>
11699 <li>
11700 <span class="entry_type_enum_name">D75</span>
11701 <span class="entry_type_enum_value">22</span>
11702 </li>
11703 <li>
11704 <span class="entry_type_enum_name">D50</span>
11705 <span class="entry_type_enum_value">23</span>
11706 </li>
11707 <li>
11708 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11709 <span class="entry_type_enum_value">24</span>
11710 </li>
11711 </ul>
11712
11713 </td> <!-- entry_type -->
11714
11715 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011716 <p>Light source used to define transform
117171</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011718 </td>
11719
11720 <td class="entry_units">
11721 </td>
11722
11723 <td class="entry_range">
11724 </td>
11725
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011726 <td class="entry_tags">
11727 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011728 <li><a href="#tag_DNG">DNG</a></li>
11729 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011730 </ul>
11731 </td>
11732
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011733 </tr>
11734 <tr class="entries_header">
11735 <th class="th_details" colspan="5">Details</th>
11736 </tr>
11737 <tr class="entry_cont">
11738 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011739 <p>[EXIF LightSource tag] Must all these be
11740supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011741 </td>
11742 </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.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011750 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011751 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
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">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
11759 </td> <!-- entry_type -->
11760
11761 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011762 <p>Light source used to define transform
117632</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011764 </td>
11765
11766 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011767 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011768 </td>
11769
11770 <td class="entry_range">
11771 </td>
11772
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011773 <td class="entry_tags">
11774 </td>
11775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011776 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011777
11778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011779 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11780 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011781
Igor Murashkina46e02f2014-01-09 17:43:38 -080011782
11783 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11784 <td class="entry_name" rowspan="1">
11785 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11786 </td>
11787 <td class="entry_type">
11788 <span class="entry_type_name">byte</span>
11789
11790 <span class="entry_type_visibility"> [public]</span>
11791
11792
11793 </td> <!-- entry_type -->
11794
11795 <td class="entry_description">
11796 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11797pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11798 </td>
11799
11800 <td class="entry_units">
11801 </td>
11802
11803 <td class="entry_range">
11804 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11805 </td>
11806
11807 <td class="entry_tags">
11808 </td>
11809
11810 </tr>
11811
11812
11813 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11814 <!-- end of entry -->
11815
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011816
11817
11818 <!-- end of kind -->
11819 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011820 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011821
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011822 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011823 <tr>
11824 <th class="th_name">Property Name</th>
11825 <th class="th_type">Type</th>
11826 <th class="th_description">Description</th>
11827 <th class="th_units">Units</th>
11828 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011829 <th class="th_tags">Tags</th>
11830 </tr>
11831 </thead>
11832
11833 <tbody>
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011845 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011846 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011847 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011848 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011849 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011850
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011851 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011852
11853
11854 </td> <!-- entry_type -->
11855
11856 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011857 <p>Duration each pixel is exposed to
11858light.<wbr/></p>
11859<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11860duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011861 </td>
11862
11863 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011864 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011865 </td>
11866
11867 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011868 <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 -080011869 </td>
11870
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011871 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011872 <ul class="entry_tags">
11873 <li><a href="#tag_V1">V1</a></li>
11874 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011875 </td>
11876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011877 </tr>
11878 <tr class="entries_header">
11879 <th class="th_details" colspan="5">Details</th>
11880 </tr>
11881 <tr class="entry_cont">
11882 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011883 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011884 </td>
11885 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011886
11887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011888 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11889 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011890
11891
11892 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011893 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011894 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011895 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011896 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011897 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011898
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011899 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011900
11901
11902 </td> <!-- entry_type -->
11903
11904 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011905 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011906start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011907 </td>
11908
11909 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011910 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011911 </td>
11912
11913 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011914 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
11915android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
11916is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011917 </td>
11918
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011919 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011920 <ul class="entry_tags">
11921 <li><a href="#tag_V1">V1</a></li>
11922 <li><a href="#tag_BC">BC</a></li>
11923 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011924 </td>
11925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011926 </tr>
11927 <tr class="entries_header">
11928 <th class="th_details" colspan="5">Details</th>
11929 </tr>
11930 <tr class="entry_cont">
11931 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080011932 <p>The maximum frame rate that can be supported by a camera subsystem is
11933a function of many factors:</p>
11934<ul>
11935<li>Requested resolutions of output image streams</li>
11936<li>Availability of binning /<wbr/> skipping modes on the imager</li>
11937<li>The bandwidth of the imager interface</li>
11938<li>The bandwidth of the various ISP processing blocks</li>
11939</ul>
11940<p>Since these factors can vary greatly between different ISPs and
11941sensors,<wbr/> the camera abstraction tries to represent the bandwidth
11942restrictions with as simple a model as possible.<wbr/></p>
11943<p>The model presented has the following characteristics:</p>
11944<ul>
11945<li>The image sensor is always configured to output the smallest
11946resolution possible given the application's requested output stream
11947sizes.<wbr/> The smallest resolution is defined as being at least as large
11948as the largest requested output stream size; the camera pipeline must
11949never digitally upsample sensor data when the crop region covers the
11950whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
11951resolutions are configured,<wbr/> the sensor can provide a higher frame
11952rate.<wbr/></li>
11953<li>Since any request may use any or all the currently configured
11954output streams,<wbr/> the sensor and ISP must be configured to support
11955scaling a single capture to all the streams at the same time.<wbr/> This
11956means the camera pipeline must be ready to produce the largest
11957requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
11958frame rate of a given configured stream set is governed only by the
11959largest requested stream resolution.<wbr/></li>
11960<li>Using more than one output stream in a request does not affect the
11961frame duration.<wbr/></li>
11962<li>JPEG streams act like processed YUV streams in requests for which
11963they are not included; in requests in which they are directly
11964referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
11965JPEG stream requires the underlying YUV data to always be ready for
11966use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
11967frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
11968<li>The JPEG processor can run concurrently to the rest of the camera
11969pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
11970</ul>
11971<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
11972is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
11973These are used to determine the maximum frame rate /<wbr/> minimum frame
11974duration that is possible for a given stream configuration.<wbr/></p>
11975<p>Specifically,<wbr/> the application can use the following rules to
11976determine the minimum frame duration it can request from the HAL
11977device:</p>
11978<ol>
11979<li>Given the application's currently configured set of output
11980streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
11981<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
11982<code>SP</code>.<wbr/></li>
11983<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
11984count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
11985<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
11986<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
11987no exact match for <code>RP == RJ</code> (in particular there isn't an available
11988processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
11989to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
11990there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
11991the processed resolution closest to <code>RJ</code>.<wbr/></li>
11992<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
11993no exact match for <code>RR == RP</code> (in particular there isn't an available
11994raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
11995or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
11996there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
11997the raw resolution closest to <code>RP</code>.<wbr/></li>
11998<li>Look up the matching minimum frame durations in the property lists
11999<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12000<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12001<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12002minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12003<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12004supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12005<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12006supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12007<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12008the application,<wbr/> then the HAL will have to delay JPEG-using requests
12009whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12010This will happen whenever a JPEG-using request starts capture less
12011than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12012supported frame duration will vary between the values calculated in
12013#6 and #7.<wbr/></li>
12014</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012015 </td>
12016 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012017
12018
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012019 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12020 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012021
12022
12023 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012024 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012025 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012026 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012028 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012029
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012030 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012031
12032
12033 </td> <!-- entry_type -->
12034
12035 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012036 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012037implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012038below 'maximum analog sensitivity'.<wbr/></p>
12039<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12040gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012041 </td>
12042
12043 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012044 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012045 </td>
12046
12047 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012048 <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 -080012049 </td>
12050
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012051 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012052 <ul class="entry_tags">
12053 <li><a href="#tag_V1">V1</a></li>
12054 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012055 </td>
12056
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012057 </tr>
12058 <tr class="entries_header">
12059 <th class="th_details" colspan="5">Details</th>
12060 </tr>
12061 <tr class="entry_cont">
12062 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012063 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012064 </td>
12065 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012066
12067
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012068 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12069 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012070
12071
12072 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012073 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012074 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012075 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012076 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012077 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012078
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012079 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012080
12081
12082 </td> <!-- entry_type -->
12083
12084 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012085 <p>Time at start of exposure of first
12086row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012087 </td>
12088
12089 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012090 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012091 </td>
12092
12093 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012094 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012095 </td>
12096
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012097 <td class="entry_tags">
12098 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012099 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012100 </ul>
12101 </td>
12102
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012103 </tr>
12104 <tr class="entries_header">
12105 <th class="th_details" colspan="5">Details</th>
12106 </tr>
12107 <tr class="entry_cont">
12108 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012109 <p>Monotonic,<wbr/> should be synced to other timestamps in
12110system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012111 </td>
12112 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012113
12114
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012115 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12116 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012117
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012118
12119 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012120 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012121 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012122 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012123 <td class="entry_type">
12124 <span class="entry_type_name">float</span>
12125
12126 <span class="entry_type_visibility"> [public]</span>
12127
12128
12129 </td> <!-- entry_type -->
12130
12131 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012132 <p>The temperature of the sensor,<wbr/> sampled at the time
12133exposure began for this frame.<wbr/></p>
12134<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12135somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012136 </td>
12137
12138 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012139 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012140 </td>
12141
12142 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012143 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012144 </td>
12145
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012146 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012147 <ul class="entry_tags">
12148 <li><a href="#tag_FULL">FULL</a></li>
12149 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012150 </td>
12151
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012152 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012153
12154
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012155 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12156 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012157
Igor Murashkina46e02f2014-01-09 17:43:38 -080012158
12159 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12160 <td class="entry_name" rowspan="5">
12161 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12162 </td>
12163 <td class="entry_type">
12164 <span class="entry_type_name entry_type_name_enum">int32</span>
12165
12166 <span class="entry_type_visibility"> [public]</span>
12167
12168 <ul class="entry_type_enum">
12169 <li>
12170 <span class="entry_type_enum_name">OFF</span>
12171 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12172device returns captures from the image sensor.<wbr/></p></span>
12173 </li>
12174 <li>
12175 <span class="entry_type_enum_name">SOLID_COLOR</span>
12176 <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
12177respective color channel provided in
12178<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12179<p>For example:</p>
12180<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12181</code></pre>
12182<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12183<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12184</code></pre>
12185<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12186are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12187 </li>
12188 <li>
12189 <span class="entry_type_enum_name">COLOR_BARS</span>
12190 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12191<p>The vertical bars (left-to-right) are as follows:</p>
12192<ul>
12193<li>100% white</li>
12194<li>yellow</li>
12195<li>cyan</li>
12196<li>green</li>
12197<li>magenta</li>
12198<li>red</li>
12199<li>blue</li>
12200<li>black</li>
12201</ul>
12202<p>In general the image would look like the following:</p>
12203<pre><code>W Y C G M R B K
12204W Y C G M R B K
12205W Y C G M R B K
12206W Y C G M R B K
12207W Y C G M R B K
12208.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12209.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12210.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12211
12212(B = Blue,<wbr/> K = Black)
12213</code></pre>
12214<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12215When this is not possible,<wbr/> the bar size should be rounded
12216down to the nearest integer and the pattern can repeat
12217on the right side.<wbr/></p>
12218<p>Each bar's height must always take up the full sensor
12219pixel array height.<wbr/></p>
12220<p>Each pixel in this test pattern must be set to either
122210% intensity or 100% intensity.<wbr/></p></span>
12222 </li>
12223 <li>
12224 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12225 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12226each bar should start at its specified color at the top,<wbr/>
12227and fade to gray at the bottom.<wbr/></p>
12228<p>Furthermore each bar is further subdivided into a left and
12229right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12230and the right half should have a quantized gradient.<wbr/></p>
12231<p>In particular,<wbr/> the right half's should consist of blocks of the
12232same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12233<p>The least significant bits in the quantized gradient should
12234be copied from the most significant bits of the smooth gradient.<wbr/></p>
12235<p>The height of each bar should always be a multiple of 128.<wbr/>
12236When this is not the case,<wbr/> the pattern should repeat at the bottom
12237of the image.<wbr/></p></span>
12238 </li>
12239 <li>
12240 <span class="entry_type_enum_name">PN9</span>
12241 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12242generated from a PN9 512-bit sequence (typically implemented
12243in hardware with a linear feedback shift register).<wbr/></p>
12244<p>The generator should be reset at the beginning of each frame,<wbr/>
12245and thus each subsequent raw frame with this test pattern should
12246be exactly the same as the last.<wbr/></p></span>
12247 </li>
12248 <li>
12249 <span class="entry_type_enum_name">CUSTOM1</span>
12250 <span class="entry_type_enum_value">256</span>
12251 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12252available only on this camera device are at least this numeric
12253value.<wbr/></p>
12254<p>All of the custom test patterns will be static
12255(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12256 </li>
12257 </ul>
12258
12259 </td> <!-- entry_type -->
12260
12261 <td class="entry_description">
12262 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12263doing a real exposure from the camera.<wbr/></p>
12264 </td>
12265
12266 <td class="entry_units">
12267 </td>
12268
12269 <td class="entry_range">
12270 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12271<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12272 </td>
12273
12274 <td class="entry_tags">
12275 </td>
12276
12277 </tr>
12278 <tr class="entries_header">
12279 <th class="th_details" colspan="5">Details</th>
12280 </tr>
12281 <tr class="entry_cont">
12282 <td class="entry_details" colspan="5">
12283 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12284by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12285work as normal.<wbr/></p>
12286<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12287occur (and that the test pattern remain unmodified,<wbr/> since the flash
12288would not actually affect it).<wbr/></p>
12289 </td>
12290 </tr>
12291
12292 <tr class="entries_header">
12293 <th class="th_details" colspan="5">HAL Implementation Details</th>
12294 </tr>
12295 <tr class="entry_cont">
12296 <td class="entry_details" colspan="5">
12297 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12298<p>The HAL may choose to substitute test patterns from the sensor
12299with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12300indistinguishable to the ISP whether the data came from the
12301sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12302 </td>
12303 </tr>
12304
12305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12306 <!-- end of entry -->
12307
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012308
12309
12310 <!-- end of kind -->
12311 </tbody>
12312
12313 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012314 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012315
12316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012317 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012318
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012319 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012320 <tr>
12321 <th class="th_name">Property Name</th>
12322 <th class="th_type">Type</th>
12323 <th class="th_description">Description</th>
12324 <th class="th_units">Units</th>
12325 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012326 <th class="th_tags">Tags</th>
12327 </tr>
12328 </thead>
12329
12330 <tbody>
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012342 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012343 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012346 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012347
Zhijun He2f86a212014-01-15 10:34:02 -080012348 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012349
12350 <ul class="entry_type_enum">
12351 <li>
12352 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012353 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012354 </li>
12355 <li>
12356 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012357 <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 -080012358 </li>
12359 <li>
12360 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012361 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012362 </li>
12363 </ul>
12364
12365 </td> <!-- entry_type -->
12366
12367 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012368 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012369to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012370 </td>
12371
12372 <td class="entry_units">
12373 </td>
12374
12375 <td class="entry_range">
12376 </td>
12377
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012378 <td class="entry_tags">
12379 </td>
12380
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012381 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012382 <tr class="entries_header">
12383 <th class="th_details" colspan="5">Details</th>
12384 </tr>
12385 <tr class="entry_cont">
12386 <td class="entry_details" colspan="5">
12387 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12388camera device,<wbr/> and an identity lens shading map data will be provided
12389if <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
12390shading 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/>
12391the 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
12392shown below:</p>
12393<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/>
12394 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/>
12395 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/>
12396 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/>
12397 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/>
12398 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 ]
12399</code></pre>
12400<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12401camera device.<wbr/> Applications can request lens shading map data by setting
12402<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
12403lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12404by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12405 </td>
12406 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012407
12408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012409 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12410 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012411
12412
12413 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012414 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012415 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012416 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012417 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012418 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012419
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012420 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012421
12422
12423 </td> <!-- entry_type -->
12424
12425 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012426 <p>Control the amount of shading correction
12427applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012428 </td>
12429
12430 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012431 unitless: 1-10; 10 is full shading
12432 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012433 </td>
12434
12435 <td class="entry_range">
12436 </td>
12437
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012438 <td class="entry_tags">
12439 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012440 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012441 </ul>
12442 </td>
12443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012444 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012445
12446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012447 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12448 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012449
12450
12451
12452 <!-- end of kind -->
12453 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012454 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012455
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012456 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012457 <tr>
12458 <th class="th_name">Property Name</th>
12459 <th class="th_type">Type</th>
12460 <th class="th_description">Description</th>
12461 <th class="th_units">Units</th>
12462 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012463 <th class="th_tags">Tags</th>
12464 </tr>
12465 </thead>
12466
12467 <tbody>
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012479 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012480 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012481 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012482 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012483 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012484
Zhijun He2f86a212014-01-15 10:34:02 -080012485 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012486
12487 <ul class="entry_type_enum">
12488 <li>
12489 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012490 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012491 </li>
12492 <li>
12493 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012494 <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 -080012495 </li>
12496 <li>
12497 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012498 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012499 </li>
12500 </ul>
12501
12502 </td> <!-- entry_type -->
12503
12504 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012505 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012506to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012507 </td>
12508
12509 <td class="entry_units">
12510 </td>
12511
12512 <td class="entry_range">
12513 </td>
12514
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012515 <td class="entry_tags">
12516 </td>
12517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012518 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012519 <tr class="entries_header">
12520 <th class="th_details" colspan="5">Details</th>
12521 </tr>
12522 <tr class="entry_cont">
12523 <td class="entry_details" colspan="5">
12524 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12525camera device,<wbr/> and an identity lens shading map data will be provided
12526if <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
12527shading 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/>
12528the 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
12529shown below:</p>
12530<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/>
12531 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/>
12532 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/>
12533 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/>
12534 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/>
12535 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 ]
12536</code></pre>
12537<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12538camera device.<wbr/> Applications can request lens shading map data by setting
12539<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
12540lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12541by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12542 </td>
12543 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012544
12545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012546 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12547 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012548
12549
12550
12551 <!-- end of kind -->
12552 </tbody>
12553
12554 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012555 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012556
12557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012558 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012559
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012560 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012561 <tr>
12562 <th class="th_name">Property Name</th>
12563 <th class="th_type">Type</th>
12564 <th class="th_description">Description</th>
12565 <th class="th_units">Units</th>
12566 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012567 <th class="th_tags">Tags</th>
12568 </tr>
12569 </thead>
12570
12571 <tbody>
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012583 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012584 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012585 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012586 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012587 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012588
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012589 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012590
12591 <ul class="entry_type_enum">
12592 <li>
12593 <span class="entry_type_enum_name">OFF</span>
12594 </li>
12595 <li>
12596 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012597 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12598only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012599 </li>
12600 <li>
12601 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012602 <span class="entry_type_enum_notes"><p>Optional Return all face
12603metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012604 </li>
12605 </ul>
12606
12607 </td> <!-- entry_type -->
12608
12609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012610 <p>State of the face detector
12611unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012612 </td>
12613
12614 <td class="entry_units">
12615 </td>
12616
12617 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012618 <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 -080012619 </td>
12620
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012621 <td class="entry_tags">
12622 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012623 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012624 </ul>
12625 </td>
12626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012627 </tr>
12628 <tr class="entries_header">
12629 <th class="th_details" colspan="5">Details</th>
12630 </tr>
12631 <tr class="entry_cont">
12632 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012633 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012634should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012635fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012636<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 -080012637 </td>
12638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012639
12640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012641 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12642 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012643
12644
12645 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012646 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012647 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012648 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012649 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012650 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012651
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012652 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012653
12654 <ul class="entry_type_enum">
12655 <li>
12656 <span class="entry_type_enum_name">OFF</span>
12657 </li>
12658 <li>
12659 <span class="entry_type_enum_name">ON</span>
12660 </li>
12661 </ul>
12662
12663 </td> <!-- entry_type -->
12664
12665 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012666 <p>Operating mode for histogram
12667generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012668 </td>
12669
12670 <td class="entry_units">
12671 </td>
12672
12673 <td class="entry_range">
12674 </td>
12675
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012676 <td class="entry_tags">
12677 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012678 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012679 </ul>
12680 </td>
12681
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012682 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012683
12684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012685 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12686 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012687
12688
12689 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012690 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012691 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012692 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012693 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012694 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012695
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012696 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012697
12698 <ul class="entry_type_enum">
12699 <li>
12700 <span class="entry_type_enum_name">OFF</span>
12701 </li>
12702 <li>
12703 <span class="entry_type_enum_name">ON</span>
12704 </li>
12705 </ul>
12706
12707 </td> <!-- entry_type -->
12708
12709 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012710 <p>Operating mode for sharpness map
12711generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012712 </td>
12713
12714 <td class="entry_units">
12715 </td>
12716
12717 <td class="entry_range">
12718 </td>
12719
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012720 <td class="entry_tags">
12721 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012722 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012723 </ul>
12724 </td>
12725
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012726 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012727
12728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012729 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12730 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012731
Zhijun He69fc0ea2013-07-17 09:42:58 -070012732
12733 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012734 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012735 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012736 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012737 <td class="entry_type">
12738 <span class="entry_type_name entry_type_name_enum">byte</span>
12739
12740 <span class="entry_type_visibility"> [public]</span>
12741
12742 <ul class="entry_type_enum">
12743 <li>
12744 <span class="entry_type_enum_name">OFF</span>
12745 </li>
12746 <li>
12747 <span class="entry_type_enum_name">ON</span>
12748 </li>
12749 </ul>
12750
12751 </td> <!-- entry_type -->
12752
12753 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012754 <p>Whether the HAL needs to output the lens
12755shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012756 </td>
12757
12758 <td class="entry_units">
12759 </td>
12760
12761 <td class="entry_range">
12762 </td>
12763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012764 <td class="entry_tags">
12765 </td>
12766
12767 </tr>
12768 <tr class="entries_header">
12769 <th class="th_details" colspan="5">Details</th>
12770 </tr>
12771 <tr class="entry_cont">
12772 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012773 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012774<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 -080012775the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012776 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012778
12779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12781 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012782
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012783
12784
12785 <!-- end of kind -->
12786 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012787 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012789 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012790 <tr>
12791 <th class="th_name">Property Name</th>
12792 <th class="th_type">Type</th>
12793 <th class="th_description">Description</th>
12794 <th class="th_units">Units</th>
12795 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012796 <th class="th_tags">Tags</th>
12797 </tr>
12798 </thead>
12799
12800 <tbody>
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012814 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012815 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012816 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012817 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012818 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012819 <span class="entry_type_container">x</span>
12820
12821 <span class="entry_type_array">
12822 n
12823 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012824 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080012825 <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 -080012826
12827
12828 </td> <!-- entry_type -->
12829
12830 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012831 <p>Which face detection modes are available,<wbr/>
12832if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012833 </td>
12834
12835 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012836 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070012837 OFF
12838 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080012839 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012840 </td>
12841
12842 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012843 </td>
12844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012845 <td class="entry_tags">
12846 </td>
12847
12848 </tr>
12849 <tr class="entries_header">
12850 <th class="th_details" colspan="5">Details</th>
12851 </tr>
12852 <tr class="entry_cont">
12853 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012854 <p>OFF means face detection is disabled,<wbr/> it must
12855be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012856<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012857<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
12858<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012859<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012860<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
12861<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012862 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012863 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012864
12865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012866 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12867 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012868
12869
12870 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012871 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012872 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012873 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012874 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012875 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012876
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012877 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012878
12879
12880 </td> <!-- entry_type -->
12881
12882 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012883 <p>Number of histogram buckets
12884supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012885 </td>
12886
12887 <td class="entry_units">
12888 </td>
12889
12890 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012891 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012892 </td>
12893
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012894 <td class="entry_tags">
12895 </td>
12896
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012897 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012898
12899
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012900 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12901 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012902
12903
12904 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012905 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012906 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012907 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012908 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012909 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012910
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012911 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012912
12913
12914 </td> <!-- entry_type -->
12915
12916 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012917 <p>Maximum number of simultaneously detectable
12918faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012919 </td>
12920
12921 <td class="entry_units">
12922 </td>
12923
12924 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012925 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012926modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012927 </td>
12928
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012929 <td class="entry_tags">
12930 </td>
12931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012932 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012933
12934
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012935 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12936 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012937
12938
12939 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012940 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012941 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012942 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012943 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012944 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012945
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012946 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012947
12948
12949 </td> <!-- entry_type -->
12950
12951 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012952 <p>Maximum value possible for a histogram
12953bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012954 </td>
12955
12956 <td class="entry_units">
12957 </td>
12958
12959 <td class="entry_range">
12960 </td>
12961
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012962 <td class="entry_tags">
12963 </td>
12964
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012965 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012966
12967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012970
12971
12972 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012973 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012974 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012976 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012977 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012978
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012979 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012980
12981
12982 </td> <!-- entry_type -->
12983
12984 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012985 <p>Maximum value possible for a sharpness map
12986region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012987 </td>
12988
12989 <td class="entry_units">
12990 </td>
12991
12992 <td class="entry_range">
12993 </td>
12994
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012995 <td class="entry_tags">
12996 </td>
12997
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012998 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012999
13000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013001 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13002 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013003
13004
13005 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013006 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013007 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013008 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013009 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013010 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013011 <span class="entry_type_container">x</span>
13012
13013 <span class="entry_type_array">
13014 2
13015 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013016 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013017 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013018
13019
13020 </td> <!-- entry_type -->
13021
13022 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013023 <p>Dimensions of the sharpness
13024map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013025 </td>
13026
13027 <td class="entry_units">
13028 </td>
13029
13030 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013031 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013032 </td>
13033
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013034 <td class="entry_tags">
13035 </td>
13036
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013037 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013038
13039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013040 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013042
13043
13044
13045
13046
13047
13048 <!-- end of kind -->
13049 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013050 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013051
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013052 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013053 <tr>
13054 <th class="th_name">Property Name</th>
13055 <th class="th_type">Type</th>
13056 <th class="th_description">Description</th>
13057 <th class="th_units">Units</th>
13058 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013059 <th class="th_tags">Tags</th>
13060 </tr>
13061 </thead>
13062
13063 <tbody>
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013075 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013076 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013079 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013080
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013081 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013082
13083 <ul class="entry_type_enum">
13084 <li>
13085 <span class="entry_type_enum_name">OFF</span>
13086 </li>
13087 <li>
13088 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013089 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13090only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013091 </li>
13092 <li>
13093 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013094 <span class="entry_type_enum_notes"><p>Optional Return all face
13095metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013096 </li>
13097 </ul>
13098
13099 </td> <!-- entry_type -->
13100
13101 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013102 <p>State of the face detector
13103unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013104 </td>
13105
13106 <td class="entry_units">
13107 </td>
13108
13109 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013110 <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 -080013111 </td>
13112
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013113 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013114 <ul class="entry_tags">
13115 <li><a href="#tag_BC">BC</a></li>
13116 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013117 </td>
13118
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013119 </tr>
13120 <tr class="entries_header">
13121 <th class="th_details" colspan="5">Details</th>
13122 </tr>
13123 <tr class="entry_cont">
13124 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013125 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013126should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013127fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013128<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 -080013129 </td>
13130 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013131
13132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13134 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013135
13136
13137 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013138 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013139 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013140 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013141 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013142 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013143 <span class="entry_type_container">x</span>
13144
13145 <span class="entry_type_array">
13146 n
13147 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013148 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149
13150
13151 </td> <!-- entry_type -->
13152
13153 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013154 <p>List of unique IDs for detected
13155faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013156 </td>
13157
13158 <td class="entry_units">
13159 </td>
13160
13161 <td class="entry_range">
13162 </td>
13163
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013164 <td class="entry_tags">
13165 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013166 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013167 </ul>
13168 </td>
13169
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013170 </tr>
13171 <tr class="entries_header">
13172 <th class="th_details" colspan="5">Details</th>
13173 </tr>
13174 <tr class="entry_cont">
13175 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013176 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013177 </td>
13178 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013179
13180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013183
13184
13185 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013186 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013187 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013188 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013189 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013190 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013191 <span class="entry_type_container">x</span>
13192
13193 <span class="entry_type_array">
13194 n x 6
13195 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013196 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013197 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013198
13199
13200 </td> <!-- entry_type -->
13201
13202 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013203 <p>List of landmarks for detected
13204faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013205 </td>
13206
13207 <td class="entry_units">
13208 </td>
13209
13210 <td class="entry_range">
13211 </td>
13212
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013213 <td class="entry_tags">
13214 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013215 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013216 </ul>
13217 </td>
13218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013219 </tr>
13220 <tr class="entries_header">
13221 <th class="th_details" colspan="5">Details</th>
13222 </tr>
13223 <tr class="entry_cont">
13224 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013225 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013226 </td>
13227 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013228
13229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013232
13233
13234 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013235 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013236 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013237 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013238 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013239 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013240 <span class="entry_type_container">x</span>
13241
13242 <span class="entry_type_array">
13243 n x 4
13244 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013245 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013246 <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 -080013247
13248
13249 </td> <!-- entry_type -->
13250
13251 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013252 <p>List of the bounding rectangles for detected
13253faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013254 </td>
13255
13256 <td class="entry_units">
13257 </td>
13258
13259 <td class="entry_range">
13260 </td>
13261
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013262 <td class="entry_tags">
13263 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013264 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013265 </ul>
13266 </td>
13267
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013268 </tr>
13269 <tr class="entries_header">
13270 <th class="th_details" colspan="5">Details</th>
13271 </tr>
13272 <tr class="entry_cont">
13273 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013274 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013275 </td>
13276 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013277
13278
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013279 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13280 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013281
13282
13283 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013284 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013285 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013286 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013287 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013288 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013289 <span class="entry_type_container">x</span>
13290
13291 <span class="entry_type_array">
13292 n
13293 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013294 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013295
13296
13297 </td> <!-- entry_type -->
13298
13299 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013300 <p>List of the face confidence scores for
13301detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013302 </td>
13303
13304 <td class="entry_units">
13305 </td>
13306
13307 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013308 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013309 </td>
13310
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013311 <td class="entry_tags">
13312 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013313 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013314 </ul>
13315 </td>
13316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013317 </tr>
13318 <tr class="entries_header">
13319 <th class="th_details" colspan="5">Details</th>
13320 </tr>
13321 <tr class="entry_cont">
13322 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013323 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13324meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013325 </td>
13326 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013327
13328
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013329 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13330 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013331
13332
13333 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013334 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013335 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013336 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013337 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013338 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013339 <span class="entry_type_container">x</span>
13340
13341 <span class="entry_type_array">
13342 n x 3
13343 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013344 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013345 <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 -080013346
13347
13348 </td> <!-- entry_type -->
13349
13350 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013351 <p>A 3-channel histogram based on the raw
13352sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013353 </td>
13354
13355 <td class="entry_units">
13356 </td>
13357
13358 <td class="entry_range">
13359 </td>
13360
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013361 <td class="entry_tags">
13362 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013363 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013364 </ul>
13365 </td>
13366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013367 </tr>
13368 <tr class="entries_header">
13369 <th class="th_details" colspan="5">Details</th>
13370 </tr>
13371 <tr class="entry_cont">
13372 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013373 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013374(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 -080013375(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13376supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013377 </td>
13378 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013379
13380
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013381 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13382 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013383
13384
13385 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013386 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013387 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013388 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013389 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013390 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013391
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013392 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013393
13394 <ul class="entry_type_enum">
13395 <li>
13396 <span class="entry_type_enum_name">OFF</span>
13397 </li>
13398 <li>
13399 <span class="entry_type_enum_name">ON</span>
13400 </li>
13401 </ul>
13402
13403 </td> <!-- entry_type -->
13404
13405 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013406 <p>Operating mode for histogram
13407generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013408 </td>
13409
13410 <td class="entry_units">
13411 </td>
13412
13413 <td class="entry_range">
13414 </td>
13415
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013416 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013417 <ul class="entry_tags">
13418 <li><a href="#tag_V1">V1</a></li>
13419 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013420 </td>
13421
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013422 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013423
13424
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013425 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13426 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013427
13428
13429 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013430 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013431 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013432 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013433 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013434 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013435 <span class="entry_type_container">x</span>
13436
13437 <span class="entry_type_array">
13438 n x m x 3
13439 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013440 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013441 <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 -080013442
13443
13444 </td> <!-- entry_type -->
13445
13446 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013447 <p>A 3-channel sharpness map,<wbr/> based on the raw
13448sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013449 </td>
13450
13451 <td class="entry_units">
13452 </td>
13453
13454 <td class="entry_range">
13455 </td>
13456
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013457 <td class="entry_tags">
13458 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013459 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013460 </ul>
13461 </td>
13462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013463 </tr>
13464 <tr class="entries_header">
13465 <th class="th_details" colspan="5">Details</th>
13466 </tr>
13467 <tr class="entry_cont">
13468 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013469 <p>If only a monochrome sharpness map is supported,<wbr/>
13470all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013471 </td>
13472 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013473
13474
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13476 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013477
13478
13479 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013480 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013481 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013482 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013483 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013484 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013485
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013486 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013487
13488 <ul class="entry_type_enum">
13489 <li>
13490 <span class="entry_type_enum_name">OFF</span>
13491 </li>
13492 <li>
13493 <span class="entry_type_enum_name">ON</span>
13494 </li>
13495 </ul>
13496
13497 </td> <!-- entry_type -->
13498
13499 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013500 <p>Operating mode for sharpness map
13501generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013502 </td>
13503
13504 <td class="entry_units">
13505 </td>
13506
13507 <td class="entry_range">
13508 </td>
13509
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013510 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013511 <ul class="entry_tags">
13512 <li><a href="#tag_V1">V1</a></li>
13513 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013514 </td>
13515
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013516 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013517
13518
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013519 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13520 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013521
Zhijun He69fc0ea2013-07-17 09:42:58 -070013522
13523 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013524 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013525 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013526 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013527 <td class="entry_type">
13528 <span class="entry_type_name">float</span>
13529 <span class="entry_type_container">x</span>
13530
13531 <span class="entry_type_array">
13532 4 x n x m
13533 </span>
13534 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013535 <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 -070013536
13537
13538 </td> <!-- entry_type -->
13539
13540 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013541 <p>The shading map is a low-resolution floating-point map
13542that lists the coefficients used to correct for vignetting,<wbr/> for each
13543Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013544 </td>
13545
13546 <td class="entry_units">
13547 </td>
13548
13549 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013550 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013551 </td>
13552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013553 <td class="entry_tags">
13554 </td>
13555
13556 </tr>
13557 <tr class="entries_header">
13558 <th class="th_details" colspan="5">Details</th>
13559 </tr>
13560 <tr class="entry_cont">
13561 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013562 <p>The least shaded section of the image should have a gain factor
13563of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013564<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 -080013565must take into account the colorCorrection settings.<wbr/></p>
13566<p>The shading map is for the entire active pixel array,<wbr/> and is not
13567affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013568entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013569pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13570map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13571(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13572pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13573The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13574<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13575channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13576The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013577is 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 -080013578<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13579and must be smaller than 64x64.<wbr/></p>
13580<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013581<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13582<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013583[ 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/>
13584 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/>
13585 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/>
13586 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/>
13587 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/>
13588 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 -080013589</code></pre>
13590<p>The low-resolution scaling map images for each channel are
13591(displayed using nearest-neighbor interpolation):</p>
13592<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13593<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13594<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13595<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013596<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013597image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013598<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 -070013599 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013600 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013601
13602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013603 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13604 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013605
13606
13607 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013608 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013609 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013610 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013611 <td class="entry_type">
13612 <span class="entry_type_name">float</span>
13613 <span class="entry_type_container">x</span>
13614
13615 <span class="entry_type_array">
13616 4
13617 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013618 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013619 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013620
13621
13622 </td> <!-- entry_type -->
13623
13624 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013625 <p>The best-fit color channel gains calculated
13626by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013627 </td>
13628
13629 <td class="entry_units">
13630 </td>
13631
13632 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013633 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013634 </td>
13635
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013636 <td class="entry_tags">
13637 </td>
13638
13639 </tr>
13640 <tr class="entries_header">
13641 <th class="th_details" colspan="5">Details</th>
13642 </tr>
13643 <tr class="entry_cont">
13644 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013645 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013646since statistics processing on data from a new frame
13647typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013648applied to that frame.<wbr/></p>
13649<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013650see <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 -080013651<p>This value should always be calculated by the AWB block,<wbr/>
13652regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013653 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013654 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013655
13656
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013657 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13658 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013659
13660
13661 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013662 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013663 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013664 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013665 <td class="entry_type">
13666 <span class="entry_type_name">rational</span>
13667 <span class="entry_type_container">x</span>
13668
13669 <span class="entry_type_array">
13670 3 x 3
13671 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013672 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013673 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013674
13675
13676 </td> <!-- entry_type -->
13677
13678 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013679 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013680calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013681output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013682 </td>
13683
13684 <td class="entry_units">
13685 </td>
13686
13687 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013688 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013689 </td>
13690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013691 <td class="entry_tags">
13692 </td>
13693
13694 </tr>
13695 <tr class="entries_header">
13696 <th class="th_details" colspan="5">Details</th>
13697 </tr>
13698 <tr class="entry_cont">
13699 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013700 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013701statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013702for the next frame.<wbr/> These are the values the HAL believes
13703are the best fit for the current output frame.<wbr/> This may
13704be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013705statistics processing on data from a new frame typically
13706completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013707that frame.<wbr/></p>
13708<p>These estimates must be provided for all frames,<wbr/> even if
13709capture settings and color transforms are set by the application.<wbr/></p>
13710<p>This value should always be calculated by the AWB block,<wbr/>
13711regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013712 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013713 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013714
13715
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013716 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13717 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013718
13719
13720 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013721 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013722 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013723 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013724 <td class="entry_type">
13725 <span class="entry_type_name entry_type_name_enum">byte</span>
13726
13727 <span class="entry_type_visibility"> [public]</span>
13728
13729 <ul class="entry_type_enum">
13730 <li>
13731 <span class="entry_type_enum_name">NONE</span>
13732 </li>
13733 <li>
13734 <span class="entry_type_enum_name">50HZ</span>
13735 </li>
13736 <li>
13737 <span class="entry_type_enum_name">60HZ</span>
13738 </li>
13739 </ul>
13740
13741 </td> <!-- entry_type -->
13742
13743 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013744 <p>The HAL estimated scene illumination lighting
13745frequency</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013746 </td>
13747
13748 <td class="entry_units">
13749 </td>
13750
13751 <td class="entry_range">
13752 </td>
13753
Zhijun He69fc0ea2013-07-17 09:42:58 -070013754 <td class="entry_tags">
13755 </td>
13756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013757 </tr>
13758 <tr class="entries_header">
13759 <th class="th_details" colspan="5">Details</th>
13760 </tr>
13761 <tr class="entry_cont">
13762 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013763 <p>Report NONE if there doesn't appear to be flickering
13764illumination</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013765 </td>
13766 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013767
13768
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013769 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13770 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013771
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013772
13773
13774 <!-- end of kind -->
13775 </tbody>
13776
13777 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013778 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013779
13780
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013781 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013782
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013783 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013784 <tr>
13785 <th class="th_name">Property Name</th>
13786 <th class="th_type">Type</th>
13787 <th class="th_description">Description</th>
13788 <th class="th_units">Units</th>
13789 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013790 <th class="th_tags">Tags</th>
13791 </tr>
13792 </thead>
13793
13794 <tbody>
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013806 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013807 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013808 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013809 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013810 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013811 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013812
Zhijun He704d1282013-08-19 15:26:33 -070013813 <span class="entry_type_array">
13814 n x 2
13815 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013816 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013817 <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 -080013818
13819
13820 </td> <!-- entry_type -->
13821
13822 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013823 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
13824channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13825CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013826 </td>
13827
13828 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013829 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013830 </td>
13831
13832 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013833 <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 -080013834 </td>
13835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013836 <td class="entry_tags">
13837 </td>
13838
13839 </tr>
13840 <tr class="entries_header">
13841 <th class="th_details" colspan="5">Details</th>
13842 </tr>
13843 <tr class="entry_cont">
13844 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013845 <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 -080013846 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013847 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013848
13849
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013850 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13851 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013852
13853
13854 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013855 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013856 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013857 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013858 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080013859 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070013860 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013861
Zhijun He704d1282013-08-19 15:26:33 -070013862 <span class="entry_type_array">
13863 n x 2
13864 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013865 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013866 <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 -080013867
13868
13869 </td> <!-- entry_type -->
13870
13871 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013872 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
13873channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13874CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013875 </td>
13876
13877 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013878 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013879 </td>
13880
13881 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013882 <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 -080013883 </td>
13884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013885 <td class="entry_tags">
13886 </td>
13887
13888 </tr>
13889 <tr class="entries_header">
13890 <th class="th_details" colspan="5">Details</th>
13891 </tr>
13892 <tr class="entry_cont">
13893 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013894 <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 -080013895 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013897
13898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013901
13902
13903 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013904 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013905 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013906 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013908 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013909 <span class="entry_type_container">x</span>
13910
13911 <span class="entry_type_array">
13912 n x 2
13913 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013914 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013915 <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 -080013916
13917
13918 </td> <!-- entry_type -->
13919
13920 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013921 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
13922channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
13923CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013924 </td>
13925
13926 <td class="entry_units">
13927 </td>
13928
13929 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013930 <p>0-1 on both input and output coordinates,<wbr/> normalized
13931as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013932 </td>
13933
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013934 <td class="entry_tags">
13935 <ul class="entry_tags">
13936 <li><a href="#tag_DNG">DNG</a></li>
13937 </ul>
13938 </td>
13939
13940 </tr>
13941 <tr class="entries_header">
13942 <th class="th_details" colspan="5">Details</th>
13943 </tr>
13944 <tr class="entry_cont">
13945 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080013946 <p>Each channel's curve is defined by an array of control points:</p>
13947<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
13948 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
139492 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
13950<p>These are sorted in order of increasing <code>Pin</code>; it is always
13951guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
13952define a complete mapping.<wbr/> For input values between control points,<wbr/>
13953the camera device must linearly interpolate between the control
13954points.<wbr/></p>
13955<p>Each curve can have an independent number of points,<wbr/> and the number
13956of points can be less than max (that is,<wbr/> the request doesn't have to
13957always provide a curve with number of points equivalent to
13958<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
13959<p>A few examples,<wbr/> and their corresponding graphical mappings; these
13960only specify the red channel and the precision is limited to 4
13961digits,<wbr/> for conciseness.<wbr/></p>
13962<p>Linear mapping:</p>
13963<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 ]
13964</code></pre>
13965<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
13966<p>Invert mapping:</p>
13967<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 ]
13968</code></pre>
13969<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
13970<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
13971<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13972 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/>
13973 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/>
13974 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/>
13975 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 ]
13976</code></pre>
13977<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
13978<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
13979<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
13980 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
13981 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/>
13982 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/>
13983 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 ]
13984</code></pre>
13985<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013986 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013987 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013988
Igor Murashkin94e06c42014-01-13 16:51:17 -080013989 <tr class="entries_header">
13990 <th class="th_details" colspan="5">HAL Implementation Details</th>
13991 </tr>
13992 <tr class="entry_cont">
13993 <td class="entry_details" colspan="5">
13994 <p>For good quality of mapping,<wbr/> at least 128 control points are
13995preferred.<wbr/></p>
13996<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
13997control points used as are available.<wbr/></p>
13998 </td>
13999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014001 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14002 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014003
14004
14005 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014006 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014007 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014008 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014009 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014010 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014011
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014012 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014013
14014 <ul class="entry_type_enum">
14015 <li>
14016 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014017 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014018android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14019<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14020for applying the tonemapping curve specified by
14021<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
14022<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14023<p>Must not slow down frame rate relative to raw
14024sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014025 </li>
14026 <li>
14027 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014028 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14029<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014030 </li>
14031 <li>
14032 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014033 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14034<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014035 </li>
14036 </ul>
14037
14038 </td> <!-- entry_type -->
14039
14040 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014041 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014042 </td>
14043
14044 <td class="entry_units">
14045 </td>
14046
14047 <td class="entry_range">
14048 </td>
14049
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014050 <td class="entry_tags">
14051 </td>
14052
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014053 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014054 <tr class="entries_header">
14055 <th class="th_details" colspan="5">Details</th>
14056 </tr>
14057 <tr class="entry_cont">
14058 <td class="entry_details" colspan="5">
14059 <p>When switching to an application-defined contrast curve by setting
14060<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14061per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14062mapping from input high-bit-depth pixel value to the output
14063low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14064and output may change depending on the camera pipeline,<wbr/> the values
14065are specified by normalized floating-point numbers.<wbr/></p>
14066<p>More-complex color mapping operations such as 3D color look-up
14067tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14068transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14069CONTRAST_<wbr/>CURVE.<wbr/></p>
14070<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14071emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14072<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/>
14073These values are always available,<wbr/> and as close as possible to the
14074actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14075<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14076provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14077roughly the same.<wbr/></p>
14078 </td>
14079 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014080
14081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014082 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14083 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014084
14085
14086
14087 <!-- end of kind -->
14088 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014089 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014090
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014091 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014092 <tr>
14093 <th class="th_name">Property Name</th>
14094 <th class="th_type">Type</th>
14095 <th class="th_description">Description</th>
14096 <th class="th_units">Units</th>
14097 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014098 <th class="th_tags">Tags</th>
14099 </tr>
14100 </thead>
14101
14102 <tbody>
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014114 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014115 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014116 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014117 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014118 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014119
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014120 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014121
14122
14123 </td> <!-- entry_type -->
14124
14125 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014126 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014127tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14128<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 -080014129 </td>
14130
14131 <td class="entry_units">
14132 </td>
14133
14134 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014135 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014136 </td>
14137
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014138 <td class="entry_tags">
14139 </td>
14140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014141 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014142 <tr class="entries_header">
14143 <th class="th_details" colspan="5">Details</th>
14144 </tr>
14145 <tr class="entry_cont">
14146 <td class="entry_details" colspan="5">
14147 <p>If the actual number of points provided by the application (in
14148android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14149resample the curve to its internal representation,<wbr/> using linear
14150interpolation.<wbr/></p>
14151<p>The output curves in the result metadata may have a different number
14152of points than the input curves,<wbr/> and will represent the actual
14153hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14154 </td>
14155 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014156
Igor Murashkin94e06c42014-01-13 16:51:17 -080014157 <tr class="entries_header">
14158 <th class="th_details" colspan="5">HAL Implementation Details</th>
14159 </tr>
14160 <tr class="entry_cont">
14161 <td class="entry_details" colspan="5">
14162 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14163 </td>
14164 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014166 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14167 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014168
14169
14170
14171 <!-- end of kind -->
14172 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014173 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014174
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014175 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014176 <tr>
14177 <th class="th_name">Property Name</th>
14178 <th class="th_type">Type</th>
14179 <th class="th_description">Description</th>
14180 <th class="th_units">Units</th>
14181 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014182 <th class="th_tags">Tags</th>
14183 </tr>
14184 </thead>
14185
14186 <tbody>
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014198 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014199 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014200 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014201 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014202 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014203 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014204
Zhijun He704d1282013-08-19 15:26:33 -070014205 <span class="entry_type_array">
14206 n x 2
14207 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014208 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014209 <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 -080014210
14211
14212 </td> <!-- entry_type -->
14213
14214 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014215 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14216channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14217CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014218 </td>
14219
14220 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014221 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014222 </td>
14223
14224 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014225 <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 -080014226 </td>
14227
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014228 <td class="entry_tags">
14229 </td>
14230
14231 </tr>
14232 <tr class="entries_header">
14233 <th class="th_details" colspan="5">Details</th>
14234 </tr>
14235 <tr class="entry_cont">
14236 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014237 <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 -080014238 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014239 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014240
14241
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014242 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14243 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014244
14245
14246 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014247 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014248 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014249 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014250 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014251 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014252 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014253
Zhijun He704d1282013-08-19 15:26:33 -070014254 <span class="entry_type_array">
14255 n x 2
14256 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014257 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014258 <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 -080014259
14260
14261 </td> <!-- entry_type -->
14262
14263 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014264 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14265channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14266CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014267 </td>
14268
14269 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014270 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014271 </td>
14272
14273 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014274 <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 -080014275 </td>
14276
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014277 <td class="entry_tags">
14278 </td>
14279
14280 </tr>
14281 <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">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014286 <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 -080014287 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014288 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014289
14290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014291 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14292 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014293
14294
14295 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014296 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014297 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014298 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014299 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014300 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014301 <span class="entry_type_container">x</span>
14302
14303 <span class="entry_type_array">
14304 n x 2
14305 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014306 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014307 <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 -080014308
14309
14310 </td> <!-- entry_type -->
14311
14312 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014313 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14314channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14315CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014316 </td>
14317
14318 <td class="entry_units">
14319 </td>
14320
14321 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014322 <p>0-1 on both input and output coordinates,<wbr/> normalized
14323as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014324 </td>
14325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014326 <td class="entry_tags">
14327 <ul class="entry_tags">
14328 <li><a href="#tag_DNG">DNG</a></li>
14329 </ul>
14330 </td>
14331
14332 </tr>
14333 <tr class="entries_header">
14334 <th class="th_details" colspan="5">Details</th>
14335 </tr>
14336 <tr class="entry_cont">
14337 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014338 <p>Each channel's curve is defined by an array of control points:</p>
14339<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14340 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
143412 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14342<p>These are sorted in order of increasing <code>Pin</code>; it is always
14343guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14344define a complete mapping.<wbr/> For input values between control points,<wbr/>
14345the camera device must linearly interpolate between the control
14346points.<wbr/></p>
14347<p>Each curve can have an independent number of points,<wbr/> and the number
14348of points can be less than max (that is,<wbr/> the request doesn't have to
14349always provide a curve with number of points equivalent to
14350<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14351<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14352only specify the red channel and the precision is limited to 4
14353digits,<wbr/> for conciseness.<wbr/></p>
14354<p>Linear mapping:</p>
14355<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 ]
14356</code></pre>
14357<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14358<p>Invert mapping:</p>
14359<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 ]
14360</code></pre>
14361<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14362<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14363<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14364 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/>
14365 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/>
14366 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/>
14367 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 ]
14368</code></pre>
14369<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14370<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14371<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14372 0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
14373 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/>
14374 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/>
14375 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 ]
14376</code></pre>
14377<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014378 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014379 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014380
Igor Murashkin94e06c42014-01-13 16:51:17 -080014381 <tr class="entries_header">
14382 <th class="th_details" colspan="5">HAL Implementation Details</th>
14383 </tr>
14384 <tr class="entry_cont">
14385 <td class="entry_details" colspan="5">
14386 <p>For good quality of mapping,<wbr/> at least 128 control points are
14387preferred.<wbr/></p>
14388<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14389control points used as are available.<wbr/></p>
14390 </td>
14391 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014392
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014393 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14394 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014395
14396
14397 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014398 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014399 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014400 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014402 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014403
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014404 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014405
14406 <ul class="entry_type_enum">
14407 <li>
14408 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014409 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014410android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14411<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14412for applying the tonemapping curve specified by
14413<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
14414<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14415<p>Must not slow down frame rate relative to raw
14416sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014417 </li>
14418 <li>
14419 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014420 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14421<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014422 </li>
14423 <li>
14424 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014425 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14426<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014427 </li>
14428 </ul>
14429
14430 </td> <!-- entry_type -->
14431
14432 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014433 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014434 </td>
14435
14436 <td class="entry_units">
14437 </td>
14438
14439 <td class="entry_range">
14440 </td>
14441
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014442 <td class="entry_tags">
14443 </td>
14444
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014445 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014446 <tr class="entries_header">
14447 <th class="th_details" colspan="5">Details</th>
14448 </tr>
14449 <tr class="entry_cont">
14450 <td class="entry_details" colspan="5">
14451 <p>When switching to an application-defined contrast curve by setting
14452<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14453per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14454mapping from input high-bit-depth pixel value to the output
14455low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14456and output may change depending on the camera pipeline,<wbr/> the values
14457are specified by normalized floating-point numbers.<wbr/></p>
14458<p>More-complex color mapping operations such as 3D color look-up
14459tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14460transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14461CONTRAST_<wbr/>CURVE.<wbr/></p>
14462<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14463emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14464<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/>
14465These values are always available,<wbr/> and as close as possible to the
14466actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14467<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14468provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14469roughly the same.<wbr/></p>
14470 </td>
14471 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014472
14473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014474 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14475 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014476
14477
14478
14479 <!-- end of kind -->
14480 </tbody>
14481
14482 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014483 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014484
14485
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014486 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014487
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014488 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014489 <tr>
14490 <th class="th_name">Property Name</th>
14491 <th class="th_type">Type</th>
14492 <th class="th_description">Description</th>
14493 <th class="th_units">Units</th>
14494 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014495 <th class="th_tags">Tags</th>
14496 </tr>
14497 </thead>
14498
14499 <tbody>
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014511 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014512 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014513 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014514 <td class="entry_type">
14515 <span class="entry_type_name entry_type_name_enum">byte</span>
14516
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014517 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014518
14519 <ul class="entry_type_enum">
14520 <li>
14521 <span class="entry_type_enum_name">OFF</span>
14522 </li>
14523 <li>
14524 <span class="entry_type_enum_name">ON</span>
14525 </li>
14526 </ul>
14527
14528 </td> <!-- entry_type -->
14529
14530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014531 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014532that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014533Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014534disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014535any untrusted applications.<wbr/></p>
14536<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14537transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14538data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014539<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014540doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014541 </td>
14542
14543 <td class="entry_units">
14544 </td>
14545
14546 <td class="entry_range">
14547 </td>
14548
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014549 <td class="entry_tags">
14550 </td>
14551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014552 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014553
14554
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014555 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14556 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014557
14558
14559
14560 <!-- end of kind -->
14561 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014562 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014563
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014564 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014565 <tr>
14566 <th class="th_name">Property Name</th>
14567 <th class="th_type">Type</th>
14568 <th class="th_description">Description</th>
14569 <th class="th_units">Units</th>
14570 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014571 <th class="th_tags">Tags</th>
14572 </tr>
14573 </thead>
14574
14575 <tbody>
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014587 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014588 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014589 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014590 <td class="entry_type">
14591 <span class="entry_type_name entry_type_name_enum">byte</span>
14592
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014593 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014594
14595 <ul class="entry_type_enum">
14596 <li>
14597 <span class="entry_type_enum_name">OFF</span>
14598 </li>
14599 <li>
14600 <span class="entry_type_enum_name">ON</span>
14601 </li>
14602 </ul>
14603
14604 </td> <!-- entry_type -->
14605
14606 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014607 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014608that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014609Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014610disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014611any untrusted applications.<wbr/></p>
14612<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14613transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14614data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014615<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014616doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014617 </td>
14618
14619 <td class="entry_units">
14620 </td>
14621
14622 <td class="entry_range">
14623 </td>
14624
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014625 <td class="entry_tags">
14626 </td>
14627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014628 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014629
14630
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014631 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14632 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014633
14634
14635
14636 <!-- end of kind -->
14637 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014638 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014639
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014640 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014641 <tr>
14642 <th class="th_name">Property Name</th>
14643 <th class="th_type">Type</th>
14644 <th class="th_description">Description</th>
14645 <th class="th_units">Units</th>
14646 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014647 <th class="th_tags">Tags</th>
14648 </tr>
14649 </thead>
14650
14651 <tbody>
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014663 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014664 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014665 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014666 <td class="entry_type">
14667 <span class="entry_type_name entry_type_name_enum">byte</span>
14668 <span class="entry_type_container">x</span>
14669
14670 <span class="entry_type_array">
14671 n
14672 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014673 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014674
14675 <ul class="entry_type_enum">
14676 <li>
14677 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014678 <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 -070014679 </li>
14680 </ul>
14681
14682 </td> <!-- entry_type -->
14683
14684 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014685 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014686 </td>
14687
14688 <td class="entry_units">
14689 </td>
14690
14691 <td class="entry_range">
14692 </td>
14693
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014694 <td class="entry_tags">
14695 </td>
14696
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014697 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014698
14699
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014700 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14701 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014702
14703
14704
14705 <!-- end of kind -->
14706 </tbody>
14707
14708 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014709 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014710
14711
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014712 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014713
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014714 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014715 <tr>
14716 <th class="th_name">Property Name</th>
14717 <th class="th_type">Type</th>
14718 <th class="th_description">Description</th>
14719 <th class="th_units">Units</th>
14720 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014721 <th class="th_tags">Tags</th>
14722 </tr>
14723 </thead>
14724
14725 <tbody>
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014737 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014738 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014739 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014740 <td class="entry_type">
14741 <span class="entry_type_name entry_type_name_enum">byte</span>
14742
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014743 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014744
14745 <ul class="entry_type_enum">
14746 <li>
14747 <span class="entry_type_enum_name">LIMITED</span>
14748 </li>
14749 <li>
14750 <span class="entry_type_enum_name">FULL</span>
14751 </li>
14752 </ul>
14753
14754 </td> <!-- entry_type -->
14755
14756 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014757 <p>The camera 3 HAL device can implement one of two possible
14758operational modes; limited and full.<wbr/> Full support is
14759expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014760hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014761camera HAL device v1 implementation,<wbr/> and is expected from
14762older or inexpensive devices.<wbr/> Full is a strict superset of
14763limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14764<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014765 </td>
14766
14767 <td class="entry_units">
14768 </td>
14769
14770 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014771 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014772 </td>
14773
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014774 <td class="entry_tags">
14775 </td>
14776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014778
14779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14781 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014782
14783
14784
14785 <!-- end of kind -->
14786 </tbody>
14787
14788 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014789 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014790
14791
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014792 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014793
14794 <thead class="entries_header">
14795 <tr>
14796 <th class="th_name">Property Name</th>
14797 <th class="th_type">Type</th>
14798 <th class="th_description">Description</th>
14799 <th class="th_units">Units</th>
14800 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014801 <th class="th_tags">Tags</th>
14802 </tr>
14803 </thead>
14804
14805 <tbody>
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014817 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014818 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014819 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014820 <td class="entry_type">
14821 <span class="entry_type_name entry_type_name_enum">byte</span>
14822
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014823 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014824
14825 <ul class="entry_type_enum">
14826 <li>
14827 <span class="entry_type_enum_name">OFF</span>
14828 </li>
14829 <li>
14830 <span class="entry_type_enum_name">ON</span>
14831 </li>
14832 </ul>
14833
14834 </td> <!-- entry_type -->
14835
14836 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014837 <p>Whether black-level compensation is locked
14838to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014839 </td>
14840
14841 <td class="entry_units">
14842 </td>
14843
14844 <td class="entry_range">
14845 </td>
14846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014847 <td class="entry_tags">
14848 <ul class="entry_tags">
14849 <li><a href="#tag_HAL2">HAL2</a></li>
14850 </ul>
14851 </td>
14852
14853 </tr>
14854 <tr class="entries_header">
14855 <th class="th_details" colspan="5">Details</th>
14856 </tr>
14857 <tr class="entry_cont">
14858 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014859 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014860compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080014861OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014862<p>Since changes to certain capture parameters (such as
14863exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080014864compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014865the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080014866metadata.<wbr/></p>
14867<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014868<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014869<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14870<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14871<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14872<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14873<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14874<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014875</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014876<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080014877device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014878result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014879<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014880<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
14881<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14882<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
14883<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
14884<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
14885<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014886</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080014887<p>This indicates to the application that on frame 4,<wbr/> black
14888levels were reset due to exposure value changes,<wbr/> and pixel
14889values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014890<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080014891possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014892other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080014893or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014894 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014896
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014897 <tr class="entries_header">
14898 <th class="th_details" colspan="5">HAL Implementation Details</th>
14899 </tr>
14900 <tr class="entry_cont">
14901 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014902 <p>If for some reason black level locking is no longer possible
14903(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14904black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014905override this request (and it must report 'OFF' when this
14906does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080014907possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014908 </td>
14909 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014911 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14912 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014913
14914
14915
14916 <!-- end of kind -->
14917 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014918 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014919
14920 <thead class="entries_header">
14921 <tr>
14922 <th class="th_name">Property Name</th>
14923 <th class="th_type">Type</th>
14924 <th class="th_description">Description</th>
14925 <th class="th_units">Units</th>
14926 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014927 <th class="th_tags">Tags</th>
14928 </tr>
14929 </thead>
14930
14931 <tbody>
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014943 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014944 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014945 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014946 <td class="entry_type">
14947 <span class="entry_type_name entry_type_name_enum">byte</span>
14948
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014949 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014950
14951 <ul class="entry_type_enum">
14952 <li>
14953 <span class="entry_type_enum_name">OFF</span>
14954 </li>
14955 <li>
14956 <span class="entry_type_enum_name">ON</span>
14957 </li>
14958 </ul>
14959
14960 </td> <!-- entry_type -->
14961
14962 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014963 <p>Whether black-level compensation is locked
14964to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014965 </td>
14966
14967 <td class="entry_units">
14968 </td>
14969
14970 <td class="entry_range">
14971 </td>
14972
Zhijun He69fc0ea2013-07-17 09:42:58 -070014973 <td class="entry_tags">
14974 <ul class="entry_tags">
14975 <li><a href="#tag_HAL2">HAL2</a></li>
14976 </ul>
14977 </td>
14978
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014979 </tr>
14980 <tr class="entries_header">
14981 <th class="th_details" colspan="5">Details</th>
14982 </tr>
14983 <tr class="entry_cont">
14984 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014985 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014986ON 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 -080014987a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080014988perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014989 </td>
14990 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014991
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080014992 <tr class="entries_header">
14993 <th class="th_details" colspan="5">HAL Implementation Details</th>
14994 </tr>
14995 <tr class="entry_cont">
14996 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014997 <p>If for some reason black level locking is no longer possible
14998(for example,<wbr/> the analog gain has changed,<wbr/> which forces
14999black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015000override this request (and it must report 'OFF' when this
15001does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015002possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015003 </td>
15004 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015005
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015006 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15007 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015008
15009
15010
15011 <!-- end of kind -->
15012 </tbody>
15013
15014 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015015 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15016
15017
15018 <tr><td colspan="6" class="kind">dynamic</td></tr>
15019
15020 <thead class="entries_header">
15021 <tr>
15022 <th class="th_name">Property Name</th>
15023 <th class="th_type">Type</th>
15024 <th class="th_description">Description</th>
15025 <th class="th_units">Units</th>
15026 <th class="th_range">Range</th>
15027 <th class="th_tags">Tags</th>
15028 </tr>
15029 </thead>
15030
15031 <tbody>
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042 <tr class="entry" id="dynamic_android.sync.frameNumber">
15043 <td class="entry_name" rowspan="5">
15044 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15045 </td>
15046 <td class="entry_type">
15047 <span class="entry_type_name entry_type_name_enum">int64</span>
15048
15049 <span class="entry_type_visibility"> [hidden]</span>
15050
15051 <ul class="entry_type_enum">
15052 <li>
15053 <span class="entry_type_enum_name">CONVERGING</span>
15054 <span class="entry_type_enum_value">-1</span>
15055 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15056Synchronization is in progress,<wbr/> and reading metadata from this
15057result may include a mix of data that have taken effect since the
15058last synchronization time.<wbr/></p>
15059<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15060this value will update to the actual frame number frame number
15061the result is guaranteed to be synchronized to (as long as the
15062request settings remain constant).<wbr/></p></span>
15063 </li>
15064 <li>
15065 <span class="entry_type_enum_name">UNKNOWN</span>
15066 <span class="entry_type_enum_value">-2</span>
15067 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15068result may have already converged,<wbr/> or it may be in progress.<wbr/>
15069Reading from this result may include some mix of settings from
15070past requests.<wbr/></p>
15071<p>After a settings change,<wbr/> the new settings will eventually all
15072take effect for the output buffers and results.<wbr/> However,<wbr/> this
15073value will not change when that happens.<wbr/> Altering settings
15074rapidly may provide outcomes using mixes of settings from recent
15075requests.<wbr/></p>
15076<p>This value is intended primarily for backwards compatibility with
15077the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15078 </li>
15079 </ul>
15080
15081 </td> <!-- entry_type -->
15082
15083 <td class="entry_description">
15084 <p>The frame number corresponding to the last request
15085with which the output result (metadata + buffers) has been fully
15086synchronized.<wbr/></p>
15087 </td>
15088
15089 <td class="entry_units">
15090 </td>
15091
15092 <td class="entry_range">
15093 <p>Either a non-negative value corresponding to a
15094<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15095 </td>
15096
15097 <td class="entry_tags">
15098 <ul class="entry_tags">
15099 <li><a href="#tag_LIMITED">LIMITED</a></li>
15100 </ul>
15101 </td>
15102
15103 </tr>
15104 <tr class="entries_header">
15105 <th class="th_details" colspan="5">Details</th>
15106 </tr>
15107 <tr class="entry_cont">
15108 <td class="entry_details" colspan="5">
15109 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15110delay of several frames before the controls get applied.<wbr/> A camera
15111device may either choose to account for this delay by implementing a
15112pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15113it may start streaming control changes that span over several frame
15114boundaries.<wbr/></p>
15115<p>In the latter case,<wbr/> whenever a request's settings change relative to
15116the previous submitted request,<wbr/> the full set of changes may take
15117multiple frame durations to fully take effect.<wbr/> Some settings may
15118take effect sooner (in less frame durations) than others.<wbr/></p>
15119<p>While a set of control changes are being propagated,<wbr/> this value
15120will be CONVERGING.<wbr/></p>
15121<p>Once it is fully known that a set of control changes have been
15122finished propagating,<wbr/> and the resulting updated control settings
15123have been read back by the camera device,<wbr/> this value will be set
15124to a non-negative frame number (corresponding to the request to
15125which the results have synchronized to).<wbr/></p>
15126<p>Older camera device implementations may not have a way to detect
15127when all camera controls have been applied,<wbr/> and will always set this
15128value to UNKNOWN.<wbr/></p>
15129<p>FULL capability devices will always have this value set to the
15130frame number of the request corresponding to this result.<wbr/></p>
15131<p><em>Further details</em>:</p>
15132<ul>
15133<li>Whenever a request differs from the last request,<wbr/> any future
15134results not yet returned may have this value set to CONVERGING (this
15135could include any in-progress captures not yet returned by the camera
15136device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15137<li>Submitting a series of multiple requests that differ from the
15138previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15139moves the new synchronization frame to the last non-repeating
15140request (using the smallest frame number from the contiguous list of
15141repeating requests).<wbr/></li>
15142<li>Submitting the same request repeatedly will not change this value
15143to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15144<li>When this value changes to non-negative,<wbr/> that means that all of the
15145metadata controls from the request have been applied,<wbr/> all of the
15146metadata controls from the camera device have been read to the
15147updated values (into the result),<wbr/> and all of the graphics buffers
15148corresponding to this result are also synchronized to the request.<wbr/></li>
15149</ul>
15150<p><em>Pipeline considerations</em>:</p>
15151<p>Submitting a request with updated controls relative to the previously
15152submitted requests may also invalidate the synchronization state
15153of all the results corresponding to currently in-flight requests.<wbr/></p>
15154<p>In other words,<wbr/> results for this current request and up to
15155<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15156<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15157 </td>
15158 </tr>
15159
15160 <tr class="entries_header">
15161 <th class="th_details" colspan="5">HAL Implementation Details</th>
15162 </tr>
15163 <tr class="entry_cont">
15164 <td class="entry_details" colspan="5">
15165 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15166is also UNKNOWN.<wbr/></p>
15167<p>FULL capability devices should simply set this value to the
15168<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15169 </td>
15170 </tr>
15171
15172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15173 <!-- end of entry -->
15174
15175
15176
15177 <!-- end of kind -->
15178 </tbody>
15179 <tr><td colspan="6" class="kind">static</td></tr>
15180
15181 <thead class="entries_header">
15182 <tr>
15183 <th class="th_name">Property Name</th>
15184 <th class="th_type">Type</th>
15185 <th class="th_description">Description</th>
15186 <th class="th_units">Units</th>
15187 <th class="th_range">Range</th>
15188 <th class="th_tags">Tags</th>
15189 </tr>
15190 </thead>
15191
15192 <tbody>
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203 <tr class="entry" id="static_android.sync.maxLatency">
15204 <td class="entry_name" rowspan="5">
15205 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15206 </td>
15207 <td class="entry_type">
15208 <span class="entry_type_name entry_type_name_enum">int32</span>
15209
15210 <span class="entry_type_visibility"> [public]</span>
15211
15212 <ul class="entry_type_enum">
15213 <li>
15214 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15215 <span class="entry_type_enum_value">0</span>
15216 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15217(and furthermore for all results,<wbr/>
15218<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>
15219<p>Changing controls over multiple requests one after another will
15220produce results that have those controls applied atomically
15221each frame.<wbr/></p>
15222<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15223 </li>
15224 <li>
15225 <span class="entry_type_enum_name">UNKNOWN</span>
15226 <span class="entry_type_enum_value">-1</span>
15227 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15228of the past requests applied to the camera settings.<wbr/></p>
15229<p>By submitting a series of identical requests,<wbr/> the camera device
15230will eventually have the camera settings applied,<wbr/> but it is
15231unknown when that exact point will be.<wbr/></p></span>
15232 </li>
15233 </ul>
15234
15235 </td> <!-- entry_type -->
15236
15237 <td class="entry_description">
15238 <p>The maximum number of frames that can occur after a request
15239(different than the previous) has been submitted,<wbr/> and before the
15240result's state becomes synchronized (by setting
15241<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15242 </td>
15243
15244 <td class="entry_units">
15245 number of processed requests
15246 </td>
15247
15248 <td class="entry_range">
15249 <p>&gt;= -1</p>
15250 </td>
15251
15252 <td class="entry_tags">
15253 <ul class="entry_tags">
15254 <li><a href="#tag_LIMITED">LIMITED</a></li>
15255 </ul>
15256 </td>
15257
15258 </tr>
15259 <tr class="entries_header">
15260 <th class="th_details" colspan="5">Details</th>
15261 </tr>
15262 <tr class="entry_cont">
15263 <td class="entry_details" colspan="5">
15264 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15265between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15266<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15267<p>In other words this acts as an upper boundary for how many frames
15268must occur before the camera device knows for a fact that the new
15269submitted camera settings have been applied in outgoing frames.<wbr/></p>
15270<p>For example if the distance was 2,<wbr/></p>
15271<pre><code>initial request = X (repeating)
15272request1 = X
15273request2 = Y
15274request3 = Y
15275request4 = Y
15276
15277where requestN has frameNumber N,<wbr/> and the first of the repeating
15278initial request's has frameNumber F (and F &lt; 1).<wbr/>
15279
15280initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15281result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15282result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15283result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15284result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15285
15286where resultN has frameNumber N.<wbr/>
15287</code></pre>
15288<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15289<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15290<code>4 - 2 = 2</code>.<wbr/></p>
15291 </td>
15292 </tr>
15293
15294 <tr class="entries_header">
15295 <th class="th_details" colspan="5">HAL Implementation Details</th>
15296 </tr>
15297 <tr class="entry_cont">
15298 <td class="entry_details" colspan="5">
15299 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15300<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15301<p>LIMITED devices are strongly encouraged to use a non-negative
15302value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15303to know when sensor settings have been applied.<wbr/></p>
15304 </td>
15305 </tr>
15306
15307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15308 <!-- end of entry -->
15309
15310
15311
15312 <!-- end of kind -->
15313 </tbody>
15314
15315 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015316<!-- </namespace> -->
15317 </table>
15318
15319 <div class="tags" id="tag_index">
15320 <h2>Tags</h2>
15321 <ul>
15322 <li id="tag_AWB">AWB -
15323 Needed for auto white balance
15324
15325 <ul class="tags_entries">
15326 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15327 </ul>
15328 </li> <!-- tag_AWB -->
15329 <li id="tag_BC">BC -
15330 Needed for backwards compatibility with old Java API
15331
15332 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015333 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015334 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15335 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15336 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15337 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15338 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015339 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015340 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15341 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015342 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015343 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15344 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15345 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15346 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15347 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15348 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15349 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15350 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015351 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015352 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15353 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15354 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15355 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15356 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15357 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15358 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15359 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15360 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15361 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15362 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15363 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15364 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15365 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15366 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15367 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15368 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15369 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15370 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15371 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15372 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15373 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15374 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15375 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15376 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15377 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15378 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15379 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015380 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015381 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15382 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15383 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015384 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015385 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015386 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15387 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15388 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15389 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15390 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15391 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15392 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15393 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15394 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15395 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15396 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15397 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15398 </ul>
15399 </li> <!-- tag_BC -->
15400 <li id="tag_V1">V1 -
15401 New features for first camera 2 release (API1)
15402
15403 <ul class="tags_entries">
15404 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15405 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15406 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15407 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15408 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15409 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15410 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15411 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15412 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15413 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15414 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15415 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15416 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15417 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15418 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15419 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15420 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15421 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15422 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15423 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15424 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15425 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15426 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15427 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015428 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015429 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15430 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15431 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15432 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15433 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15434 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15435 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15436 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15437 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15438 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15439 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15440 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15441 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15442 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15443 </ul>
15444 </li> <!-- tag_V1 -->
15445 <li id="tag_ADV">ADV - None
15446 <ul class="tags_entries">
15447 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15448 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15449 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15450 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15451 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15452 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15453 </ul>
15454 </li> <!-- tag_ADV -->
15455 <li id="tag_DNG">DNG -
15456 Needed for DNG file support
15457
15458 <ul class="tags_entries">
15459 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015460 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15461 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15462 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15463 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15464 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15465 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15466 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15467 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15468 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15469 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15470 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15471 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15472 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15473 </ul>
15474 </li> <!-- tag_DNG -->
15475 <li id="tag_EXIF">EXIF - None
15476 <ul class="tags_entries">
15477 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15478 </ul>
15479 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015480 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015481 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015482
15483 <ul class="tags_entries">
15484 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15485 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15486 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015487 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015488 </ul>
15489 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015490 <li id="tag_FULL">FULL -
15491 Entry is required for full hardware level devices, and optional for other hardware levels
15492
15493 <ul class="tags_entries">
15494 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15495 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15496 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15497 </ul>
15498 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015499 <li id="tag_LIMITED">LIMITED -
15500 Entry assists with LIMITED device implementation. LIMITED devices
15501 must implement all entries with this tag. Optional for FULL devices.
15502
15503 <ul class="tags_entries">
15504 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15505 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15506 </ul>
15507 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015508 </ul>
15509 </div>
15510
15511 [ <a href="#">top</a> ]
15512
15513</body>
15514</html>