blob: 36a6967033168e67f2665213b91e048aface7240 [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 Talvala04778542016-03-24 14:38:29 -070020 <title>Android Camera HAL3.4 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 Murashkin6c936c12014-05-13 14:51:49 -070037 .toc_deprecated { text-decoration:line-through; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080038
39 /* table column sizes */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070040 table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
41 td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080042 .th_name { width: 20% }
43 .th_units { width: 10% }
44 .th_tags { width: 5% }
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080045 .th_details { width: 25% }
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080046 .th_type { width: 17% }
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070047 .th_description { width: 20% }
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080048 .th_range { width: 8% }
49 .th_hal_version { width: 5% }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080050 td { font-size: 0.9em; }
51
52 /* hide the first thead, we need it there only to enforce column sizes */
53 .thead_dummy { visibility: hidden; }
54
55 /* Entry flair */
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080056 .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
Igor Murashkin6c936c12014-05-13 14:51:49 -070057 .entry_name_deprecated { text-decoration:line-through; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080058
59 /* Entry type flair */
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070060 .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
61 .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
62 .entry_type_visibility { font-weight: bolder; padding-left:1em}
Igor Murashkin6c936c12014-05-13 14:51:49 -070063 .entry_type_synthetic { font-weight: bolder; color: #996600; }
Igor Murashkinca256272014-10-02 15:27:09 -070064 .entry_type_hwlevel { font-weight: bolder; color: #000066; }
Igor Murashkin6c936c12014-05-13 14:51:49 -070065 .entry_type_deprecated { font-weight: bolder; color: #4D4D4D; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080066 .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
67 .entry_type_enum_notes:before { content:" - " }
Igor Murashkina10351a2014-01-15 17:05:22 -080068 .entry_type_enum_notes>p:first-child { display:inline; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080069 .entry_type_enum_value:before { content:" = " }
70 .entry_type_enum_value { font-family: monospace; }
71 .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
72 .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
Igor Murashkin6c936c12014-05-13 14:51:49 -070073 .entry_range_deprecated { font-weight: bolder; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080074
75 /* Entry tags flair */
76 .entry_tags ul { list-style-type: none; }
77
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080078 /* Entry details (full docs) flair */
79 .entry_details_header { font-weight: bold; background-color: #dddddd;
80 text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
81
82 /* Entry spacer flair */
83 .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
Igor Murashkin08b8aad2012-11-29 15:23:03 -080084
85 /* TODO: generate abbr element for each tag link? */
86 /* TODO for each x.y.z try to link it to the entry */
87
88 </style>
89
90 <style>
91
92 {
93 /* broken...
94 supposedly there is a bug in chrome that it lays out tables before
95 it knows its being printed, so the page-break-* styles are ignored
96 */
97 tr { page-break-after: always; page-break-inside: avoid; }
98 }
99
100 </style>
101</head>
102
103
104
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800105<body>
Eino-Ville Talvala42165c22014-03-25 15:20:16 -0700106 <h1>Android Camera HAL3.2 Properties</h1>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800107
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700108
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800109 <h2>Table of Contents</h2>
110 <ul class="toc">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700111 <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
112 <li>
113 <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
114 <ul class="toc_section">
115 <li>
116 <span class="toc_kind_header">controls</span>
117 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700118 <li
119 ><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
120 <li
121 ><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
122 <li
123 ><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Zhijun He450e01c2014-07-01 18:27:42 -0700124 <li
Zhijun He33776412014-08-18 10:55:33 -0700125 ><a href="#controls_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700126 </ul>
127 </li>
128 <li>
129 <span class="toc_kind_header">dynamic</span>
130 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700131 <li
132 ><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
133 <li
134 ><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
135 <li
136 ><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
Zhijun He450e01c2014-07-01 18:27:42 -0700137 <li
Zhijun He33776412014-08-18 10:55:33 -0700138 ><a href="#dynamic_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
Zhijun He450e01c2014-07-01 18:27:42 -0700139 </ul>
140 </li>
141 <li>
142 <span class="toc_kind_header">static</span>
143 <ul class="toc_section">
144 <li
Zhijun He33776412014-08-18 10:55:33 -0700145 ><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700146 </ul>
147 </li>
148 </ul> <!-- toc_section -->
149 </li>
150 <li>
151 <span class="toc_section_header"><a href="#section_control">control</a></span>
152 <ul class="toc_section">
153 <li>
154 <span class="toc_kind_header">controls</span>
155 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700156 <li
157 ><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
158 <li
159 ><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
160 <li
161 ><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
162 <li
163 ><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
164 <li
165 ><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
166 <li
167 ><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
168 <li
169 ><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
170 <li
171 ><a href="#controls_android.control.afMode">android.control.afMode</a></li>
172 <li
173 ><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
174 <li
175 ><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
176 <li
177 ><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
178 <li
179 ><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
180 <li
181 ><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
182 <li
183 ><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
184 <li
185 ><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
186 <li
187 ><a href="#controls_android.control.mode">android.control.mode</a></li>
188 <li
189 ><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
190 <li
191 ><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -0800192 <li
193 ><a href="#controls_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -0800194 <li
195 ><a href="#controls_android.control.enableZsl">android.control.enableZsl</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700196 </ul>
197 </li>
198 <li>
199 <span class="toc_kind_header">static</span>
200 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700201 <li
202 ><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
203 <li
204 ><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
205 <li
206 ><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
207 <li
208 ><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
209 <li
210 ><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
211 <li
212 ><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
213 <li
214 ><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
215 <li
216 ><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
217 <li
218 ><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
219 <li
220 ><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
221 <li
222 ><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
223 <li
Igor Murashkin35a108f2014-05-27 10:51:25 -0700224 ><a href="#static_android.control.maxRegionsAe">android.control.maxRegionsAe</a></li>
225 <li
226 ><a href="#static_android.control.maxRegionsAwb">android.control.maxRegionsAwb</a></li>
227 <li
228 ><a href="#static_android.control.maxRegionsAf">android.control.maxRegionsAf</a></li>
229 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700230 ><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
Zhijun He17f2d2c2014-06-10 18:21:34 -0700231 <li
232 ><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a></li>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -0800233 <li
234 ><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a></li>
235 <li
236 ><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</a></li>
237 <li
238 ><a href="#static_android.control.availableModes">android.control.availableModes</a></li>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -0800239 <li
240 ><a href="#static_android.control.postRawSensitivityBoostRange">android.control.postRawSensitivityBoostRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700241 </ul>
242 </li>
243 <li>
244 <span class="toc_kind_header">dynamic</span>
245 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700246 <li
247 class="toc_deprecated"
248 ><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
249 <li
250 ><a href="#dynamic_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
251 <li
252 ><a href="#dynamic_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
253 <li
254 ><a href="#dynamic_android.control.aeLock">android.control.aeLock</a></li>
255 <li
256 ><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
257 <li
258 ><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
259 <li
260 ><a href="#dynamic_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
261 <li
262 ><a href="#dynamic_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
263 <li
264 ><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
265 <li
266 ><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
267 <li
268 ><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
269 <li
270 ><a href="#dynamic_android.control.afTrigger">android.control.afTrigger</a></li>
271 <li
272 ><a href="#dynamic_android.control.afState">android.control.afState</a></li>
273 <li
274 class="toc_deprecated"
275 ><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
276 <li
277 ><a href="#dynamic_android.control.awbLock">android.control.awbLock</a></li>
278 <li
279 ><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
280 <li
281 ><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
282 <li
283 ><a href="#dynamic_android.control.captureIntent">android.control.captureIntent</a></li>
284 <li
285 ><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
286 <li
287 ><a href="#dynamic_android.control.effectMode">android.control.effectMode</a></li>
288 <li
289 ><a href="#dynamic_android.control.mode">android.control.mode</a></li>
290 <li
291 ><a href="#dynamic_android.control.sceneMode">android.control.sceneMode</a></li>
292 <li
293 ><a href="#dynamic_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -0800294 <li
295 ><a href="#dynamic_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -0800296 <li
297 ><a href="#dynamic_android.control.enableZsl">android.control.enableZsl</a></li>
Chien-Yu Chenb8c68282017-11-27 16:12:38 -0800298 <li
299 ><a href="#dynamic_android.control.afSceneChange">android.control.afSceneChange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700300 </ul>
301 </li>
302 </ul> <!-- toc_section -->
303 </li>
304 <li>
305 <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
306 <ul class="toc_section">
307 <li>
308 <span class="toc_kind_header">controls</span>
309 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700310 <li
311 ><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700312 </ul>
313 </li>
314 </ul> <!-- toc_section -->
315 </li>
316 <li>
317 <span class="toc_section_header"><a href="#section_edge">edge</a></span>
318 <ul class="toc_section">
319 <li>
320 <span class="toc_kind_header">controls</span>
321 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700322 <li
323 ><a href="#controls_android.edge.mode">android.edge.mode</a></li>
324 <li
325 ><a href="#controls_android.edge.strength">android.edge.strength</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700326 </ul>
327 </li>
328 <li>
Ruben Brunkd14f7162014-03-04 15:01:25 -0800329 <span class="toc_kind_header">static</span>
330 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700331 <li
332 ><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -0800333 </ul>
334 </li>
335 <li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700336 <span class="toc_kind_header">dynamic</span>
337 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700338 <li
339 ><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700340 </ul>
341 </li>
342 </ul> <!-- toc_section -->
343 </li>
344 <li>
345 <span class="toc_section_header"><a href="#section_flash">flash</a></span>
346 <ul class="toc_section">
347 <li>
348 <span class="toc_kind_header">controls</span>
349 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700350 <li
351 ><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
352 <li
353 ><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
354 <li
355 ><a href="#controls_android.flash.mode">android.flash.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700356 </ul>
357 </li>
358 <li>
359 <span class="toc_kind_header">static</span>
360 <ul class="toc_section">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800361
Igor Murashkin6c936c12014-05-13 14:51:49 -0700362 <li
363 ><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
364 <li
365 ><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800366
Igor Murashkin6c936c12014-05-13 14:51:49 -0700367 <li
368 ><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
369 <li
370 ><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700371 </ul>
372 </li>
373 <li>
374 <span class="toc_kind_header">dynamic</span>
375 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700376 <li
377 ><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
378 <li
379 ><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
380 <li
381 ><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
382 <li
383 ><a href="#dynamic_android.flash.state">android.flash.state</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700384 </ul>
385 </li>
386 </ul> <!-- toc_section -->
387 </li>
388 <li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700389 <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
390 <ul class="toc_section">
391 <li>
392 <span class="toc_kind_header">controls</span>
393 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700394 <li
395 ><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700396 </ul>
397 </li>
398 <li>
Ruben Brunk49e4f912014-03-04 14:09:44 -0800399 <span class="toc_kind_header">static</span>
400 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700401 <li
402 ><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a></li>
Ruben Brunk49e4f912014-03-04 14:09:44 -0800403 </ul>
404 </li>
405 <li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700406 <span class="toc_kind_header">dynamic</span>
407 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700408 <li
409 ><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700410 </ul>
411 </li>
412 </ul> <!-- toc_section -->
413 </li>
414 <li>
415 <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
416 <ul class="toc_section">
417 <li>
418 <span class="toc_kind_header">controls</span>
419 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700420 <li
Ruben Brunk9c766ad2014-05-27 18:52:49 -0700421 ><a href="#controls_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li>
422 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700423 ><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
424 <li
425 ><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
426 <li
427 ><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
428 <li
429 ><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
430 <li
431 ><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
432 <li
433 ><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
434 <li
435 ><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700436 </ul>
437 </li>
438 <li>
439 <span class="toc_kind_header">static</span>
440 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700441 <li
442 ><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
443 <li
444 ><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700445 </ul>
446 </li>
447 <li>
448 <span class="toc_kind_header">dynamic</span>
449 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700450 <li
Ruben Brunk9c766ad2014-05-27 18:52:49 -0700451 ><a href="#dynamic_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li>
452 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700453 ><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
454 <li
455 ><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
456 <li
457 ><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
458 <li
459 ><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
460 <li
461 ><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
462 <li
463 ><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
464 <li
465 ><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
466 <li
467 ><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700468 </ul>
469 </li>
470 </ul> <!-- toc_section -->
471 </li>
472 <li>
473 <span class="toc_section_header"><a href="#section_lens">lens</a></span>
474 <ul class="toc_section">
475 <li>
476 <span class="toc_kind_header">controls</span>
477 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700478 <li
479 ><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
480 <li
481 ><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
482 <li
483 ><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
484 <li
485 ><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
486 <li
487 ><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700488 </ul>
489 </li>
490 <li>
491 <span class="toc_kind_header">static</span>
492 <ul class="toc_section">
493
Igor Murashkin6c936c12014-05-13 14:51:49 -0700494 <li
495 ><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
496 <li
497 ><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
498 <li
499 ><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
500 <li
501 ><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
502 <li
503 ><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
504 <li
505 ><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
506 <li
507 ><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
508 <li
509 ><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700510
Igor Murashkin6c936c12014-05-13 14:51:49 -0700511 <li
512 ><a href="#static_android.lens.facing">android.lens.facing</a></li>
513 <li
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -0800514 ><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a></li>
Igor Murashkin6c936c12014-05-13 14:51:49 -0700515 <li
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -0800516 ><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a></li>
517 <li
518 ><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
519 <li
Eino-Ville Talvala245e2792018-03-13 19:10:23 -0700520 class="toc_deprecated"
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -0800521 ><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -0800522 <li
523 ><a href="#static_android.lens.poseReference">android.lens.poseReference</a></li>
Eino-Ville Talvala245e2792018-03-13 19:10:23 -0700524 <li
525 ><a href="#static_android.lens.distortion">android.lens.distortion</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700526 </ul>
527 </li>
528 <li>
529 <span class="toc_kind_header">dynamic</span>
530 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700531 <li
532 ><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
533 <li
534 ><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
535 <li
536 ><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
537 <li
538 ><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
539 <li
540 ><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
541 <li
542 ><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
543 <li
544 ><a href="#dynamic_android.lens.state">android.lens.state</a></li>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -0800545 <li
546 ><a href="#dynamic_android.lens.poseRotation">android.lens.poseRotation</a></li>
547 <li
548 ><a href="#dynamic_android.lens.poseTranslation">android.lens.poseTranslation</a></li>
549 <li
550 ><a href="#dynamic_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
551 <li
Eino-Ville Talvala245e2792018-03-13 19:10:23 -0700552 class="toc_deprecated"
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -0800553 ><a href="#dynamic_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
Eino-Ville Talvala245e2792018-03-13 19:10:23 -0700554 <li
555 ><a href="#dynamic_android.lens.distortion">android.lens.distortion</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700556 </ul>
557 </li>
558 </ul> <!-- toc_section -->
559 </li>
560 <li>
561 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
562 <ul class="toc_section">
563 <li>
564 <span class="toc_kind_header">controls</span>
565 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700566 <li
567 ><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
568 <li
569 ><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700570 </ul>
571 </li>
572 <li>
Ruben Brunkd14f7162014-03-04 15:01:25 -0800573 <span class="toc_kind_header">static</span>
574 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700575 <li
576 ><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -0800577 </ul>
578 </li>
579 <li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700580 <span class="toc_kind_header">dynamic</span>
581 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700582 <li
583 ><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700584 </ul>
585 </li>
586 </ul> <!-- toc_section -->
587 </li>
588 <li>
589 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
590 <ul class="toc_section">
591 <li>
592 <span class="toc_kind_header">static</span>
593 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700594 <li
595 class="toc_deprecated"
596 ><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
597 <li
598 class="toc_deprecated"
599 ><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
600 <li
601 class="toc_deprecated"
602 ><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
603 <li
604 class="toc_deprecated"
605 ><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700606 </ul>
607 </li>
608 <li>
609 <span class="toc_kind_header">dynamic</span>
610 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700611 <li
612 class="toc_deprecated"
613 ><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700614 </ul>
615 </li>
616 </ul> <!-- toc_section -->
617 </li>
618 <li>
619 <span class="toc_section_header"><a href="#section_request">request</a></span>
620 <ul class="toc_section">
621 <li>
622 <span class="toc_kind_header">controls</span>
623 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700624 <li
625 class="toc_deprecated"
626 ><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
627 <li
628 ><a href="#controls_android.request.id">android.request.id</a></li>
629 <li
630 class="toc_deprecated"
631 ><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
632 <li
633 ><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
634 <li
635 class="toc_deprecated"
636 ><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
637 <li
638 class="toc_deprecated"
639 ><a href="#controls_android.request.type">android.request.type</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700640 </ul>
641 </li>
642 <li>
643 <span class="toc_kind_header">static</span>
644 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700645 <li
646 ><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
647 <li
Igor Murashkin35a108f2014-05-27 10:51:25 -0700648 ><a href="#static_android.request.maxNumOutputRaw">android.request.maxNumOutputRaw</a></li>
649 <li
650 ><a href="#static_android.request.maxNumOutputProc">android.request.maxNumOutputProc</a></li>
651 <li
652 ><a href="#static_android.request.maxNumOutputProcStalling">android.request.maxNumOutputProcStalling</a></li>
653 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700654 class="toc_deprecated"
655 ><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
656 <li
657 ><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
658 <li
659 ><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
660 <li
661 ><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
662 <li
663 ><a href="#static_android.request.availableCapabilities">android.request.availableCapabilities</a></li>
664 <li
665 ><a href="#static_android.request.availableRequestKeys">android.request.availableRequestKeys</a></li>
666 <li
667 ><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li>
668 <li
669 ><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li>
Emilian Peevb0134d02017-11-17 13:20:12 +0000670 <li
671 ><a href="#static_android.request.availableSessionKeys">android.request.availableSessionKeys</a></li>
Emilian Peevb52eadf2018-01-18 19:09:57 +0000672 <li
673 ><a href="#static_android.request.availablePhysicalCameraRequestKeys">android.request.availablePhysicalCameraRequestKeys</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700674 </ul>
675 </li>
676 <li>
677 <span class="toc_kind_header">dynamic</span>
678 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700679 <li
Igor Murashkin757ec242014-07-25 16:55:18 -0700680 class="toc_deprecated"
Igor Murashkin6c936c12014-05-13 14:51:49 -0700681 ><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
682 <li
683 ><a href="#dynamic_android.request.id">android.request.id</a></li>
684 <li
685 ><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
686 <li
687 class="toc_deprecated"
688 ><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
689 <li
690 ><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700691 </ul>
692 </li>
693 </ul> <!-- toc_section -->
694 </li>
695 <li>
696 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
697 <ul class="toc_section">
698 <li>
699 <span class="toc_kind_header">controls</span>
700 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700701 <li
702 ><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700703 </ul>
704 </li>
705 <li>
706 <span class="toc_kind_header">static</span>
707 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700708 <li
709 class="toc_deprecated"
710 ><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
711 <li
712 class="toc_deprecated"
713 ><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
714 <li
715 class="toc_deprecated"
716 ><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
717 <li
718 ><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
719 <li
720 class="toc_deprecated"
721 ><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
722 <li
723 class="toc_deprecated"
724 ><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
725 <li
726 class="toc_deprecated"
727 ><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
728 <li
729 class="toc_deprecated"
730 ><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
731 <li
732 ><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li>
733 <li
734 ><a href="#static_android.scaler.availableStreamConfigurations">android.scaler.availableStreamConfigurations</a></li>
735 <li
736 ><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a></li>
737 <li
738 ><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a></li>
739 <li
740 ><a href="#static_android.scaler.streamConfigurationMap">android.scaler.streamConfigurationMap</a></li>
Zhijun Hed0f25ca2014-05-21 15:29:07 -0700741 <li
742 ><a href="#static_android.scaler.croppingType">android.scaler.croppingType</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700743 </ul>
744 </li>
745 <li>
746 <span class="toc_kind_header">dynamic</span>
747 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700748 <li
749 ><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700750 </ul>
751 </li>
752 </ul> <!-- toc_section -->
753 </li>
754 <li>
755 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
756 <ul class="toc_section">
757 <li>
758 <span class="toc_kind_header">controls</span>
759 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700760 <li
761 ><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
762 <li
763 ><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
764 <li
765 ><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
766 <li
767 ><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
768 <li
769 ><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700770 </ul>
771 </li>
772 <li>
773 <span class="toc_kind_header">static</span>
774 <ul class="toc_section">
775
Igor Murashkin6c936c12014-05-13 14:51:49 -0700776 <li
777 ><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
778 <li
779 ><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
780 <li
781 ><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
782 <li
783 ><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
784 <li
785 ><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
786 <li
787 ><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
788 <li
789 ><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
790 <li
791 ><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
Zhijun He91449c82014-06-12 10:43:32 -0700792 <li
Eino-Ville Talvala122906c2014-07-28 12:49:25 -0700793 ><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a></li>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -0800794 <li
795 ><a href="#static_android.sensor.info.lensShadingApplied">android.sensor.info.lensShadingApplied</a></li>
Ruben Brunk93192942015-07-01 11:32:39 -0700796 <li
797 ><a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700798
Igor Murashkin6c936c12014-05-13 14:51:49 -0700799 <li
800 ><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
801 <li
802 ><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
803 <li
804 ><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
805 <li
806 ><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
807 <li
808 ><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
809 <li
810 ><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
811 <li
812 ><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
813 <li
814 ><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
815 <li
816 ><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
817 <li
818 ><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
819 <li
820 ><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
821 <li
822 ><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
823 <li
824 ><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li>
825 <li
826 ><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Zhijun Hed363a122015-11-12 17:27:27 -0800827 <li
828 ><a href="#static_android.sensor.opticalBlackRegions">android.sensor.opticalBlackRegions</a></li>
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -0800829 <li
830 ><a href="#static_android.sensor.opaqueRawSize">android.sensor.opaqueRawSize</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700831 </ul>
832 </li>
833 <li>
834 <span class="toc_kind_header">dynamic</span>
835 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700836 <li
837 ><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
838 <li
839 ><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
840 <li
841 ><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
842 <li
843 ><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
844 <li
845 ><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
846 <li
847 ><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
848 <li
Ruben Brunk6a424ff2014-07-23 15:13:16 -0700849 ><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a></li>
850 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700851 ><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li>
852 <li
853 ><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a></li>
854 <li
855 ><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a></li>
856 <li
857 ><a href="#dynamic_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
858 <li
859 ><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -0700860 <li
861 ><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a></li>
Zhijun Hed363a122015-11-12 17:27:27 -0800862 <li
863 ><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a></li>
864 <li
865 ><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700866 </ul>
867 </li>
868 </ul> <!-- toc_section -->
869 </li>
870 <li>
871 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
872 <ul class="toc_section">
873 <li>
874 <span class="toc_kind_header">controls</span>
875 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700876 <li
877 ><a href="#controls_android.shading.mode">android.shading.mode</a></li>
878 <li
879 ><a href="#controls_android.shading.strength">android.shading.strength</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700880 </ul>
881 </li>
882 <li>
883 <span class="toc_kind_header">dynamic</span>
884 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700885 <li
886 ><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700887 </ul>
888 </li>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -0800889 <li>
890 <span class="toc_kind_header">static</span>
891 <ul class="toc_section">
892 <li
893 ><a href="#static_android.shading.availableModes">android.shading.availableModes</a></li>
894 </ul>
895 </li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700896 </ul> <!-- toc_section -->
897 </li>
898 <li>
899 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
900 <ul class="toc_section">
901 <li>
902 <span class="toc_kind_header">controls</span>
903 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700904 <li
905 ><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
906 <li
907 ><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
908 <li
909 ><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
910 <li
911 ><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
912 <li
913 ><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -0800914 <li
915 ><a href="#controls_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700916 </ul>
917 </li>
918 <li>
919 <span class="toc_kind_header">static</span>
920 <ul class="toc_section">
921
Igor Murashkin6c936c12014-05-13 14:51:49 -0700922 <li
923 ><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
924 <li
925 ><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
926 <li
927 ><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
928 <li
929 ><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
930 <li
931 ><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
932 <li
933 ><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
934 <li
935 ><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -0800936 <li
937 ><a href="#static_android.statistics.info.availableLensShadingMapModes">android.statistics.info.availableLensShadingMapModes</a></li>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -0800938 <li
939 ><a href="#static_android.statistics.info.availableOisDataModes">android.statistics.info.availableOisDataModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700940
941 </ul>
942 </li>
943 <li>
944 <span class="toc_kind_header">dynamic</span>
945 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -0700946 <li
947 ><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
948 <li
949 ><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
950 <li
951 ><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
952 <li
953 ><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
954 <li
955 ><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
956 <li
Igor Murashkinefff0de2014-05-14 17:30:49 -0700957 ><a href="#dynamic_android.statistics.faces">android.statistics.faces</a></li>
958 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700959 ><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
960 <li
961 ><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
962 <li
963 ><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
964 <li
965 ><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
966 <li
Ruben Brunk9c766ad2014-05-27 18:52:49 -0700967 ><a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.statistics.lensShadingCorrectionMap</a></li>
968 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -0700969 ><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
970 <li
971 class="toc_deprecated"
972 ><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
973 <li
974 class="toc_deprecated"
975 ><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
976 <li
977 ><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
978 <li
979 ><a href="#dynamic_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
980 <li
981 ><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li>
982 <li
983 ><a href="#dynamic_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -0800984 <li
985 ><a href="#dynamic_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
986 <li
987 ><a href="#dynamic_android.statistics.oisTimestamps">android.statistics.oisTimestamps</a></li>
988 <li
989 ><a href="#dynamic_android.statistics.oisXShifts">android.statistics.oisXShifts</a></li>
990 <li
991 ><a href="#dynamic_android.statistics.oisYShifts">android.statistics.oisYShifts</a></li>
Chien-Yu Chena5cfee92018-02-15 12:34:30 -0800992 <li
993 ><a href="#dynamic_android.statistics.oisSamples">android.statistics.oisSamples</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700994 </ul>
995 </li>
996 </ul> <!-- toc_section -->
997 </li>
998 <li>
999 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
1000 <ul class="toc_section">
1001 <li>
1002 <span class="toc_kind_header">controls</span>
1003 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001004 <li
1005 ><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
1006 <li
1007 ><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
1008 <li
1009 ><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
1010 <li
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -07001011 ><a href="#controls_android.tonemap.curve">android.tonemap.curve</a></li>
1012 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -07001013 ><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -08001014 <li
1015 ><a href="#controls_android.tonemap.gamma">android.tonemap.gamma</a></li>
1016 <li
1017 ><a href="#controls_android.tonemap.presetCurve">android.tonemap.presetCurve</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001018 </ul>
1019 </li>
1020 <li>
1021 <span class="toc_kind_header">static</span>
1022 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001023 <li
1024 ><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
1025 <li
1026 ><a href="#static_android.tonemap.availableToneMapModes">android.tonemap.availableToneMapModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001027 </ul>
1028 </li>
1029 <li>
1030 <span class="toc_kind_header">dynamic</span>
1031 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001032 <li
1033 ><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
1034 <li
1035 ><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
1036 <li
1037 ><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
1038 <li
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -07001039 ><a href="#dynamic_android.tonemap.curve">android.tonemap.curve</a></li>
1040 <li
Igor Murashkin6c936c12014-05-13 14:51:49 -07001041 ><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -08001042 <li
1043 ><a href="#dynamic_android.tonemap.gamma">android.tonemap.gamma</a></li>
1044 <li
1045 ><a href="#dynamic_android.tonemap.presetCurve">android.tonemap.presetCurve</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001046 </ul>
1047 </li>
1048 </ul> <!-- toc_section -->
1049 </li>
1050 <li>
1051 <span class="toc_section_header"><a href="#section_led">led</a></span>
1052 <ul class="toc_section">
1053 <li>
1054 <span class="toc_kind_header">controls</span>
1055 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001056 <li
1057 ><a href="#controls_android.led.transmit">android.led.transmit</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001058 </ul>
1059 </li>
1060 <li>
1061 <span class="toc_kind_header">dynamic</span>
1062 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001063 <li
1064 ><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001065 </ul>
1066 </li>
1067 <li>
1068 <span class="toc_kind_header">static</span>
1069 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001070 <li
1071 ><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001072 </ul>
1073 </li>
1074 </ul> <!-- toc_section -->
1075 </li>
1076 <li>
1077 <span class="toc_section_header"><a href="#section_info">info</a></span>
1078 <ul class="toc_section">
1079 <li>
1080 <span class="toc_kind_header">static</span>
1081 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001082 <li
1083 ><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
Chien-Yu Chen218925a2018-01-03 12:04:48 -08001084 <li
1085 ><a href="#static_android.info.version">android.info.version</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001086 </ul>
1087 </li>
1088 </ul> <!-- toc_section -->
1089 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001090 <li>
1091 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
1092 <ul class="toc_section">
1093 <li>
1094 <span class="toc_kind_header">controls</span>
1095 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001096 <li
1097 ><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001098 </ul>
1099 </li>
1100 <li>
1101 <span class="toc_kind_header">dynamic</span>
1102 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001103 <li
1104 ><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001105 </ul>
1106 </li>
1107 </ul> <!-- toc_section -->
1108 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -08001109 <li>
1110 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
1111 <ul class="toc_section">
1112 <li>
1113 <span class="toc_kind_header">dynamic</span>
1114 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001115 <li
1116 ><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -08001117 </ul>
1118 </li>
1119 <li>
1120 <span class="toc_kind_header">static</span>
1121 <ul class="toc_section">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001122 <li
1123 ><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -08001124 </ul>
1125 </li>
1126 </ul> <!-- toc_section -->
1127 </li>
Zhijun He41d6f042015-01-15 18:17:24 -08001128 <li>
1129 <span class="toc_section_header"><a href="#section_reprocess">reprocess</a></span>
1130 <ul class="toc_section">
1131 <li>
1132 <span class="toc_kind_header">controls</span>
1133 <ul class="toc_section">
1134 <li
1135 ><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li>
1136 </ul>
1137 </li>
1138 <li>
1139 <span class="toc_kind_header">dynamic</span>
1140 <ul class="toc_section">
1141 <li
1142 ><a href="#dynamic_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li>
1143 </ul>
1144 </li>
Zhijun He51379152015-04-24 17:59:50 -07001145 <li>
1146 <span class="toc_kind_header">static</span>
1147 <ul class="toc_section">
1148 <li
1149 ><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a></li>
1150 </ul>
1151 </li>
Zhijun He41d6f042015-01-15 18:17:24 -08001152 </ul> <!-- toc_section -->
1153 </li>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -08001154 <li>
1155 <span class="toc_section_header"><a href="#section_depth">depth</a></span>
1156 <ul class="toc_section">
1157 <li>
1158 <span class="toc_kind_header">static</span>
1159 <ul class="toc_section">
1160 <li
1161 ><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a></li>
1162 <li
1163 ><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a></li>
1164 <li
1165 ><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a></li>
1166 <li
1167 ><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a></li>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -07001168 <li
1169 ><a href="#static_android.depth.depthIsExclusive">android.depth.depthIsExclusive</a></li>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -08001170 </ul>
1171 </li>
1172 </ul> <!-- toc_section -->
1173 </li>
Shuzhen Wang0144f582017-11-30 12:03:37 -08001174 <li>
1175 <span class="toc_section_header"><a href="#section_logicalMultiCamera">logicalMultiCamera</a></span>
1176 <ul class="toc_section">
1177 <li>
1178 <span class="toc_kind_header">static</span>
1179 <ul class="toc_section">
1180 <li
1181 ><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a></li>
1182 <li
1183 ><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a></li>
1184 </ul>
1185 </li>
1186 </ul> <!-- toc_section -->
1187 </li>
Eino-Ville Talvalad4c0fe32018-03-13 19:46:57 -07001188 <li>
1189 <span class="toc_section_header"><a href="#section_distortionCorrection">distortionCorrection</a></span>
1190 <ul class="toc_section">
1191 <li>
1192 <span class="toc_kind_header">controls</span>
1193 <ul class="toc_section">
1194 <li
1195 ><a href="#controls_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li>
1196 </ul>
1197 </li>
1198 <li>
1199 <span class="toc_kind_header">static</span>
1200 <ul class="toc_section">
1201 <li
1202 ><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a></li>
1203 </ul>
1204 </li>
1205 <li>
1206 <span class="toc_kind_header">dynamic</span>
1207 <ul class="toc_section">
1208 <li
1209 ><a href="#dynamic_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li>
1210 </ul>
1211 </li>
1212 </ul> <!-- toc_section -->
1213 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001214 </ul>
1215
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001216
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001217 <h1>Properties</h1>
1218 <table class="properties">
1219
1220 <thead class="thead_dummy">
1221 <tr>
1222 <th class="th_name">Property Name</th>
1223 <th class="th_type">Type</th>
1224 <th class="th_description">Description</th>
1225 <th class="th_units">Units</th>
1226 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001227 <th class="th_hal_version">HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001228 <th class="th_tags">Tags</th>
1229 </tr>
1230 </thead> <!-- so that the first occurrence of thead is not
1231 above the first occurrence of tr -->
1232<!-- <namespace name="android"> -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001233 <tr><td colspan="7" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001234
1235
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001236 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001237
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001238 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001239 <tr>
1240 <th class="th_name">Property Name</th>
1241 <th class="th_type">Type</th>
1242 <th class="th_description">Description</th>
1243 <th class="th_units">Units</th>
1244 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001245 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001246 <th class="th_tags">Tags</th>
1247 </tr>
1248 </thead>
1249
1250 <tbody>
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261 <tr class="entry" id="controls_android.colorCorrection.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001262 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001263 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001264 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001265 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001266 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001267 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001268
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001269 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001270
Igor Murashkin6c936c12014-05-13 14:51:49 -07001271
Igor Murashkinca256272014-10-02 15:27:09 -07001272 <span class="entry_type_hwlevel">[full] </span>
1273
Igor Murashkin6c936c12014-05-13 14:51:49 -07001274
1275
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001276 <ul class="entry_type_enum">
1277 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001278 <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001279 <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 -08001280and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
1281<p>All advanced white balance adjustments (not specified
1282by our white balance pipeline) must be disabled.<wbr/></p>
1283<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
1284TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
1285this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001286 </li>
1287 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001288 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07001289 <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
1290capture rate relative to sensor raw output.<wbr/></p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001291<p>Advanced white balance adjustments above and beyond
1292the specified white balance pipeline may be applied.<wbr/></p>
1293<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
1294the camera device uses the last frame's AWB values
1295(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001296 </li>
1297 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001298 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07001299 <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001300quality but the capture rate might be reduced (relative to sensor
1301raw output rate)</p>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001302<p>Advanced white balance adjustments above and beyond
1303the specified white balance pipeline may be applied.<wbr/></p>
1304<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
1305the camera device uses the last frame's AWB values
1306(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001307 </li>
1308 </ul>
1309
1310 </td> <!-- entry_type -->
1311
1312 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001313 <p>The mode control selects how the image data is converted from the
1314sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001315 </td>
1316
1317 <td class="entry_units">
1318 </td>
1319
1320 <td class="entry_range">
1321 </td>
1322
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001323 <td class="entry_hal_version">
1324 <p>3.<wbr/>2</p>
1325 </td>
1326
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001327 <td class="entry_tags">
1328 </td>
1329
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001330 </tr>
1331 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001332 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001333 </tr>
1334 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001335 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07001336 <p>When auto-white balance (AWB) is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
Igor Murashkin43817ad2014-01-10 15:58:35 -08001337control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
1338application controls how the color mapping is performed.<wbr/></p>
1339<p>We define the expected processing pipeline below.<wbr/> For consistency
1340across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1341<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
1342do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
1343<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
1344camera device (in the results) and be roughly correct.<wbr/></p>
1345<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
1346FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
1347as what was produced by the camera device in the earlier frame.<wbr/></p>
1348<p>The expected processing pipeline is as follows:</p>
1349<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
1350<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
1351gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
1352matrix (applied after demosaic).<wbr/></p>
1353<p>The 4-channel white-balance gains are defined as:</p>
1354<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
1355</code></pre>
1356<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
1357output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
1358These may be identical for a given camera device implementation; if
1359the camera device does not support a separate gain for even/<wbr/>odd green
1360channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1361<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1362<p>The matrices for color transforms are defined as a 9-entry vector:</p>
1363<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 ]
1364</code></pre>
1365<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
1366to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
1367<p>with colors as follows:</p>
1368<pre><code>r' = I0r + I1g + I2b
1369g' = I3r + I4g + I5b
1370b' = I6r + I7g + I8b
1371</code></pre>
1372<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
1373values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001374 </td>
1375 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001376
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001377 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001378 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001379 </tr>
1380 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001381 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001382 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available
1383on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
1384That is,<wbr/> if the highest quality implementation on the camera device does not slow down
1385capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p>
1386 </td>
1387 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001388
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001389 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001390 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001391
1392
1393 <tr class="entry" id="controls_android.colorCorrection.transform">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001394 <td class="entry_name
1395 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001396 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001397 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001398 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -07001399 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001400 <span class="entry_type_container">x</span>
1401
1402 <span class="entry_type_array">
1403 3 x 3
1404 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001405 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07001406
1407
Igor Murashkinca256272014-10-02 15:27:09 -07001408 <span class="entry_type_hwlevel">[full] </span>
1409
Igor Murashkin6c936c12014-05-13 14:51:49 -07001410
Igor Murashkin0b080452013-12-27 15:30:25 -08001411 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001412
1413
1414 </td> <!-- entry_type -->
1415
1416 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001417 <p>A color transform matrix to use to transform
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07001418from sensor RGB color space to output linear sRGB color space.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001419 </td>
1420
1421 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001422 Unitless scale factors
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001423 </td>
1424
1425 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001426 </td>
1427
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001428 <td class="entry_hal_version">
1429 <p>3.<wbr/>2</p>
1430 </td>
1431
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001432 <td class="entry_tags">
1433 </td>
1434
1435 </tr>
1436 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001437 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001438 </tr>
1439 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001440 <td class="entry_details" colspan="6">
Zhijun He44d0b3d2014-02-04 16:42:46 -08001441 <p>This matrix is either set by the camera device when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001442<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 -08001443directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001444<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -08001445<p>In the latter case,<wbr/> the camera device may round the matrix to account
1446for precision issues; the final rounded matrix should be reported back
1447in this matrix result metadata.<wbr/> The transform should keep the magnitude
1448of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1449values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08001450<p>The valid range of each matrix element varies on different devices,<wbr/> but
1451values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001452 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001453 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001454
1455
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001456 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001457 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001458
1459
1460 <tr class="entry" id="controls_android.colorCorrection.gains">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001461 <td class="entry_name
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001462 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001463 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001464 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001465 <td class="entry_type">
1466 <span class="entry_type_name">float</span>
1467 <span class="entry_type_container">x</span>
1468
1469 <span class="entry_type_array">
1470 4
1471 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001472 <span class="entry_type_visibility"> [public as rggbChannelVector]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07001473
1474
Igor Murashkinca256272014-10-02 15:27:09 -07001475 <span class="entry_type_hwlevel">[full] </span>
1476
Igor Murashkin6c936c12014-05-13 14:51:49 -07001477
Igor Murashkin0b080452013-12-27 15:30:25 -08001478 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001479
1480
1481 </td> <!-- entry_type -->
1482
1483 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001484 <p>Gains applying to Bayer raw color channels for
Zhijun He25b8ac52014-02-24 09:49:37 -08001485white-balance.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001486 </td>
1487
1488 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001489 Unitless gain factors
Zhijun He69fc0ea2013-07-17 09:42:58 -07001490 </td>
1491
1492 <td class="entry_range">
1493 </td>
1494
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001495 <td class="entry_hal_version">
1496 <p>3.<wbr/>2</p>
1497 </td>
1498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001499 <td class="entry_tags">
1500 </td>
1501
1502 </tr>
1503 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001504 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001505 </tr>
1506 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001507 <td class="entry_details" colspan="6">
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001508 <p>These per-channel gains are either set by the camera device
1509when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
1510TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
1511request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
1512TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1513<p>The gains in the result metadata are the gains actually
1514applied by the camera device to the current frame.<wbr/></p>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08001515<p>The valid range of gains varies on different devices,<wbr/> but gains
1516between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given
1517device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because
1518this can create color artifacts.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001519 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001520 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001521
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001522 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001523 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001524 </tr>
1525 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001526 <td class="entry_details" colspan="6">
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001527 <p>The 4-channel white-balance gains are defined in
1528the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1529for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1530is the gain for green pixels on the odd rows.<wbr/></p>
1531<p>If a HAL does not support a separate gain for even/<wbr/>odd green
1532channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
1533<code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1534 </td>
1535 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001536
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001537 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001538 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001539
Zhijun He450e01c2014-07-01 18:27:42 -07001540
Zhijun He33776412014-08-18 10:55:33 -07001541 <tr class="entry" id="controls_android.colorCorrection.aberrationMode">
Zhijun He450e01c2014-07-01 18:27:42 -07001542 <td class="entry_name
1543 " rowspan="3">
Zhijun He33776412014-08-18 10:55:33 -07001544 android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
Zhijun He450e01c2014-07-01 18:27:42 -07001545 </td>
1546 <td class="entry_type">
1547 <span class="entry_type_name entry_type_name_enum">byte</span>
1548
1549 <span class="entry_type_visibility"> [public]</span>
1550
1551
Igor Murashkinca256272014-10-02 15:27:09 -07001552 <span class="entry_type_hwlevel">[legacy] </span>
1553
Zhijun He450e01c2014-07-01 18:27:42 -07001554
1555
1556 <ul class="entry_type_enum">
1557 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001558 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun He450e01c2014-07-01 18:27:42 -07001559 <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
1560 </li>
1561 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001562 <span class="entry_type_enum_name">FAST (v3.2)</span>
Zhijun He450e01c2014-07-01 18:27:42 -07001563 <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
1564relative to sensor raw output.<wbr/></p></span>
1565 </li>
1566 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001567 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001568 <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
1569reduced (relative to sensor raw output rate)</p></span>
Zhijun He450e01c2014-07-01 18:27:42 -07001570 </li>
1571 </ul>
1572
1573 </td> <!-- entry_type -->
1574
1575 <td class="entry_description">
1576 <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
1577 </td>
1578
1579 <td class="entry_units">
1580 </td>
1581
1582 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001583 <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
Zhijun He450e01c2014-07-01 18:27:42 -07001584 </td>
1585
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001586 <td class="entry_hal_version">
1587 <p>3.<wbr/>2</p>
1588 </td>
1589
Zhijun He450e01c2014-07-01 18:27:42 -07001590 <td class="entry_tags">
1591 </td>
1592
1593 </tr>
1594 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001595 <th class="th_details" colspan="6">Details</th>
Zhijun He450e01c2014-07-01 18:27:42 -07001596 </tr>
1597 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001598 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001599 <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
Zhijun He450e01c2014-07-01 18:27:42 -07001600can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
1601the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
1602minimize the chromatic artifacts that may occur along the object boundaries in an
1603image.<wbr/></p>
1604<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
1605correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
1606use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
1607capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
1608applying aberration correction.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07001609<p>LEGACY devices will always be in FAST mode.<wbr/></p>
Zhijun He450e01c2014-07-01 18:27:42 -07001610 </td>
1611 </tr>
1612
1613
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001614 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He450e01c2014-07-01 18:27:42 -07001615 <!-- end of entry -->
1616
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001617
1618
1619 <!-- end of kind -->
1620 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001621 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001622
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001623 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001624 <tr>
1625 <th class="th_name">Property Name</th>
1626 <th class="th_type">Type</th>
1627 <th class="th_description">Description</th>
1628 <th class="th_units">Units</th>
1629 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001630 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001631 <th class="th_tags">Tags</th>
1632 </tr>
1633 </thead>
1634
1635 <tbody>
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
Zhijun He602d3702014-05-02 17:38:15 -07001646 <tr class="entry" id="dynamic_android.colorCorrection.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001647 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001648 " rowspan="5">
Zhijun He602d3702014-05-02 17:38:15 -07001649 android.<wbr/>color<wbr/>Correction.<wbr/>mode
1650 </td>
1651 <td class="entry_type">
1652 <span class="entry_type_name entry_type_name_enum">byte</span>
1653
1654 <span class="entry_type_visibility"> [public]</span>
1655
Igor Murashkin6c936c12014-05-13 14:51:49 -07001656
Igor Murashkinca256272014-10-02 15:27:09 -07001657 <span class="entry_type_hwlevel">[full] </span>
1658
Igor Murashkin6c936c12014-05-13 14:51:49 -07001659
1660
Zhijun He602d3702014-05-02 17:38:15 -07001661 <ul class="entry_type_enum">
1662 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001663 <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07001664 <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
1665and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
1666<p>All advanced white balance adjustments (not specified
1667by our white balance pipeline) must be disabled.<wbr/></p>
1668<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
1669TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
1670this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
1671 </li>
1672 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001673 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07001674 <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
1675capture rate relative to sensor raw output.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07001676<p>Advanced white balance adjustments above and beyond
1677the specified white balance pipeline may be applied.<wbr/></p>
1678<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
1679the camera device uses the last frame's AWB values
1680(or defaults if AWB has never been run).<wbr/></p></span>
1681 </li>
1682 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001683 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07001684 <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001685quality but the capture rate might be reduced (relative to sensor
1686raw output rate)</p>
Zhijun He602d3702014-05-02 17:38:15 -07001687<p>Advanced white balance adjustments above and beyond
1688the specified white balance pipeline may be applied.<wbr/></p>
1689<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
1690the camera device uses the last frame's AWB values
1691(or defaults if AWB has never been run).<wbr/></p></span>
1692 </li>
1693 </ul>
1694
1695 </td> <!-- entry_type -->
1696
1697 <td class="entry_description">
1698 <p>The mode control selects how the image data is converted from the
1699sensor's native color into linear sRGB color.<wbr/></p>
1700 </td>
1701
1702 <td class="entry_units">
1703 </td>
1704
1705 <td class="entry_range">
1706 </td>
1707
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001708 <td class="entry_hal_version">
1709 <p>3.<wbr/>2</p>
1710 </td>
1711
Zhijun He602d3702014-05-02 17:38:15 -07001712 <td class="entry_tags">
1713 </td>
1714
1715 </tr>
1716 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001717 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07001718 </tr>
1719 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001720 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07001721 <p>When auto-white balance (AWB) is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
Zhijun He602d3702014-05-02 17:38:15 -07001722control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
1723application controls how the color mapping is performed.<wbr/></p>
1724<p>We define the expected processing pipeline below.<wbr/> For consistency
1725across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1726<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
1727do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
1728<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
1729camera device (in the results) and be roughly correct.<wbr/></p>
1730<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
1731FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
1732as what was produced by the camera device in the earlier frame.<wbr/></p>
1733<p>The expected processing pipeline is as follows:</p>
1734<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
1735<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
1736gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
1737matrix (applied after demosaic).<wbr/></p>
1738<p>The 4-channel white-balance gains are defined as:</p>
1739<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
1740</code></pre>
1741<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
1742output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
1743These may be identical for a given camera device implementation; if
1744the camera device does not support a separate gain for even/<wbr/>odd green
1745channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1746<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1747<p>The matrices for color transforms are defined as a 9-entry vector:</p>
1748<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 ]
1749</code></pre>
1750<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
1751to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
1752<p>with colors as follows:</p>
1753<pre><code>r' = I0r + I1g + I2b
1754g' = I3r + I4g + I5b
1755b' = I6r + I7g + I8b
1756</code></pre>
1757<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
1758values are clipped to fit within the range.<wbr/></p>
1759 </td>
1760 </tr>
1761
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001762 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001763 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001764 </tr>
1765 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001766 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001767 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available
1768on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
1769That is,<wbr/> if the highest quality implementation on the camera device does not slow down
1770capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p>
1771 </td>
1772 </tr>
Zhijun He602d3702014-05-02 17:38:15 -07001773
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001774 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07001775 <!-- end of entry -->
1776
1777
Zhijun He69fc0ea2013-07-17 09:42:58 -07001778 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001779 <td class="entry_name
1780 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001781 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001782 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001783 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -07001784 <span class="entry_type_name">rational</span>
1785 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001786
Zhijun He69fc0ea2013-07-17 09:42:58 -07001787 <span class="entry_type_array">
1788 3 x 3
1789 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001790 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07001791
1792
Igor Murashkinca256272014-10-02 15:27:09 -07001793 <span class="entry_type_hwlevel">[full] </span>
1794
Igor Murashkin6c936c12014-05-13 14:51:49 -07001795
Igor Murashkin0b080452013-12-27 15:30:25 -08001796 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001797
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001798
1799 </td> <!-- entry_type -->
1800
1801 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001802 <p>A color transform matrix to use to transform
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07001803from sensor RGB color space to output linear sRGB color space.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001804 </td>
1805
1806 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001807 Unitless scale factors
Zhijun He69fc0ea2013-07-17 09:42:58 -07001808 </td>
1809
1810 <td class="entry_range">
Zhijun He69fc0ea2013-07-17 09:42:58 -07001811 </td>
1812
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001813 <td class="entry_hal_version">
1814 <p>3.<wbr/>2</p>
1815 </td>
1816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001817 <td class="entry_tags">
1818 </td>
1819
1820 </tr>
1821 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001822 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001823 </tr>
1824 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001825 <td class="entry_details" colspan="6">
Zhijun He44d0b3d2014-02-04 16:42:46 -08001826 <p>This matrix is either set by the camera device when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001827<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 -08001828directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001829<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -08001830<p>In the latter case,<wbr/> the camera device may round the matrix to account
1831for precision issues; the final rounded matrix should be reported back
1832in this matrix result metadata.<wbr/> The transform should keep the magnitude
1833of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1834values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08001835<p>The valid range of each matrix element varies on different devices,<wbr/> but
1836values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001837 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001838 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001839
1840
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001841 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001842 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001843
1844
1845 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Igor Murashkin6c936c12014-05-13 14:51:49 -07001846 <td class="entry_name
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001847 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001848 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001849 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001850 <td class="entry_type">
1851 <span class="entry_type_name">float</span>
1852 <span class="entry_type_container">x</span>
1853
1854 <span class="entry_type_array">
1855 4
1856 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001857 <span class="entry_type_visibility"> [public as rggbChannelVector]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07001858
1859
Igor Murashkinca256272014-10-02 15:27:09 -07001860 <span class="entry_type_hwlevel">[full] </span>
1861
Igor Murashkin6c936c12014-05-13 14:51:49 -07001862
Igor Murashkin0b080452013-12-27 15:30:25 -08001863 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001864
1865
1866 </td> <!-- entry_type -->
1867
1868 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001869 <p>Gains applying to Bayer raw color channels for
Zhijun He25b8ac52014-02-24 09:49:37 -08001870white-balance.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001871 </td>
1872
1873 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001874 Unitless gain factors
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001875 </td>
1876
1877 <td class="entry_range">
1878 </td>
1879
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001880 <td class="entry_hal_version">
1881 <p>3.<wbr/>2</p>
1882 </td>
1883
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001884 <td class="entry_tags">
1885 </td>
1886
1887 </tr>
1888 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001889 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001890 </tr>
1891 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001892 <td class="entry_details" colspan="6">
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001893 <p>These per-channel gains are either set by the camera device
1894when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
1895TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
1896request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
1897TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1898<p>The gains in the result metadata are the gains actually
1899applied by the camera device to the current frame.<wbr/></p>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08001900<p>The valid range of gains varies on different devices,<wbr/> but gains
1901between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given
1902device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because
1903this can create color artifacts.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001904 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001906
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001907 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001908 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001909 </tr>
1910 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001911 <td class="entry_details" colspan="6">
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07001912 <p>The 4-channel white-balance gains are defined in
1913the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1914for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1915is the gain for green pixels on the odd rows.<wbr/></p>
1916<p>If a HAL does not support a separate gain for even/<wbr/>odd green
1917channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
1918<code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1919 </td>
1920 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001921
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001922 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001923 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001924
Zhijun He450e01c2014-07-01 18:27:42 -07001925
Zhijun He33776412014-08-18 10:55:33 -07001926 <tr class="entry" id="dynamic_android.colorCorrection.aberrationMode">
Zhijun He450e01c2014-07-01 18:27:42 -07001927 <td class="entry_name
1928 " rowspan="3">
Zhijun He33776412014-08-18 10:55:33 -07001929 android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
Zhijun He450e01c2014-07-01 18:27:42 -07001930 </td>
1931 <td class="entry_type">
1932 <span class="entry_type_name entry_type_name_enum">byte</span>
1933
1934 <span class="entry_type_visibility"> [public]</span>
1935
1936
Igor Murashkinca256272014-10-02 15:27:09 -07001937 <span class="entry_type_hwlevel">[legacy] </span>
1938
Zhijun He450e01c2014-07-01 18:27:42 -07001939
1940
1941 <ul class="entry_type_enum">
1942 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001943 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun He450e01c2014-07-01 18:27:42 -07001944 <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
1945 </li>
1946 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001947 <span class="entry_type_enum_name">FAST (v3.2)</span>
Zhijun He450e01c2014-07-01 18:27:42 -07001948 <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
1949relative to sensor raw output.<wbr/></p></span>
1950 </li>
1951 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08001952 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07001953 <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
1954reduced (relative to sensor raw output rate)</p></span>
Zhijun He450e01c2014-07-01 18:27:42 -07001955 </li>
1956 </ul>
1957
1958 </td> <!-- entry_type -->
1959
1960 <td class="entry_description">
1961 <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
1962 </td>
1963
1964 <td class="entry_units">
1965 </td>
1966
1967 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001968 <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
Zhijun He450e01c2014-07-01 18:27:42 -07001969 </td>
1970
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001971 <td class="entry_hal_version">
1972 <p>3.<wbr/>2</p>
1973 </td>
1974
Zhijun He450e01c2014-07-01 18:27:42 -07001975 <td class="entry_tags">
1976 </td>
1977
1978 </tr>
1979 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001980 <th class="th_details" colspan="6">Details</th>
Zhijun He450e01c2014-07-01 18:27:42 -07001981 </tr>
1982 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001983 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07001984 <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
Zhijun He450e01c2014-07-01 18:27:42 -07001985can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
1986the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
1987minimize the chromatic artifacts that may occur along the object boundaries in an
1988image.<wbr/></p>
1989<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
1990correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
1991use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
1992capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
1993applying aberration correction.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07001994<p>LEGACY devices will always be in FAST mode.<wbr/></p>
Zhijun He450e01c2014-07-01 18:27:42 -07001995 </td>
1996 </tr>
1997
1998
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08001999 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He450e01c2014-07-01 18:27:42 -07002000 <!-- end of entry -->
2001
2002
2003
2004 <!-- end of kind -->
2005 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002006 <tr><td colspan="7" class="kind">static</td></tr>
Zhijun He450e01c2014-07-01 18:27:42 -07002007
2008 <thead class="entries_header">
2009 <tr>
2010 <th class="th_name">Property Name</th>
2011 <th class="th_type">Type</th>
2012 <th class="th_description">Description</th>
2013 <th class="th_units">Units</th>
2014 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002015 <th class="th_hal_version">Initial HIDL HAL version</th>
Zhijun He450e01c2014-07-01 18:27:42 -07002016 <th class="th_tags">Tags</th>
2017 </tr>
2018 </thead>
2019
2020 <tbody>
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
Zhijun He33776412014-08-18 10:55:33 -07002031 <tr class="entry" id="static_android.colorCorrection.availableAberrationModes">
Zhijun He450e01c2014-07-01 18:27:42 -07002032 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07002033 " rowspan="5">
Zhijun He33776412014-08-18 10:55:33 -07002034 android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes
Zhijun He450e01c2014-07-01 18:27:42 -07002035 </td>
2036 <td class="entry_type">
2037 <span class="entry_type_name">byte</span>
2038 <span class="entry_type_container">x</span>
2039
2040 <span class="entry_type_array">
2041 n
2042 </span>
2043 <span class="entry_type_visibility"> [public as enumList]</span>
2044
2045
Igor Murashkinca256272014-10-02 15:27:09 -07002046 <span class="entry_type_hwlevel">[legacy] </span>
2047
Zhijun He450e01c2014-07-01 18:27:42 -07002048
2049 <div class="entry_type_notes">list of enums</div>
2050
2051
2052 </td> <!-- entry_type -->
2053
2054 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002055 <p>List of aberration correction modes for <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a> that are
2056supported by this camera device.<wbr/></p>
Zhijun He450e01c2014-07-01 18:27:42 -07002057 </td>
2058
2059 <td class="entry_units">
2060 </td>
2061
2062 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002063 <p>Any value listed in <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></p>
Zhijun He450e01c2014-07-01 18:27:42 -07002064 </td>
2065
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002066 <td class="entry_hal_version">
2067 <p>3.<wbr/>2</p>
2068 </td>
2069
Zhijun He450e01c2014-07-01 18:27:42 -07002070 <td class="entry_tags">
2071 <ul class="entry_tags">
2072 <li><a href="#tag_V1">V1</a></li>
2073 </ul>
2074 </td>
2075
2076 </tr>
2077 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002078 <th class="th_details" colspan="6">Details</th>
Zhijun He450e01c2014-07-01 18:27:42 -07002079 </tr>
2080 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002081 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002082 <p>This key lists the valid modes for <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a>.<wbr/> If no
2083aberration correction modes are available for a device,<wbr/> this list will solely include
Yin-Chia Yehaed8cea2015-01-06 10:30:16 -08002084OFF mode.<wbr/> All camera devices will support either OFF or FAST mode.<wbr/></p>
2085<p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
2086OFF mode.<wbr/> This includes all FULL level devices.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07002087<p>LEGACY devices will always only support FAST mode.<wbr/></p>
Zhijun He450e01c2014-07-01 18:27:42 -07002088 </td>
2089 </tr>
2090
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07002091 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002092 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07002093 </tr>
2094 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002095 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07002096 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if chromatic aberration control is available
2097on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
2098That is,<wbr/> if the highest quality implementation on the camera device does not slow down
2099capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
2100 </td>
2101 </tr>
Zhijun He450e01c2014-07-01 18:27:42 -07002102
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002103 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He450e01c2014-07-01 18:27:42 -07002104 <!-- end of entry -->
2105
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002106
2107
2108 <!-- end of kind -->
2109 </tbody>
2110
2111 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002112 <tr><td colspan="7" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002113
2114
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002115 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002116
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002117 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002118 <tr>
2119 <th class="th_name">Property Name</th>
2120 <th class="th_type">Type</th>
2121 <th class="th_description">Description</th>
2122 <th class="th_units">Units</th>
2123 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002124 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002125 <th class="th_tags">Tags</th>
2126 </tr>
2127 </thead>
2128
2129 <tbody>
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002141 <td class="entry_name
2142 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002143 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002144 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002145 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002146 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002148 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002149
Igor Murashkin6c936c12014-05-13 14:51:49 -07002150
Igor Murashkinca256272014-10-02 15:27:09 -07002151 <span class="entry_type_hwlevel">[legacy] </span>
2152
Igor Murashkin6c936c12014-05-13 14:51:49 -07002153
2154
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002155 <ul class="entry_type_enum">
2156 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002157 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002158 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
2159avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002160 </li>
2161 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002162 <span class="entry_type_enum_name">50HZ (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002163 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
2164avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002165 </li>
2166 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002167 <span class="entry_type_enum_name">60HZ (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002168 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
2169avoid banding problems with 60Hz illumination
2170sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002171 </li>
2172 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002173 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002174 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
2175antibanding routine to the current illumination
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08002176condition.<wbr/> This is the default mode if AUTO is
2177available on given camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002178 </li>
2179 </ul>
2180
2181 </td> <!-- entry_type -->
2182
2183 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002184 <p>The desired setting for the camera device's auto-exposure
2185algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002186 </td>
2187
2188 <td class="entry_units">
2189 </td>
2190
2191 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002192 <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 -08002193 </td>
2194
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002195 <td class="entry_hal_version">
2196 <p>3.<wbr/>2</p>
2197 </td>
2198
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002199 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002200 <ul class="entry_tags">
2201 <li><a href="#tag_BC">BC</a></li>
2202 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002203 </td>
2204
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002205 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002206 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002207 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002208 </tr>
2209 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002210 <td class="entry_details" colspan="6">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002211 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
2212lights,<wbr/> flicker at the rate of the power supply frequency
2213(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
2214typically not noticeable to a person,<wbr/> it can be visible to
2215a camera device.<wbr/> If a camera sets its exposure time to the
2216wrong value,<wbr/> the flicker may become visible in the
2217viewfinder as flicker or in a final captured image,<wbr/> as a
2218set of variable-brightness bands across the image.<wbr/></p>
2219<p>Therefore,<wbr/> the auto-exposure routines of camera devices
2220include antibanding routines that ensure that the chosen
2221exposure value will not cause such banding.<wbr/> The choice of
2222exposure time depends on the rate of flicker,<wbr/> which the
2223camera device can detect automatically,<wbr/> or the expected
2224rate can be selected by the application using this
2225control.<wbr/></p>
2226<p>A given camera device may not support all of the possible
2227options for the antibanding mode.<wbr/> The
2228<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
2229the available modes for a given camera device.<wbr/></p>
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08002230<p>AUTO mode is the default if it is available on given
2231camera device.<wbr/> When AUTO mode is not available,<wbr/> the
2232default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
2233and 60HZ will be available.<wbr/></p>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002234<p>If manual exposure control is enabled (by setting
2235<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/>
2236then this setting has no effect,<wbr/> and the application must
2237ensure it selects exposure times that do not cause banding
2238issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
2239the application in this.<wbr/></p>
2240 </td>
2241 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002242
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002243 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002244 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002245 </tr>
2246 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002247 <td class="entry_details" colspan="6">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002248 <p>For all capture request templates,<wbr/> this field must be set
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08002249to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
2250the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
225160HZ must be available.<wbr/></p>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002252<p>If manual exposure control is enabled (by setting
2253<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/>
2254then the exposure values provided by the application must not be
2255adjusted for antibanding.<wbr/></p>
2256 </td>
2257 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002258
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002259 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002260 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002261
2262
2263 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002264 <td class="entry_name
2265 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002266 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002267 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002268 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002269 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002270
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002271 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002272
2273
Igor Murashkinca256272014-10-02 15:27:09 -07002274 <span class="entry_type_hwlevel">[legacy] </span>
2275
Igor Murashkin6c936c12014-05-13 14:51:49 -07002276
2277
2278
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002279 </td> <!-- entry_type -->
2280
2281 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002282 <p>Adjustment to auto-exposure (AE) target image
2283brightness.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002284 </td>
2285
2286 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002287 Compensation steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002288 </td>
2289
2290 <td class="entry_range">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002291 <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002292 </td>
2293
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002294 <td class="entry_hal_version">
2295 <p>3.<wbr/>2</p>
2296 </td>
2297
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002298 <td class="entry_tags">
2299 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002300 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002301 </ul>
2302 </td>
2303
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002304 </tr>
2305 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002306 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002307 </tr>
2308 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002309 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002310 <p>The adjustment is measured as a count of steps,<wbr/> with the
2311step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
2312allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
2313<p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
2314will mean an exposure compensation of +2 EV; -3 will mean an
2315exposure compensation of -1 EV.<wbr/> One EV represents a doubling
2316of image brightness.<wbr/> Note that this control will only be
2317effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
2318will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
Yin-Chia Yeh7754e6a2014-05-05 14:26:03 -07002319<p>In the event of exposure compensation value being changed,<wbr/> camera device
2320may take several frames to reach the newly requested exposure target.<wbr/>
Igor Murashkin6c936c12014-05-13 14:51:49 -07002321During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
Yin-Chia Yeh7754e6a2014-05-05 14:26:03 -07002322state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will
2323change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
Igor Murashkin6c936c12014-05-13 14:51:49 -07002324FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002325 </td>
2326 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002327
2328
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002329 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002330 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002331
2332
2333 <tr class="entry" id="controls_android.control.aeLock">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002334 <td class="entry_name
2335 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002336 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002337 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002338 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002339 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002340
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002341 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002342
Igor Murashkin6c936c12014-05-13 14:51:49 -07002343
Igor Murashkinca256272014-10-02 15:27:09 -07002344 <span class="entry_type_hwlevel">[legacy] </span>
2345
Igor Murashkin6c936c12014-05-13 14:51:49 -07002346
2347
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002348 <ul class="entry_type_enum">
2349 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002350 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002351 <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
Igor Murashkina10351a2014-01-15 17:05:22 -08002352is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08002353 </li>
2354 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002355 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002356 <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
Igor Murashkina10351a2014-01-15 17:05:22 -08002357must not update the exposure and sensitivity parameters
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002358while the lock is active.<wbr/></p>
2359<p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
Igor Murashkinca256272014-10-02 15:27:09 -07002360will still take effect while auto-exposure is locked.<wbr/></p>
2361<p>Some rare LEGACY devices may not support
2362this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002363 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002364 </ul>
2365
2366 </td> <!-- entry_type -->
2367
2368 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002369 <p>Whether auto-exposure (AE) is currently locked to its latest
Zhijun He44d0b3d2014-02-04 16:42:46 -08002370calculated values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002371 </td>
2372
2373 <td class="entry_units">
2374 </td>
2375
2376 <td class="entry_range">
2377 </td>
2378
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002379 <td class="entry_hal_version">
2380 <p>3.<wbr/>2</p>
2381 </td>
2382
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002383 <td class="entry_tags">
2384 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002385 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002386 </ul>
2387 </td>
2388
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002389 </tr>
2390 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002391 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002392 </tr>
2393 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002394 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002395 <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
2396and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
2397<p>Note that even when AE is locked,<wbr/> the flash may be fired if
2398the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
2399ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Yin-Chia Yeh7754e6a2014-05-05 14:26:03 -07002400<p>When <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> is changed,<wbr/> even if the AE lock
2401is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -08002402<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
2403when AE is already locked,<wbr/> the camera device will not change the exposure time
2404(<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08002405parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
Zhijun He44d0b3d2014-02-04 16:42:46 -08002406is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
Zhijun Hee7cd5562015-02-05 14:32:57 -08002407<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/>
2408Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p>
2409<p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock
2410the AE if AE is locked by the camera device internally during precapture metering
2411sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an
2412ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence
2413will never succeed in a sequence of preview requests where AE lock is always set
2414to <code>false</code>.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002415<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
2416get locked do not necessarily correspond to the settings that were present in the
2417latest capture result received from the camera device,<wbr/> since additional captures
2418and AE updates may have occurred even before the result was sent out.<wbr/> If an
2419application is switching between automatic and manual control and wishes to eliminate
2420any flicker during the switch,<wbr/> the following procedure is recommended:</p>
2421<ol>
2422<li>Starting in auto-AE mode:</li>
2423<li>Lock AE</li>
2424<li>Wait for the first result to be output that has the AE locked</li>
2425<li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
2426<li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
2427</ol>
Zhijun He44d0b3d2014-02-04 16:42:46 -08002428<p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002429 </td>
2430 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002431
2432
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002433 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002434 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002435
2436
2437 <tr class="entry" id="controls_android.control.aeMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002438 <td class="entry_name
2439 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002440 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002441 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002442 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002443 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002444
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002445 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002446
Igor Murashkin6c936c12014-05-13 14:51:49 -07002447
Igor Murashkinca256272014-10-02 15:27:09 -07002448 <span class="entry_type_hwlevel">[legacy] </span>
2449
Igor Murashkin6c936c12014-05-13 14:51:49 -07002450
2451
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002452 <ul class="entry_type_enum">
2453 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002454 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002455 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
2456<p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
Igor Murashkina10351a2014-01-15 17:05:22 -08002457<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
2458<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
2459device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
Igor Murashkinca256272014-10-02 15:27:09 -07002460a flash unit for this camera device.<wbr/></p>
Yin-Chia Yeh668e43c2014-11-12 11:38:10 -08002461<p>Note that auto-white balance (AWB) and auto-focus (AF)
2462behavior is device dependent when AE is in OFF mode.<wbr/>
2463To have consistent behavior across different devices,<wbr/>
2464it is recommended to either set AWB and AF to OFF mode
2465or lock AWB and AF before setting AE to OFF.<wbr/>
2466See <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/>
2467<a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>,<wbr/> and <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
2468for more details.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07002469<p>LEGACY devices do not support the OFF mode and will
2470override attempts to use this value to ON.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002471 </li>
2472 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002473 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002474 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002475with no flash control.<wbr/></p>
2476<p>The application's values for
Igor Murashkina10351a2014-01-15 17:05:22 -08002477<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
2478<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
2479<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
2480application has control over the various
2481android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002482 </li>
2483 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002484 <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002485 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
2486the camera's flash unit,<wbr/> firing it in low-light
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002487conditions.<wbr/></p>
2488<p>The flash may be fired during a precapture sequence
2489(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
2490may be fired for captures for which the
Igor Murashkina10351a2014-01-15 17:05:22 -08002491<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
2492STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002493 </li>
2494 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002495 <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002496 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
2497the camera's flash unit,<wbr/> always firing it for still
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002498captures.<wbr/></p>
2499<p>The flash may be fired during a precapture sequence
2500(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
2501will always be fired for captures for which the
Igor Murashkina10351a2014-01-15 17:05:22 -08002502<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
2503STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002504 </li>
2505 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002506 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002507 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002508reduction.<wbr/></p>
2509<p>If deemed necessary by the camera device,<wbr/> a red eye
2510reduction flash will fire during the precapture
2511sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002512 </li>
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08002513 <li>
2514 <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
2515 <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
2516<p>It informs the camera device that an external flash has been turned on,<wbr/> and that
2517metering (and continuous focus if active) should be quickly recaculated to account
2518for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
2519<p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
2520other available AE modes.<wbr/></p>
Chien-Yu Chen06513f12018-03-15 11:17:20 -07002521<p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
2522be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08002523flash.<wbr/></p></span>
2524 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002525 </ul>
2526
2527 </td> <!-- entry_type -->
2528
2529 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002530 <p>The desired mode for the camera device's
2531auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002532 </td>
2533
2534 <td class="entry_units">
2535 </td>
2536
2537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002538 <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 -08002539 </td>
2540
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002541 <td class="entry_hal_version">
2542 <p>3.<wbr/>2</p>
2543 </td>
2544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002545 <td class="entry_tags">
2546 <ul class="entry_tags">
2547 <li><a href="#tag_BC">BC</a></li>
2548 </ul>
2549 </td>
2550
2551 </tr>
2552 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002553 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002554 </tr>
2555 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002556 <td class="entry_details" colspan="6">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002557 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
2558AUTO.<wbr/></p>
2559<p>When set to any of the ON modes,<wbr/> the camera device's
2560auto-exposure routine is enabled,<wbr/> overriding the
2561application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
2562and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
2563<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
2564<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
2565is selected,<wbr/> the camera device's flash unit controls are
2566also overridden.<wbr/></p>
2567<p>The FLASH modes are only available if the camera device
2568has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
2569<p>If flash TORCH mode is desired,<wbr/> this field must be set to
2570ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
2571<p>When set to any of the ON modes,<wbr/> the values chosen by the
2572camera device auto-exposure routine for the overridden
2573fields for a given capture will be available in its
2574CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002575 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002576 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002577
2578
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002579 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002580 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002581
2582
2583 <tr class="entry" id="controls_android.control.aeRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002584 <td class="entry_name
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07002585 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002586 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002587 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002588 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002589 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002590 <span class="entry_type_container">x</span>
2591
2592 <span class="entry_type_array">
2593 5 x area_count
2594 </span>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07002595 <span class="entry_type_visibility"> [public as meteringRectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002596
2597
Igor Murashkin6c936c12014-05-13 14:51:49 -07002598
2599
2600
Igor Murashkinca256272014-10-02 15:27:09 -07002601
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002602 </td> <!-- entry_type -->
2603
2604 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002605 <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002606 </td>
2607
2608 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002609 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002610 </td>
2611
2612 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002613 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
2614<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002615 </td>
2616
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002617 <td class="entry_hal_version">
2618 <p>3.<wbr/>2</p>
2619 </td>
2620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002621 <td class="entry_tags">
2622 <ul class="entry_tags">
2623 <li><a href="#tag_BC">BC</a></li>
2624 </ul>
2625 </td>
2626
2627 </tr>
2628 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002629 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002630 </tr>
2631 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002632 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002633 <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07002634Otherwise will always be present.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002635<p>The maximum number of regions supported by the device is determined by the value
2636of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07002637<p>The coordinate system is based on the active pixel array,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08002638with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002639(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2640<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Yin-Chia Yehdc182572014-05-14 14:05:20 -07002641bottom-right pixel in the active pixel array.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002642<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
Yin-Chia Yehdc182572014-05-14 14:05:20 -07002643for every pixel in the area.<wbr/> This means that a large metering area
2644with the same weight as a smaller area will have more effect in
2645the metering result.<wbr/> Metering areas can partially overlap and the
2646camera device will add the weights in the overlap region.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002647<p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
2648region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
2649weight is ignored.<wbr/></p>
2650<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
2651camera device.<wbr/></p>
2652<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
2653capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
2654region and output only the intersection rectangle as the metering region in the result
2655metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
2656not reported in the result metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002657 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002658 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002659
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07002660 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002661 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07002662 </tr>
2663 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002664 <td class="entry_details" colspan="6">
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07002665 <p>The HAL level representation of MeteringRectangle[] is a
2666int[5 * area_<wbr/>count].<wbr/>
2667Every five elements represent a metering region of
2668(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
2669The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
2670exclusive on xmax and ymax.<wbr/></p>
2671 </td>
2672 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002673
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002674 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002675 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002676
2677
2678 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002679 <td class="entry_name
2680 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002681 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002682 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002683 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002684 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002685 <span class="entry_type_container">x</span>
2686
2687 <span class="entry_type_array">
2688 2
2689 </span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07002690 <span class="entry_type_visibility"> [public as rangeInt]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002691
2692
Igor Murashkinca256272014-10-02 15:27:09 -07002693 <span class="entry_type_hwlevel">[legacy] </span>
2694
Igor Murashkin6c936c12014-05-13 14:51:49 -07002695
2696
2697
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002698 </td> <!-- entry_type -->
2699
2700 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002701 <p>Range over which the auto-exposure routine can
2702adjust the capture frame rate to maintain good
2703exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002704 </td>
2705
2706 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002707 Frames per second (FPS)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002708 </td>
2709
2710 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002711 <p>Any of the entries in <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 -08002712 </td>
2713
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002714 <td class="entry_hal_version">
2715 <p>3.<wbr/>2</p>
2716 </td>
2717
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002718 <td class="entry_tags">
2719 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002720 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002721 </ul>
2722 </td>
2723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002724 </tr>
2725 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002726 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002727 </tr>
2728 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002729 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002730 <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002731manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
2732<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002733 </td>
2734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002735
2736
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002737 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002738 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002739
2740
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002741 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002742 <td class="entry_name
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07002743 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002744 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002745 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002746 <td class="entry_type">
2747 <span class="entry_type_name entry_type_name_enum">byte</span>
2748
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002749 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002750
Igor Murashkin6c936c12014-05-13 14:51:49 -07002751
Igor Murashkinca256272014-10-02 15:27:09 -07002752 <span class="entry_type_hwlevel">[limited] </span>
2753
Igor Murashkin6c936c12014-05-13 14:51:49 -07002754
2755
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002756 <ul class="entry_type_enum">
2757 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002758 <span class="entry_type_enum_name">IDLE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002759 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002760 </li>
2761 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002762 <span class="entry_type_enum_name">START (v3.2)</span>
Zhijun He92e698d2014-01-13 16:24:31 -08002763 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002764by the camera device.<wbr/></p>
2765<p>The exact effect of the precapture trigger depends on
2766the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002767 </li>
Zhijun Hee7cd5562015-02-05 14:32:57 -08002768 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002769 <span class="entry_type_enum_name">CANCEL (v3.2)</span>
Zhijun Hee7cd5562015-02-05 14:32:57 -08002770 <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
2771precapture metering sequence,<wbr/> the auto-exposure routine will return to its
2772initial state.<wbr/></p></span>
2773 </li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002774 </ul>
2775
2776 </td> <!-- entry_type -->
2777
2778 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08002779 <p>Whether the camera device will trigger a precapture
2780metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002781 </td>
2782
2783 <td class="entry_units">
2784 </td>
2785
2786 <td class="entry_range">
2787 </td>
2788
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002789 <td class="entry_hal_version">
2790 <p>3.<wbr/>2</p>
2791 </td>
2792
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002793 <td class="entry_tags">
2794 <ul class="entry_tags">
2795 <li><a href="#tag_BC">BC</a></li>
2796 </ul>
2797 </td>
2798
2799 </tr>
2800 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002801 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002802 </tr>
2803 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002804 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -08002805 <p>This entry is normally set to IDLE,<wbr/> or is not
2806included at all in the request settings.<wbr/> When included and
Zhijun Hecad66192015-02-06 13:42:40 -08002807set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
Igor Murashkin0b080452013-12-27 15:30:25 -08002808precapture metering sequence.<wbr/></p>
Zhijun Hee7cd5562015-02-05 14:32:57 -08002809<p>When set to CANCEL,<wbr/> the camera device will cancel any active
2810precapture metering trigger,<wbr/> and return to its initial AE state.<wbr/>
2811If a precapture metering sequence is already completed,<wbr/> and the camera
2812device has implicitly locked the AE for subsequent still capture,<wbr/> the
2813CANCEL trigger will unlock the AE and return to its initial AE state.<wbr/></p>
Zhijun Hecad66192015-02-06 13:42:40 -08002814<p>The precapture sequence should be triggered before starting a
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002815high-quality still capture for final metering decisions to
2816be made,<wbr/> and for firing pre-capture flash pulses to estimate
2817scene brightness and required final capture flash power,<wbr/> when
2818the flash is enabled.<wbr/></p>
2819<p>Normally,<wbr/> this entry should be set to START for only a
2820single request,<wbr/> and the application should wait until the
2821sequence completes before starting a new one.<wbr/></p>
Zhijun Hecad66192015-02-06 13:42:40 -08002822<p>When a precapture metering sequence is finished,<wbr/> the camera device
2823may lock the auto-exposure routine internally to be able to accurately expose the
2824subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
2825For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
2826submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
2827submit a request with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == true</code>,<wbr/> followed by a request
2828with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == false</code>,<wbr/> if the application decides not to submit a
Zhijun Hee7cd5562015-02-05 14:32:57 -08002829still capture request after the precapture sequence completes.<wbr/> Alternatively,<wbr/> for
2830API level 23 or newer devices,<wbr/> the CANCEL can be used to unlock the camera device
2831internally locked AE if the application doesn't submit a still capture request after
2832the AE precapture trigger.<wbr/> Note that,<wbr/> the CANCEL was added in API level 23,<wbr/> and must not
2833be used in devices that have earlier API levels.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002834<p>The exact effect of auto-exposure (AE) precapture trigger
2835depends on the current AE mode and state; see
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002836<a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
2837details.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07002838<p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
2839capturing a high-resolution JPEG image will automatically trigger a
2840precapture sequence before the high-resolution capture,<wbr/> including
2841potentially firing a pre-capture flash.<wbr/></p>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07002842<p>Using the precapture trigger and the auto-focus trigger <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
2843simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
2844the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
2845focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
2846trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
2847changes to <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> indicating the start of the precapture sequence,<wbr/> for
2848example.<wbr/></p>
2849<p>If both the precapture and the auto-focus trigger are activated on the same request,<wbr/> then
2850the camera device will complete them in the optimal order for that device.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002851 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002852 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002853
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07002854 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002855 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07002856 </tr>
2857 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002858 <td class="entry_details" colspan="6">
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07002859 <p>The HAL must support triggering the AE precapture trigger while an AF trigger is active
2860(and vice versa),<wbr/> or at the same time as the AF trigger.<wbr/> It is acceptable for the HAL to
2861treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
2862AE trigger.<wbr/> Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
2863to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
2864 </td>
2865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002866
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002867 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002868 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07002869
2870
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002871 <tr class="entry" id="controls_android.control.afMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07002872 <td class="entry_name
Zhijun Hea19ede82014-05-27 15:06:42 -07002873 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002874 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002877 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002879 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002880
Igor Murashkin6c936c12014-05-13 14:51:49 -07002881
Igor Murashkinca256272014-10-02 15:27:09 -07002882 <span class="entry_type_hwlevel">[legacy] </span>
2883
Igor Murashkin6c936c12014-05-13 14:51:49 -07002884
2885
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002886 <ul class="entry_type_enum">
2887 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002888 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002889 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
2890<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002891application.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002892 </li>
2893 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002894 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002895 <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
2896<p>In this mode,<wbr/> the lens does not move unless
Igor Murashkina10351a2014-01-15 17:05:22 -08002897the autofocus trigger action is called.<wbr/> When that trigger
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002898is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
Igor Murashkina10351a2014-01-15 17:05:22 -08002899the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002900<p>Always supported if lens is not fixed focus.<wbr/></p>
2901<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
2902is fixed-focus.<wbr/></p>
Igor Murashkina10351a2014-01-15 17:05:22 -08002903<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
2904and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002905 </li>
2906 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002907 <span class="entry_type_enum_name">MACRO (v3.2)</span>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002908 <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
2909<p>In this mode,<wbr/> the lens does not move unless the
2910autofocus trigger action is called.<wbr/> When that trigger is
2911activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
2912the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
2913mode is optimized for focusing on objects very close to
2914the camera.<wbr/></p>
2915<p>When that trigger is activated,<wbr/> AF will transition to
Igor Murashkina10351a2014-01-15 17:05:22 -08002916ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002917NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
Igor Murashkina10351a2014-01-15 17:05:22 -08002918position to default,<wbr/> and sets the AF state to
2919INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002920 </li>
2921 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002922 <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002923 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
2924position continually to attempt to provide a
2925constantly-in-focus image stream.<wbr/></p>
2926<p>The focusing behavior should be suitable for good quality
2927video recording; typically this means slower focus
2928movement and no overshoots.<wbr/> When the AF trigger is not
2929involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
2930and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
2931states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
2932the algorithm should immediately transition into
2933AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
2934lens position until a cancel AF trigger is received.<wbr/></p>
2935<p>Once cancel is received,<wbr/> the algorithm should transition
2936back to INACTIVE and resume passive scan.<wbr/> Note that this
2937behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
2938ongoing PASSIVE_<wbr/>SCAN must immediately be
2939canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002940 </li>
2941 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002942 <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002943 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
2944position continually to attempt to provide a
2945constantly-in-focus image stream.<wbr/></p>
2946<p>The focusing behavior should be suitable for still image
2947capture; typically this means focusing as fast as
2948possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
2949algorithm should start in INACTIVE state,<wbr/> and then
2950transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
2951appropriate as it attempts to maintain focus.<wbr/> When the AF
2952trigger is activated,<wbr/> the algorithm should finish its
2953PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
2954AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
2955lens position until a cancel AF trigger is received.<wbr/></p>
2956<p>When the AF cancel trigger is activated,<wbr/> the algorithm
2957should transition back to INACTIVE and then act as if it
2958has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002959 </li>
2960 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08002961 <span class="entry_type_enum_name">EDOF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07002962 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
2963<p>The camera device will produce images with an extended
2964depth of field automatically; no special focusing
2965operations need to be done before taking a picture.<wbr/></p>
2966<p>AF triggers are ignored,<wbr/> and the AF state will always be
Igor Murashkina10351a2014-01-15 17:05:22 -08002967INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002968 </li>
2969 </ul>
2970
2971 </td> <!-- entry_type -->
2972
2973 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07002974 <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
2975mode it is set to.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002976 </td>
2977
2978 <td class="entry_units">
2979 </td>
2980
2981 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002982 <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 -08002983 </td>
2984
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002985 <td class="entry_hal_version">
2986 <p>3.<wbr/>2</p>
2987 </td>
2988
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002989 <td class="entry_tags">
2990 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002991 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002992 </ul>
2993 </td>
2994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002995 </tr>
2996 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08002997 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002998 </tr>
2999 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003000 <td class="entry_details" colspan="6">
Zhijun He25b8ac52014-02-24 09:49:37 -08003001 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
Yin-Chia Yeh668e43c2014-11-12 11:38:10 -08003002(i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/> Also note that
3003when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
3004dependent.<wbr/> It is recommended to lock AF by using <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> before
3005setting <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> to OFF,<wbr/> or set AF mode to OFF when AE is OFF.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08003006<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08003007the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
Zhijun Hef163fa92014-01-14 09:59:04 -08003008in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003009 </td>
3010 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003011
Zhijun Hea19ede82014-05-27 15:06:42 -07003012 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003013 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Hea19ede82014-05-27 15:06:42 -07003014 </tr>
3015 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003016 <td class="entry_details" colspan="6">
Zhijun Hea19ede82014-05-27 15:06:42 -07003017 <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
3018request (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> <code>==</code> START).<wbr/> After an AF trigger,<wbr/> the afState will end
3019up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
3020<a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> which indicates that the lens is
3021locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
3022after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
3023the same focal plane remains in focus.<wbr/></p>
3024<p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
3025scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
3026(see <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> the HAL should maintain the
3027same lock behavior as above.<wbr/></p>
3028<p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
3029focus distance control depends on the <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a>.<wbr/>
3030However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
3031manual control.<wbr/></p>
3032<p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
3033camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
3034remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
3035by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
3036that will arise on camera modules with open-loop VCMs.<wbr/></p>
3037 </td>
3038 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003039
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003040 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003042
3043
3044 <tr class="entry" id="controls_android.control.afRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003045 <td class="entry_name
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003046 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003047 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003048 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003049 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003050 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003051 <span class="entry_type_container">x</span>
3052
3053 <span class="entry_type_array">
3054 5 x area_count
3055 </span>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003056 <span class="entry_type_visibility"> [public as meteringRectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003057
3058
Igor Murashkin6c936c12014-05-13 14:51:49 -07003059
3060
3061
Igor Murashkinca256272014-10-02 15:27:09 -07003062
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003063 </td> <!-- entry_type -->
3064
3065 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003066 <p>List of metering areas to use for auto-focus.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003067 </td>
3068
3069 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003070 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003071 </td>
3072
3073 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003074 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
3075<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003076 </td>
3077
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003078 <td class="entry_hal_version">
3079 <p>3.<wbr/>2</p>
3080 </td>
3081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003082 <td class="entry_tags">
3083 <ul class="entry_tags">
3084 <li><a href="#tag_BC">BC</a></li>
3085 </ul>
3086 </td>
3087
3088 </tr>
3089 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003090 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003091 </tr>
3092 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003093 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003094 <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07003095Otherwise will always be present.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003096<p>The maximum number of focus areas supported by the device is determined by the value
3097of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07003098<p>The coordinate system is based on the active pixel array,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08003099with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003100(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3101<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Yin-Chia Yehdc182572014-05-14 14:05:20 -07003102bottom-right pixel in the active pixel array.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003103<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
Yin-Chia Yehdc182572014-05-14 14:05:20 -07003104for every pixel in the area.<wbr/> This means that a large metering area
3105with the same weight as a smaller area will have more effect in
3106the metering result.<wbr/> Metering areas can partially overlap and the
3107camera device will add the weights in the overlap region.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003108<p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
3109is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
3110ignored.<wbr/></p>
3111<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
Shuzhen Wang608e0582018-02-08 12:03:09 -08003112camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
3113the region selected by the camera device as the focus area of interest.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003114<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
3115capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
3116region and output only the intersection rectangle as the metering region in the result
3117metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
3118not reported in the result metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003119 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003121
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003122 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003123 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003124 </tr>
3125 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003126 <td class="entry_details" colspan="6">
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003127 <p>The HAL level representation of MeteringRectangle[] is a
3128int[5 * area_<wbr/>count].<wbr/>
3129Every five elements represent a metering region of
3130(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
3131The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
3132exclusive on xmax and ymax.<wbr/></p>
3133 </td>
3134 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003135
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003136 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003137 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003138
3139
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003140 <tr class="entry" id="controls_android.control.afTrigger">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003141 <td class="entry_name
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07003142 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003143 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003144 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003145 <td class="entry_type">
3146 <span class="entry_type_name entry_type_name_enum">byte</span>
3147
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003148 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003149
Igor Murashkin6c936c12014-05-13 14:51:49 -07003150
Igor Murashkinca256272014-10-02 15:27:09 -07003151 <span class="entry_type_hwlevel">[legacy] </span>
3152
Igor Murashkin6c936c12014-05-13 14:51:49 -07003153
3154
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003155 <ul class="entry_type_enum">
3156 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003157 <span class="entry_type_enum_name">IDLE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003158 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003159 </li>
3160 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003161 <span class="entry_type_enum_name">START (v3.2)</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003162 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003163 </li>
3164 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003165 <span class="entry_type_enum_name">CANCEL (v3.2)</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003166 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
3167state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003168 </li>
3169 </ul>
3170
3171 </td> <!-- entry_type -->
3172
3173 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08003174 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003175 </td>
3176
3177 <td class="entry_units">
3178 </td>
3179
3180 <td class="entry_range">
3181 </td>
3182
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003183 <td class="entry_hal_version">
3184 <p>3.<wbr/>2</p>
3185 </td>
3186
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003187 <td class="entry_tags">
3188 <ul class="entry_tags">
3189 <li><a href="#tag_BC">BC</a></li>
3190 </ul>
3191 </td>
3192
3193 </tr>
3194 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003195 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003196 </tr>
3197 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003198 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -08003199 <p>This entry is normally set to IDLE,<wbr/> or is not
3200included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08003201<p>When included and set to START,<wbr/> the camera device will trigger the
3202autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
3203<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
3204and return to its initial AF state.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003205<p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
3206single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
3207START for multiple captures in a row means restarting the AF operation over
3208and over again.<wbr/></p>
3209<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what the trigger means for each AF mode.<wbr/></p>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07003210<p>Using the autofocus trigger and the precapture trigger <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
3211simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
3212the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
3213focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
3214trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
3215changes to <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>,<wbr/> for example.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003216 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003218
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07003219 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003220 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07003221 </tr>
3222 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003223 <td class="entry_details" colspan="6">
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07003224 <p>The HAL must support triggering the AF trigger while an AE precapture trigger is active
3225(and vice versa),<wbr/> or at the same time as the AE trigger.<wbr/> It is acceptable for the HAL to
3226treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
3227AE trigger.<wbr/> Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
3228to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
3229 </td>
3230 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003231
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003232 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003233 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07003234
3235
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003236 <tr class="entry" id="controls_android.control.awbLock">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003237 <td class="entry_name
3238 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003239 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003240 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003241 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003242 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003243
Igor Murashkinb8dc8812013-07-17 16:29:34 -07003244 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003245
Igor Murashkin6c936c12014-05-13 14:51:49 -07003246
Igor Murashkinca256272014-10-02 15:27:09 -07003247 <span class="entry_type_hwlevel">[legacy] </span>
3248
Igor Murashkin6c936c12014-05-13 14:51:49 -07003249
3250
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003251 <ul class="entry_type_enum">
3252 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003253 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003254 <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
Igor Murashkina10351a2014-01-15 17:05:22 -08003255algorithm is free to update its parameters if in AUTO
3256mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003257 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08003258 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003259 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003260 <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
3261algorithm will not update its parameters while the lock
Zhijun He4412faa2014-02-06 00:28:22 -08003262is active.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08003263 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003264 </ul>
3265
3266 </td> <!-- entry_type -->
3267
3268 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07003269 <p>Whether auto-white balance (AWB) is currently locked to its
Zhijun He4412faa2014-02-06 00:28:22 -08003270latest calculated values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003271 </td>
3272
3273 <td class="entry_units">
3274 </td>
3275
3276 <td class="entry_range">
3277 </td>
3278
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003279 <td class="entry_hal_version">
3280 <p>3.<wbr/>2</p>
3281 </td>
3282
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003283 <td class="entry_tags">
3284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003285 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003286 </ul>
3287 </td>
3288
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003289 </tr>
3290 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003291 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003292 </tr>
3293 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003294 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003295 <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
3296and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
3297<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
3298get locked do not necessarily correspond to the settings that were present in the
3299latest capture result received from the camera device,<wbr/> since additional captures
3300and AWB updates may have occurred even before the result was sent out.<wbr/> If an
3301application is switching between automatic and manual control and wishes to eliminate
3302any flicker during the switch,<wbr/> the following procedure is recommended:</p>
3303<ol>
3304<li>Starting in auto-AWB mode:</li>
3305<li>Lock AWB</li>
3306<li>Wait for the first result to be output that has the AWB locked</li>
3307<li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
3308<li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
3309</ol>
3310<p>Note that AWB lock is only meaningful when
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003311<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
3312AWB is already fixed to a specific setting.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07003313<p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003314 </td>
3315 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003316
3317
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003318 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003319 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003320
3321
3322 <tr class="entry" id="controls_android.control.awbMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003323 <td class="entry_name
3324 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003325 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003326 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003327 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003328 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003329
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003330 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003331
Igor Murashkin6c936c12014-05-13 14:51:49 -07003332
Igor Murashkinca256272014-10-02 15:27:09 -07003333 <span class="entry_type_hwlevel">[legacy] </span>
3334
Igor Murashkin6c936c12014-05-13 14:51:49 -07003335
3336
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003337 <ul class="entry_type_enum">
3338 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003339 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003340 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
3341<p>The application-selected color transform matrix
Igor Murashkina10351a2014-01-15 17:05:22 -08003342(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
3343(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
3344device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003345 </li>
3346 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003347 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003348 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
3349<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3350and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3351For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3352values used by the camera device for the transform and gains
3353will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003354 </li>
3355 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003356 <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003357 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003358the camera device uses incandescent light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003359illumination for white balance.<wbr/></p>
3360<p>While the exact white balance transforms are up to the
3361camera device,<wbr/> they will approximately match the CIE
3362standard illuminant A.<wbr/></p>
3363<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3364and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3365For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3366values used by the camera device for the transform and gains
3367will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003368 </li>
3369 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003370 <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003371 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003372the camera device uses fluorescent light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003373illumination for white balance.<wbr/></p>
3374<p>While the exact white balance transforms are up to the
3375camera device,<wbr/> they will approximately match the CIE
3376standard illuminant F2.<wbr/></p>
3377<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3378and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3379For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3380values used by the camera device for the transform and gains
3381will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003382 </li>
3383 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003384 <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003385 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003386the camera device uses warm fluorescent light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003387illumination for white balance.<wbr/></p>
3388<p>While the exact white balance transforms are up to the
3389camera device,<wbr/> they will approximately match the CIE
3390standard illuminant F4.<wbr/></p>
3391<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3392and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3393For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3394values used by the camera device for the transform and gains
3395will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003396 </li>
3397 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003398 <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003399 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003400the camera device uses daylight light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003401illumination for white balance.<wbr/></p>
3402<p>While the exact white balance transforms are up to the
3403camera device,<wbr/> they will approximately match the CIE
3404standard illuminant D65.<wbr/></p>
3405<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3406and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3407For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3408values used by the camera device for the transform and gains
3409will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003410 </li>
3411 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003412 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003413 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003414the camera device uses cloudy daylight light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003415illumination for white balance.<wbr/></p>
3416<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3417and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3418For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3419values used by the camera device for the transform and gains
3420will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003421 </li>
3422 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003423 <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003424 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003425the camera device uses twilight light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003426illumination for white balance.<wbr/></p>
3427<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3428and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3429For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3430values used by the camera device for the transform and gains
3431will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003432 </li>
3433 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003434 <span class="entry_type_enum_name">SHADE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003435 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08003436the camera device uses shade light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003437illumination for white balance.<wbr/></p>
3438<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
3439and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
3440For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
3441values used by the camera device for the transform and gains
3442will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003443 </li>
3444 </ul>
3445
3446 </td> <!-- entry_type -->
3447
3448 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07003449 <p>Whether auto-white balance (AWB) is currently setting the color
Igor Murashkin0b080452013-12-27 15:30:25 -08003450transform fields,<wbr/> and what its illumination target
Zhijun He25b8ac52014-02-24 09:49:37 -08003451is.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003452 </td>
3453
3454 <td class="entry_units">
3455 </td>
3456
3457 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003458 <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 -08003459 </td>
3460
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003461 <td class="entry_hal_version">
3462 <p>3.<wbr/>2</p>
3463 </td>
3464
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003465 <td class="entry_tags">
3466 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003467 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003468 </ul>
3469 </td>
3470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003471 </tr>
3472 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003473 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003474 </tr>
3475 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003476 <td class="entry_details" colspan="6">
Zhijun He7787f7f2014-01-14 16:30:31 -08003477 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003478<p>When set to the ON mode,<wbr/> the camera device's auto-white balance
Zhijun He7787f7f2014-01-14 16:30:31 -08003479routine is enabled,<wbr/> overriding the application's selected
3480<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
Yin-Chia Yeh668e43c2014-11-12 11:38:10 -08003481<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/> Note that when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
3482is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
3483also set AWB mode to OFF or lock AWB by using <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> before
3484setting AE mode to OFF.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003485<p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
Zhijun He25b8ac52014-02-24 09:49:37 -08003486routine is disabled.<wbr/> The application manually controls the white
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08003487balance by <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>
Zhijun He7787f7f2014-01-14 16:30:31 -08003488and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003489<p>When set to any other modes,<wbr/> the camera device's auto-white
3490balance routine is disabled.<wbr/> The camera device uses each
3491particular illumination target for white balance
3492adjustment.<wbr/> The application's values for
3493<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
3494<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
3495<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003496 </td>
3497 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003498
3499
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003500 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003501 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003502
3503
3504 <tr class="entry" id="controls_android.control.awbRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003505 <td class="entry_name
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003506 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003507 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003508 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003509 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003510 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003511 <span class="entry_type_container">x</span>
3512
3513 <span class="entry_type_array">
3514 5 x area_count
3515 </span>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003516 <span class="entry_type_visibility"> [public as meteringRectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003517
3518
Igor Murashkin6c936c12014-05-13 14:51:49 -07003519
3520
3521
Igor Murashkinca256272014-10-02 15:27:09 -07003522
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003523 </td> <!-- entry_type -->
3524
3525 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003526 <p>List of metering areas to use for auto-white-balance illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003527estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003528 </td>
3529
3530 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003531 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003532 </td>
3533
3534 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003535 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
3536<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </td>
3538
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003539 <td class="entry_hal_version">
3540 <p>3.<wbr/>2</p>
3541 </td>
3542
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003543 <td class="entry_tags">
3544 <ul class="entry_tags">
3545 <li><a href="#tag_BC">BC</a></li>
3546 </ul>
3547 </td>
3548
3549 </tr>
3550 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003551 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003552 </tr>
3553 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003554 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003555 <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07003556Otherwise will always be present.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003557<p>The maximum number of regions supported by the device is determined by the value
3558of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07003559<p>The coordinate system is based on the active pixel array,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08003560with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003561(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3562<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Yin-Chia Yehdc182572014-05-14 14:05:20 -07003563bottom-right pixel in the active pixel array.<wbr/></p>
3564<p>The weight must range from 0 to 1000,<wbr/> and represents a weight
3565for every pixel in the area.<wbr/> This means that a large metering area
3566with the same weight as a smaller area will have more effect in
3567the metering result.<wbr/> Metering areas can partially overlap and the
3568camera device will add the weights in the overlap region.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003569<p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
3570only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
35710 weight is ignored.<wbr/></p>
3572<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
3573camera device.<wbr/></p>
3574<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
3575capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
3576region and output only the intersection rectangle as the metering region in the result
3577metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
3578not reported in the result metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003579 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003580 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003581
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003582 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003583 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003584 </tr>
3585 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003586 <td class="entry_details" colspan="6">
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07003587 <p>The HAL level representation of MeteringRectangle[] is a
3588int[5 * area_<wbr/>count].<wbr/>
3589Every five elements represent a metering region of
3590(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
3591The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
3592exclusive on xmax and ymax.<wbr/></p>
3593 </td>
3594 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003595
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003596 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003597 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003598
3599
3600 <tr class="entry" id="controls_android.control.captureIntent">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003601 <td class="entry_name
3602 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003603 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003604 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003605 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003606 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003607
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003608 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003609
Igor Murashkin6c936c12014-05-13 14:51:49 -07003610
Igor Murashkinca256272014-10-02 15:27:09 -07003611 <span class="entry_type_hwlevel">[legacy] </span>
3612
Igor Murashkin6c936c12014-05-13 14:51:49 -07003613
3614
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003615 <ul class="entry_type_enum">
3616 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003617 <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003618 <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
3619categories.<wbr/> The camera device will default to preview-like
Igor Murashkina10351a2014-01-15 17:05:22 -08003620behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003621 </li>
3622 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003623 <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003624 <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
3625<p>The precapture trigger may be used to start off a metering
3626w/<wbr/>flash sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003627 </li>
3628 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003629 <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003630 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003631use case.<wbr/></p>
3632<p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003633 </li>
3634 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003635 <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003636 <span class="entry_type_enum_notes"><p>This request is for a video recording
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003637use case.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003638 </li>
3639 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003640 <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003641 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003642image while recording video) use case.<wbr/></p>
3643<p>The camera device should take the highest-quality image
3644possible (given the other settings) without disrupting the
Eino-Ville Talvala0f0d7952014-10-02 18:27:34 -07003645frame rate of video recording.<wbr/> </p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003646 </li>
3647 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003648 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003649 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
3650application will stream full-resolution images and
3651reprocess one or several later for a final
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003652capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003653 </li>
Zhijun Hee713fa62014-04-09 10:55:50 -07003654 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003655 <span class="entry_type_enum_name">MANUAL (v3.2)</span>
Zhijun Hee713fa62014-04-09 10:55:50 -07003656 <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003657the applications want to directly control the capture parameters.<wbr/></p>
3658<p>For example,<wbr/> the application may wish to manually control
3659<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> etc.<wbr/></p></span>
Zhijun Hee713fa62014-04-09 10:55:50 -07003660 </li>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -08003661 <li>
3662 <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
3663 <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
3664the application will use camera and inertial sensor data to
3665locate and track objects in the world.<wbr/></p>
3666<p>The camera device auto-exposure routine will limit the exposure time
3667of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
3668 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003669 </ul>
3670
3671 </td> <!-- entry_type -->
3672
3673 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08003674 <p>Information to the camera device 3A (auto-exposure,<wbr/>
3675auto-focus,<wbr/> auto-white balance) routines about the purpose
3676of this capture,<wbr/> to help the camera device to decide optimal 3A
3677strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003678 </td>
3679
3680 <td class="entry_units">
3681 </td>
3682
3683 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003684 </td>
3685
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003686 <td class="entry_hal_version">
3687 <p>3.<wbr/>2</p>
3688 </td>
3689
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003690 <td class="entry_tags">
3691 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003692 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003693 </ul>
3694 </td>
3695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003696 </tr>
3697 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003698 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003699 </tr>
3700 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003701 <td class="entry_details" colspan="6">
Zhijun Hee713fa62014-04-09 10:55:50 -07003702 <p>This control (except for MANUAL) is only effective if
3703<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -08003704<p>All intents are supported by all devices,<wbr/> except that:
3705 * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
3706PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
3707 * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
3708MANUAL_<wbr/>SENSOR.<wbr/>
3709 * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
3710MOTION_<wbr/>TRACKING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003711 </td>
3712 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003713
3714
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003715 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003716 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003717
3718
3719 <tr class="entry" id="controls_android.control.effectMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003720 <td class="entry_name
3721 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003722 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003723 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003724 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003725 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003726
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003727 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003728
Igor Murashkin6c936c12014-05-13 14:51:49 -07003729
Igor Murashkinca256272014-10-02 15:27:09 -07003730 <span class="entry_type_hwlevel">[legacy] </span>
3731
Igor Murashkin6c936c12014-05-13 14:51:49 -07003732
3733
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003734 <ul class="entry_type_enum">
3735 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003736 <span class="entry_type_enum_name">OFF (v3.2)</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003737 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003738 </li>
3739 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003740 <span class="entry_type_enum_name">MONO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003741 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003742 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003743a single color.<wbr/></p>
3744<p>This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003745 </li>
3746 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003747 <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003748 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003749 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
3750are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003751 </li>
3752 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003753 <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003754 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003755 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
3756image is wholly or partially reversed in
3757tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003758 </li>
3759 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003760 <span class="entry_type_enum_name">SEPIA (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003761 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003762 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
3763gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003764 </li>
3765 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003766 <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003767 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003768 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
3769discrete regions of tone rather than a continuous
3770gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003771 </li>
3772 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003773 <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003774 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003775 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
3776as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003777 </li>
3778 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003779 <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003780 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003781 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
3782as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003783 </li>
3784 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003785 <span class="entry_type_enum_name">AQUA (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003786 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003787 <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 -08003788 </li>
3789 </ul>
3790
3791 </td> <!-- entry_type -->
3792
3793 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003794 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003795 </td>
3796
3797 <td class="entry_units">
3798 </td>
3799
3800 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003801 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003802 </td>
3803
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003804 <td class="entry_hal_version">
3805 <p>3.<wbr/>2</p>
3806 </td>
3807
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003808 <td class="entry_tags">
3809 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003810 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003811 </ul>
3812 </td>
3813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003814 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003815 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003816 <th class="th_details" colspan="6">Details</th>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003817 </tr>
3818 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003819 <td class="entry_details" colspan="6">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003820 <p>When this mode is set,<wbr/> a color effect will be applied
3821to images produced by the camera device.<wbr/> The interpretation
3822and implementation of these color effects is left to the
3823implementor of the camera device,<wbr/> and should not be
3824depended on to be consistent (or present) across all
3825devices.<wbr/></p>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08003826 </td>
3827 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003828
3829
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003830 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003831 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003832
3833
3834 <tr class="entry" id="controls_android.control.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003835 <td class="entry_name
3836 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003837 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003840 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003842 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003843
Igor Murashkin6c936c12014-05-13 14:51:49 -07003844
Igor Murashkinca256272014-10-02 15:27:09 -07003845 <span class="entry_type_hwlevel">[legacy] </span>
3846
Igor Murashkin6c936c12014-05-13 14:51:49 -07003847
3848
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003849 <ul class="entry_type_enum">
3850 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003851 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003852 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
3853<p>All control by the device's metering and focusing (3A)
3854routines is disabled,<wbr/> and no other settings in
3855android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
3856<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
3857device to select post-processing values for processing
3858blocks that do not allow for manual control,<wbr/> or are not
3859exposed by the camera API.<wbr/></p>
3860<p>However,<wbr/> the camera device's 3A routines may continue to
3861collect statistics and update their internal state so that
3862when control is switched to AUTO mode,<wbr/> good control values
3863can be immediately applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003864 </li>
3865 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003866 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003867 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
3868<p>Manual control of capture parameters is disabled.<wbr/> All
Igor Murashkina10351a2014-01-15 17:05:22 -08003869controls in android.<wbr/>control.<wbr/>* besides sceneMode take
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003870effect.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003871 </li>
3872 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003873 <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08003874 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003875 <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
3876<p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
3877control.<wbr/>afMode controls; the camera device will ignore
3878those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
Zhijun He1a71d0d2015-06-16 19:44:18 -07003879FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still active.<wbr/>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07003880This setting can only be used if scene mode is supported (i.<wbr/>e.<wbr/>
Zhijun He1a71d0d2015-06-16 19:44:18 -07003881<a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003882contain some modes other than DISABLED).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003883 </li>
Zhijun He4412faa2014-02-06 00:28:22 -08003884 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003885 <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08003886 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He4412faa2014-02-06 00:28:22 -08003887 <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
3888used by camera device background auto-exposure,<wbr/> auto-white balance and
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003889auto-focus algorithms (3A) to update their statistics.<wbr/></p>
3890<p>Specifically,<wbr/> the 3A routines are locked to the last
3891values set from a request with AUTO,<wbr/> OFF,<wbr/> or
3892USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
3893collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
3894discarded by the camera device.<wbr/></p></span>
Zhijun He4412faa2014-02-06 00:28:22 -08003895 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003896 </ul>
3897
3898 </td> <!-- entry_type -->
3899
3900 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003901 <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
Zhijun He25b8ac52014-02-24 09:49:37 -08003902routines.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003903 </td>
3904
3905 <td class="entry_units">
3906 </td>
3907
3908 <td class="entry_range">
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08003909 <p><a href="#static_android.control.availableModes">android.<wbr/>control.<wbr/>available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003910 </td>
3911
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003912 <td class="entry_hal_version">
3913 <p>3.<wbr/>2</p>
3914 </td>
3915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003916 <td class="entry_tags">
3917 <ul class="entry_tags">
3918 <li><a href="#tag_BC">BC</a></li>
3919 </ul>
3920 </td>
3921
3922 </tr>
3923 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003924 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003925 </tr>
3926 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003927 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07003928 <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08003929by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08003930capture parameters itself.<wbr/></p>
3931<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003932android.<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 -08003933<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003934android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device
3935implements one of the scene mode settings (such as ACTION,<wbr/>
3936SUNSET,<wbr/> or PARTY) as it wishes.<wbr/> The camera device scene mode
39373A settings are provided by <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">capture results</a>.<wbr/></p>
Zhijun He4412faa2014-02-06 00:28:22 -08003938<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
3939is that this frame will not be used by camera device background 3A statistics
3940update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
3941where the application doesn't want a 3A manual control capture to affect
3942the subsequent auto 3A capture results.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003943 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003944 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003945
3946
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08003947 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003948 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003949
3950
3951 <tr class="entry" id="controls_android.control.sceneMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07003952 <td class="entry_name
3953 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003954 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003955 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003956 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003957 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003958
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003959 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003960
Igor Murashkin6c936c12014-05-13 14:51:49 -07003961
Igor Murashkinca256272014-10-02 15:27:09 -07003962 <span class="entry_type_hwlevel">[legacy] </span>
3963
Igor Murashkin6c936c12014-05-13 14:51:49 -07003964
3965
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003966 <ul class="entry_type_enum">
3967 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003968 <span class="entry_type_enum_name">DISABLED (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003969 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08003970 <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 -08003971 </li>
3972 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003973 <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08003974 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
3975detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003976auto-exposure routines.<wbr/></p>
3977<p>If face detection statistics are disabled
3978(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/>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08003979this should still operate correctly (but will not return
3980face detection statistics to the framework).<wbr/></p>
3981<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08003982<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>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08003983remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003984 </li>
3985 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003986 <span class="entry_type_enum_name">ACTION (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003987 <span class="entry_type_enum_optional">[optional]</span>
3988 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
3989<p>Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003990 </li>
3991 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003992 <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003993 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08003994 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003995 </li>
3996 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08003997 <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07003998 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08003999 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004000 </li>
4001 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004002 <span class="entry_type_enum_name">NIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004003 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004004 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004005 </li>
4006 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004007 <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004008 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004009 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
4010settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004011 </li>
4012 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004013 <span class="entry_type_enum_name">THEATRE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004014 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004015 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
4016remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004017 </li>
4018 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004019 <span class="entry_type_enum_name">BEACH (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004020 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004021 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004022 </li>
4023 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004024 <span class="entry_type_enum_name">SNOW (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004025 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004026 <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 -08004027 </li>
4028 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004029 <span class="entry_type_enum_name">SUNSET (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004030 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004031 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004032 </li>
4033 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004034 <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004035 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004036 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
4037device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004038 </li>
4039 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004040 <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004041 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004042 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004043 </li>
4044 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004045 <span class="entry_type_enum_name">SPORTS (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004046 <span class="entry_type_enum_optional">[optional]</span>
4047 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
4048<p>Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004049 </li>
4050 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004051 <span class="entry_type_enum_name">PARTY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004052 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004053 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
4054people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004055 </li>
4056 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004057 <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004058 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004059 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
4060is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004061 </li>
4062 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004063 <span class="entry_type_enum_name">BARCODE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004064 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004065 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
4066for use by camera applications that wish to read the
4067barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004068 </li>
Zhijun He17f2d2c2014-06-10 18:21:34 -07004069 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004070 <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
Zhijun He7defc682015-05-22 17:04:15 -07004071 <span class="entry_type_enum_deprecated">[deprecated]</span>
Zhijun He17f2d2c2014-06-10 18:21:34 -07004072 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvalaf55c1a82015-06-30 13:32:09 -07004073 <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
4074and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>
Zhijun He7defc682015-05-22 17:04:15 -07004075for high speed video recording.<wbr/></p>
4076<p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
Zhijun He17f2d2c2014-06-10 18:21:34 -07004077<p>The supported high speed video sizes and fps ranges are specified in
4078<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
4079output frame rates,<wbr/> the application is only allowed to select video size
4080and fps range combinations listed in this static metadata.<wbr/> The fps range
4081can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
4082<p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
4083ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
4084controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
4085and post-processing parameters is possible.<wbr/> All other controls operate the
4086same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
4087android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
4088<ul>
4089<li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
4090<li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
4091<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
4092<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
4093<li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
4094<li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
4095<li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
4096<li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
4097<li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
4098<li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
4099</ul>
4100<p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
4101<ul>
4102<li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (automatic flash for still capture will not work since aeMode is ON)</li>
4103<li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
4104<li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
4105<li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
4106</ul>
4107<p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
4108be lower than what camera can output,<wbr/> depending on the destination Surfaces for
4109the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
4110the application need check if the video encoder is capable of supporting the
4111high frame rate for a given video size,<wbr/> or it will end up with lower recording
4112frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
4113rate will be bounded by the screen refresh rate.<wbr/></p>
4114<p>The camera device will only support up to 2 output high speed streams
4115(processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
4116in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
4117<ul>
4118<li>The application created no more than maxNumHighSpeedStreams processed non-stalling
4119format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
4120min(2,<wbr/> <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>[Processed (but not-stalling)]).<wbr/></li>
4121<li>The stream sizes are selected from the sizes reported by
4122<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
4123<li>No processed non-stalling or raw streams are configured.<wbr/></li>
4124</ul>
4125<p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
4126<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> will be ignored by the camera device,<wbr/>
4127the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
4128and the returned capture result metadata will give the fps range choosen
4129by the camera device.<wbr/></p>
4130<p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
4131reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
4132the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
4133 </li>
Ruben Brunk17b1dd52014-08-28 17:16:38 -07004134 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004135 <span class="entry_type_enum_name">HDR (v3.2)</span>
Ruben Brunk17b1dd52014-08-28 17:16:38 -07004136 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala14cd0982014-12-05 10:46:45 -08004137 <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
4138<p>In this scene mode,<wbr/> the camera device captures images
4139that keep a larger range of scene illumination levels
4140visible in the final image.<wbr/> For example,<wbr/> when taking a
4141picture of a object in front of a bright window,<wbr/> both
4142the object and the scene through the window may be
4143visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
4144one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
4145HDR mode generally takes much longer to capture a single
4146image,<wbr/> has no user control,<wbr/> and may have other artifacts
4147depending on the HDR method used.<wbr/></p>
4148<p>Therefore,<wbr/> HDR captures operate at a much slower rate
4149than regular captures.<wbr/></p>
4150<p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
4151is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
4152STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
4153using a high dynamic range capture technique.<wbr/> On LEGACY
4154devices,<wbr/> captures that target a JPEG-format output will
4155be captured with HDR,<wbr/> and the capture intent is not
4156relevant.<wbr/></p>
4157<p>The HDR capture may involve the device capturing a burst
4158of images internally and combining them into one,<wbr/> or it
4159may involve the device using specialized high dynamic
4160range capture hardware.<wbr/> In all cases,<wbr/> a single image is
4161produced in response to a capture request submitted
4162while in HDR mode.<wbr/></p>
4163<p>Since substantial post-processing is generally needed to
Eino-Ville Talvala1f883d42016-04-04 10:47:43 -07004164produce an HDR image,<wbr/> only YUV,<wbr/> PRIVATE,<wbr/> and JPEG
4165outputs are supported for LIMITED/<wbr/>FULL device HDR
4166captures,<wbr/> and only JPEG outputs are supported for LEGACY
4167HDR captures.<wbr/> Using a RAW output for HDR capture is not
4168supported.<wbr/></p>
4169<p>Some devices may also support always-on HDR,<wbr/> which
4170applies HDR processing at full frame rate.<wbr/> For these
4171devices,<wbr/> intents other than STILL_<wbr/>CAPTURE will also
4172produce an HDR output with no frame rate impact compared
4173to normal operation,<wbr/> though the quality may be lower
4174than for STILL_<wbr/>CAPTURE intents.<wbr/></p>
4175<p>If SCENE_<wbr/>MODE_<wbr/>HDR is used with unsupported output types
4176or capture intents,<wbr/> the images captured will be as if
4177the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
Ruben Brunk17b1dd52014-08-28 17:16:38 -07004178 </li>
Zhijun He1a71d0d2015-06-16 19:44:18 -07004179 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004180 <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
Zhijun He1a71d0d2015-06-16 19:44:18 -07004181 <span class="entry_type_enum_optional">[optional]</span>
4182 <span class="entry_type_enum_hidden">[hidden]</span>
4183 <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
Andy Huibersce1319b2015-07-11 08:36:42 -07004184device will choose higher sensitivity values (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
Zhijun He1a71d0d2015-06-16 19:44:18 -07004185under low light conditions.<wbr/></p>
4186<p>The camera device may be tuned to expose the images in a reduced
4187sensitivity range to produce the best quality images.<wbr/> For example,<wbr/>
4188if the <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> gives range of [100,<wbr/> 1600],<wbr/>
4189the camera device auto-exposure routine tuning process may limit the actual
Andy Huibersce1319b2015-07-11 08:36:42 -07004190exposure sensitivity range to [100,<wbr/> 1200] to ensure that the noise level isn't
4191exessive in order to preserve the image quality.<wbr/> Under this situation,<wbr/> the image under
Zhijun He1a71d0d2015-06-16 19:44:18 -07004192low light may be under-exposed when the sensor max exposure time (bounded by the
4193<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of the
Andy Huibersce1319b2015-07-11 08:36:42 -07004194ON_<wbr/>* modes) and effective max sensitivity are reached.<wbr/> This scene mode allows the
Zhijun He1a71d0d2015-06-16 19:44:18 -07004195camera device auto-exposure routine to increase the sensitivity up to the max
4196sensitivity specified by <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> when the scene is too
4197dark and the max exposure time is reached.<wbr/> The captured images may be noisier
Andy Huibersce1319b2015-07-11 08:36:42 -07004198compared with the images captured in normal FACE_<wbr/>PRIORITY mode; therefore,<wbr/> it is
Zhijun He1a71d0d2015-06-16 19:44:18 -07004199recommended that the application only use this scene mode when it is capable of
4200reducing the noise level of the captured images.<wbr/></p>
4201<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
4202<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>
4203remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
4204 </li>
Yin-Chia Yehff19a622016-03-09 14:44:14 -08004205 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004206 <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
Yin-Chia Yehff19a622016-03-09 14:44:14 -08004207 <span class="entry_type_enum_optional">[optional]</span>
4208 <span class="entry_type_enum_hidden">[hidden]</span>
4209 <span class="entry_type_enum_value">100</span>
4210 <span class="entry_type_enum_notes"><p>Scene mode values within the range of
4211<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
4212customized scene modes.<wbr/></p></span>
4213 </li>
4214 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004215 <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
Yin-Chia Yehff19a622016-03-09 14:44:14 -08004216 <span class="entry_type_enum_optional">[optional]</span>
4217 <span class="entry_type_enum_hidden">[hidden]</span>
4218 <span class="entry_type_enum_value">127</span>
4219 <span class="entry_type_enum_notes"><p>Scene mode values within the range of
4220<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
4221customized scene modes.<wbr/></p></span>
4222 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004223 </ul>
4224
4225 </td> <!-- entry_type -->
4226
4227 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004228 <p>Control for which scene mode is currently active.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004229 </td>
4230
4231 <td class="entry_units">
4232 </td>
4233
4234 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004235 <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 -08004236 </td>
4237
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004238 <td class="entry_hal_version">
4239 <p>3.<wbr/>2</p>
4240 </td>
4241
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004242 <td class="entry_tags">
4243 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004244 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004245 </ul>
4246 </td>
4247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004248 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004249 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004250 <th class="th_details" colspan="6">Details</th>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004251 </tr>
4252 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004253 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004254 <p>Scene modes are custom camera modes optimized for a certain set of conditions and
4255capture settings.<wbr/></p>
4256<p>This is the mode that that is active when
Zhijun He1a71d0d2015-06-16 19:44:18 -07004257<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/> these modes will
4258disable <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/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
4259while in use.<wbr/></p>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004260<p>The interpretation and implementation of these scene modes is left
4261to the implementor of the camera device.<wbr/> Their behavior will not be
4262consistent across all devices,<wbr/> and any given device may only implement
4263a subset of these modes.<wbr/></p>
4264 </td>
4265 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004266
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004267 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004268 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004269 </tr>
4270 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004271 <td class="entry_details" colspan="6">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004272 <p>HAL implementations that include scene modes are expected to provide
4273the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
4274<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
4275<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004276<p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/> the
4277HAL must list supported video size and fps range in
4278<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/> 1280x720,<wbr/>
4279if the HAL has two different sensor configurations for normal streaming mode and high
4280speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture requests,<wbr/> the
4281HAL may have to switch between different sensor modes.<wbr/> This mode is deprecated in legacy
4282HAL3.<wbr/>3,<wbr/> to support high speed video recording,<wbr/> please implement
Zhijun He7defc682015-05-22 17:04:15 -07004283<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a> and CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO
4284capbility defined in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08004285 </td>
4286 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004287
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004288 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004289 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004290
4291
4292 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004293 <td class="entry_name
4294 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004295 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004296 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004297 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004298 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004299
Zhijun He036b91c2014-04-29 15:24:16 -07004300 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004301
Igor Murashkin6c936c12014-05-13 14:51:49 -07004302
Igor Murashkinca256272014-10-02 15:27:09 -07004303 <span class="entry_type_hwlevel">[legacy] </span>
4304
Igor Murashkin6c936c12014-05-13 14:51:49 -07004305
4306
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004307 <ul class="entry_type_enum">
4308 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004309 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004310 <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004311 </li>
4312 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004313 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004314 <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004315 </li>
4316 </ul>
4317
4318 </td> <!-- entry_type -->
4319
4320 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004321 <p>Whether video stabilization is
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07004322active.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004323 </td>
4324
4325 <td class="entry_units">
4326 </td>
4327
4328 <td class="entry_range">
4329 </td>
4330
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004331 <td class="entry_hal_version">
4332 <p>3.<wbr/>2</p>
4333 </td>
4334
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004335 <td class="entry_tags">
4336 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004337 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004338 </ul>
4339 </td>
4340
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004341 </tr>
4342 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004343 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004344 </tr>
4345 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004346 <td class="entry_details" colspan="6">
Jianing Wei2d950892015-09-29 14:01:43 -07004347 <p>Video stabilization automatically warps images from
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004348the camera in order to stabilize motion between consecutive frames.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07004349<p>If enabled,<wbr/> video stabilization can modify the
Zhijun He91449c82014-06-12 10:43:32 -07004350<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004351<p>Switching between different video stabilization modes may take several
4352frames to initialize,<wbr/> the camera device will report the current mode
4353in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
4354the video stabilization modes in the first several capture results may
4355still be "OFF",<wbr/> and it will become "ON" when the initialization is
4356done.<wbr/></p>
Jianing Wei2d950892015-09-29 14:01:43 -07004357<p>In addition,<wbr/> not all recording sizes or frame rates may be supported for
4358stabilization by a device that reports stabilization support.<wbr/> It is guaranteed
4359that an output targeting a MediaRecorder or MediaCodec will be stabilized if
4360the recording resolution is less than or equal to 1920 x 1080 (width less than
4361or equal to 1920,<wbr/> height less than or equal to 1080),<wbr/> and the recording
4362frame rate is less than or equal to 30fps.<wbr/> At other sizes,<wbr/> the CaptureResult
4363<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
4364OFF if the recording output is not stabilized,<wbr/> or if there are no output
4365Surface types that can be stabilized.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004366<p>If a camera device supports both this mode and OIS
4367(<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
4368produce undesirable interaction,<wbr/> so it is recommended not to enable
4369both at the same time.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004370 </td>
4371 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004372
4373
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004374 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004375 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004376
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004377
4378 <tr class="entry" id="controls_android.control.postRawSensitivityBoost">
4379 <td class="entry_name
4380 " rowspan="3">
4381 android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost
4382 </td>
4383 <td class="entry_type">
4384 <span class="entry_type_name">int32</span>
4385
4386 <span class="entry_type_visibility"> [public]</span>
4387
4388
4389
4390
4391
4392
4393 </td> <!-- entry_type -->
4394
4395 <td class="entry_description">
Yin-Chia Yeh84a51a42016-04-11 16:37:49 -07004396 <p>The amount of additional sensitivity boost applied to output images
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004397after RAW sensor data is captured.<wbr/></p>
4398 </td>
4399
4400 <td class="entry_units">
4401 ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
4402 </td>
4403
4404 <td class="entry_range">
4405 <p><a href="#static_android.control.postRawSensitivityBoostRange">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range</a></p>
4406 </td>
4407
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004408 <td class="entry_hal_version">
4409 <p>3.<wbr/>2</p>
4410 </td>
4411
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004412 <td class="entry_tags">
4413 </td>
4414
4415 </tr>
4416 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004417 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004418 </tr>
4419 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004420 <td class="entry_details" colspan="6">
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004421 <p>Some camera devices support additional digital sensitivity boosting in the
4422camera processing pipeline after sensor RAW image is captured.<wbr/>
4423Such a boost will be applied to YUV/<wbr/>JPEG format output images but will not
4424have effect on RAW output formats like RAW_<wbr/>SENSOR,<wbr/> RAW10,<wbr/> RAW12 or RAW_<wbr/>OPAQUE.<wbr/></p>
Yin-Chia Yeh84a51a42016-04-11 16:37:49 -07004425<p>This key will be <code>null</code> for devices that do not support any RAW format
4426outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
4427present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
4428list <code>100</code> in this key.<wbr/></p>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004429<p>If the camera device cannot apply the exact boost requested,<wbr/> it will reduce the
4430boost to the nearest supported value.<wbr/>
4431The final boost value used will be available in the output capture result.<wbr/></p>
4432<p>For devices that support post RAW sensitivity boost,<wbr/> the YUV/<wbr/>JPEG output images
4433of such device will have the total sensitivity of
Yin-Chia Yeh5a12e622016-01-26 13:26:56 -08004434<code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> * <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> /<wbr/> 100</code>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004435The sensitivity of RAW format images will always be <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></code></p>
4436<p>This control is only effective if <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> is set to
4437OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
4438 </td>
4439 </tr>
4440
4441
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004442 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08004443 <!-- end of entry -->
4444
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004445
4446 <tr class="entry" id="controls_android.control.enableZsl">
4447 <td class="entry_name
4448 " rowspan="5">
4449 android.<wbr/>control.<wbr/>enable<wbr/>Zsl
4450 </td>
4451 <td class="entry_type">
4452 <span class="entry_type_name entry_type_name_enum">byte</span>
4453
4454 <span class="entry_type_visibility"> [public as boolean]</span>
4455
4456
4457
4458
4459
4460 <ul class="entry_type_enum">
4461 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004462 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004463 <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
4464after previous requests.<wbr/></p></span>
4465 </li>
4466 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08004467 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004468 <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
4469captured before previous requests.<wbr/></p></span>
4470 </li>
4471 </ul>
4472
4473 </td> <!-- entry_type -->
4474
4475 <td class="entry_description">
4476 <p>Allow camera device to enable zero-shutter-lag mode for requests with
4477<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE.<wbr/></p>
4478 </td>
4479
4480 <td class="entry_units">
4481 </td>
4482
4483 <td class="entry_range">
4484 </td>
4485
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004486 <td class="entry_hal_version">
4487 <p>3.<wbr/>2</p>
4488 </td>
4489
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004490 <td class="entry_tags">
4491 </td>
4492
4493 </tr>
4494 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004495 <th class="th_details" colspan="6">Details</th>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004496 </tr>
4497 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004498 <td class="entry_details" colspan="6">
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004499 <p>If enableZsl is <code>true</code>,<wbr/> the camera device may enable zero-shutter-lag mode for requests with
4500STILL_<wbr/>CAPTURE capture intent.<wbr/> The camera device may use images captured in the past to
4501produce output images for a zero-shutter-lag request.<wbr/> The result metadata including the
4502<a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> reflects the source frames used to produce output images.<wbr/>
4503Therefore,<wbr/> the contents of the output images and the result metadata may be out of order
4504compared to previous regular requests.<wbr/> enableZsl does not affect requests with other
4505capture intents.<wbr/></p>
4506<p>For example,<wbr/> when requests are submitted in the following order:
4507 Request A: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is PREVIEW
4508 Request B: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is STILL_<wbr/>CAPTURE</p>
4509<p>The output images for request B may have contents captured before the output images for
4510request A,<wbr/> and the result metadata for request B may be older than the result metadata for
4511request A.<wbr/></p>
Chien-Yu Chen47272802017-04-18 15:17:15 -07004512<p>Note that when enableZsl is <code>true</code>,<wbr/> it is not guaranteed to get output images captured in
4513the past for requests with STILL_<wbr/>CAPTURE capture intent.<wbr/></p>
4514<p>For applications targeting SDK versions O and newer,<wbr/> the value of enableZsl in
4515TEMPLATE_<wbr/>STILL_<wbr/>CAPTURE template may be <code>true</code>.<wbr/> The value in other templates is always
4516<code>false</code> if present.<wbr/></p>
4517<p>For applications targeting SDK versions older than O,<wbr/> the value of enableZsl in all
4518capture templates is always <code>false</code> if present.<wbr/></p>
Chien-Yu Chen853e0dd2017-05-03 12:17:47 -07004519<p>For application-operated ZSL,<wbr/> use CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004520 </td>
4521 </tr>
4522
4523 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004524 <th class="th_details" colspan="6">HAL Implementation Details</th>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004525 </tr>
4526 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004527 <td class="entry_details" colspan="6">
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004528 <p>It is valid for HAL to produce regular output images for requests with STILL_<wbr/>CAPTURE
4529capture intent.<wbr/></p>
4530 </td>
4531 </tr>
4532
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004533 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08004534 <!-- end of entry -->
4535
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004536
4537
4538 <!-- end of kind -->
4539 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004540 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004541
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004542 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004543 <tr>
4544 <th class="th_name">Property Name</th>
4545 <th class="th_type">Type</th>
4546 <th class="th_description">Description</th>
4547 <th class="th_units">Units</th>
4548 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004549 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004550 <th class="th_tags">Tags</th>
4551 </tr>
4552 </thead>
4553
4554 <tbody>
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004566 <td class="entry_name
4567 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004568 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004569 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004570 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004571 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004572 <span class="entry_type_container">x</span>
4573
4574 <span class="entry_type_array">
4575 n
4576 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07004577 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07004578
4579
Igor Murashkinca256272014-10-02 15:27:09 -07004580 <span class="entry_type_hwlevel">[legacy] </span>
4581
Igor Murashkin6c936c12014-05-13 14:51:49 -07004582
Igor Murashkin0b080452013-12-27 15:30:25 -08004583 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004584
4585
4586 </td> <!-- entry_type -->
4587
4588 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004589 <p>List of auto-exposure antibanding modes for <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> that are
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08004590supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004591 </td>
4592
4593 <td class="entry_units">
4594 </td>
4595
4596 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004597 <p>Any value listed in <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004598 </td>
4599
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004600 <td class="entry_hal_version">
4601 <p>3.<wbr/>2</p>
4602 </td>
4603
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004604 <td class="entry_tags">
Zhijun He5fb671c2014-05-21 17:51:05 -07004605 <ul class="entry_tags">
4606 <li><a href="#tag_BC">BC</a></li>
4607 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004608 </td>
4609
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004610 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08004611 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004612 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08004613 </tr>
4614 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004615 <td class="entry_details" colspan="6">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08004616 <p>Not all of the auto-exposure anti-banding modes may be
4617supported by a given camera device.<wbr/> This field lists the
4618valid anti-banding modes that the application may request
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004619for this camera device with the
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08004620<a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> control.<wbr/></p>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08004621 </td>
4622 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004623
4624
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004625 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004626 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004627
4628
4629 <tr class="entry" id="static_android.control.aeAvailableModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004630 <td class="entry_name
4631 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004632 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004633 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004634 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004635 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004636 <span class="entry_type_container">x</span>
4637
4638 <span class="entry_type_array">
4639 n
4640 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07004641 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07004642
4643
Igor Murashkinca256272014-10-02 15:27:09 -07004644 <span class="entry_type_hwlevel">[legacy] </span>
4645
Igor Murashkin6c936c12014-05-13 14:51:49 -07004646
Igor Murashkin0b080452013-12-27 15:30:25 -08004647 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004648
4649
4650 </td> <!-- entry_type -->
4651
4652 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004653 <p>List of auto-exposure modes for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> that are supported by this camera
4654device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004655 </td>
4656
4657 <td class="entry_units">
4658 </td>
4659
4660 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004661 <p>Any value listed in <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004662 </td>
4663
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004664 <td class="entry_hal_version">
4665 <p>3.<wbr/>2</p>
4666 </td>
4667
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004668 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08004669 <ul class="entry_tags">
4670 <li><a href="#tag_BC">BC</a></li>
4671 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004672 </td>
4673
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004674 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08004675 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004676 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08004677 </tr>
4678 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004679 <td class="entry_details" colspan="6">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08004680 <p>Not all the auto-exposure modes may be supported by a
4681given camera device,<wbr/> especially if no flash unit is
4682available.<wbr/> This entry lists the valid modes for
4683<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07004684<p>All camera devices support ON,<wbr/> and all camera devices with flash
4685units support ON_<wbr/>AUTO_<wbr/>FLASH and ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -08004686<p>FULL mode camera devices always support OFF mode,<wbr/>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08004687which enables application control of camera exposure time,<wbr/>
4688sensitivity,<wbr/> and frame duration.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07004689<p>LEGACY mode camera devices never support OFF mode.<wbr/>
4690LIMITED mode devices support OFF if they support the MANUAL_<wbr/>SENSOR
4691capability.<wbr/></p>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08004692 </td>
4693 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004694
4695
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004696 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004697 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004698
4699
4700 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004701 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004702 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004703 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004704 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004705 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004706 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004707 <span class="entry_type_container">x</span>
4708
4709 <span class="entry_type_array">
4710 2 x n
4711 </span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07004712 <span class="entry_type_visibility"> [public as rangeInt]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07004713
4714
Igor Murashkinca256272014-10-02 15:27:09 -07004715 <span class="entry_type_hwlevel">[legacy] </span>
4716
Igor Murashkin6c936c12014-05-13 14:51:49 -07004717
Igor Murashkin0b080452013-12-27 15:30:25 -08004718 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004719
4720
4721 </td> <!-- entry_type -->
4722
4723 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004724 <p>List of frame rate ranges for <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> supported by
4725this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004726 </td>
4727
4728 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004729 Frames per second (FPS)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004730 </td>
4731
4732 <td class="entry_range">
4733 </td>
4734
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004735 <td class="entry_hal_version">
4736 <p>3.<wbr/>2</p>
4737 </td>
4738
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004739 <td class="entry_tags">
Zhijun He5fb671c2014-05-21 17:51:05 -07004740 <ul class="entry_tags">
4741 <li><a href="#tag_BC">BC</a></li>
4742 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004743 </td>
4744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004745 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004746 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004747 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004748 </tr>
4749 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004750 <td class="entry_details" colspan="6">
Yin-Chia Yeh11aee3e2015-05-21 11:23:48 -07004751 <p>For devices at the LEGACY level or above:</p>
4752<ul>
Yin-Chia Yeh30bf75b2015-11-20 15:16:05 -08004753<li>
4754<p>For constant-framerate recording,<wbr/> for each normal
4755<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>,<wbr/> that is,<wbr/> a
Yin-Chia Yeh11aee3e2015-05-21 11:23:48 -07004756<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a> that has
4757<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#quality">quality</a> in
4758the range [<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#QUALITY_LOW">QUALITY_<wbr/>LOW</a>,<wbr/>
4759<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#QUALITY_2160P">QUALITY_<wbr/>2160P</a>],<wbr/> if the profile is
4760supported by the device and has
4761<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#videoFrameRate">videoFrameRate</a> <code>x</code>,<wbr/> this list will
Yin-Chia Yeh30bf75b2015-11-20 15:16:05 -08004762always include (<code>x</code>,<wbr/><code>x</code>).<wbr/></p>
4763</li>
4764<li>
4765<p>Also,<wbr/> a camera device must either not support any
4766<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>,<wbr/>
4767or support at least one
4768normal <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a> that has
4769<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#videoFrameRate">videoFrameRate</a> <code>x</code> &gt;= 24.<wbr/></p>
4770</li>
Yin-Chia Yeh11aee3e2015-05-21 11:23:48 -07004771</ul>
4772<p>For devices at the LIMITED level or above:</p>
4773<ul>
4774<li>For YUV_<wbr/>420_<wbr/>888 burst capture use case,<wbr/> this list will always include (<code>min</code>,<wbr/> <code>max</code>)
4775and (<code>max</code>,<wbr/> <code>max</code>) where <code>min</code> &lt;= 15 and <code>max</code> = the maximum output frame rate of the
4776maximum YUV_<wbr/>420_<wbr/>888 output size.<wbr/></li>
4777</ul>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004778 </td>
4779 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004780
4781
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004782 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004783 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004784
4785
4786 <tr class="entry" id="static_android.control.aeCompensationRange">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004787 <td class="entry_name
4788 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004789 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004790 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004791 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004792 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004793 <span class="entry_type_container">x</span>
4794
4795 <span class="entry_type_array">
4796 2
4797 </span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07004798 <span class="entry_type_visibility"> [public as rangeInt]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004799
4800
Igor Murashkinca256272014-10-02 15:27:09 -07004801 <span class="entry_type_hwlevel">[legacy] </span>
4802
Igor Murashkin6c936c12014-05-13 14:51:49 -07004803
4804
4805
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004806 </td> <!-- entry_type -->
4807
4808 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004809 <p>Maximum and minimum exposure compensation values for
4810<a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a>,<wbr/> in counts of <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a>,<wbr/>
4811that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004812 </td>
4813
4814 <td class="entry_units">
4815 </td>
4816
4817 <td class="entry_range">
Zhijun Hefa73c082015-02-04 13:51:22 -08004818 <p>Range [0,<wbr/>0] indicates that exposure compensation is not supported.<wbr/></p>
4819<p>For LIMITED and FULL devices,<wbr/> range must follow below requirements if exposure
4820compensation is supported (<code>range != [0,<wbr/> 0]</code>):</p>
4821<p><code>Min.<wbr/>exposure compensation * <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> &lt;= -2 EV</code></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004822<p><code>Max.<wbr/>exposure compensation * <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> &gt;= 2 EV</code></p>
Zhijun Hefa73c082015-02-04 13:51:22 -08004823<p>LEGACY devices may support a smaller range than this.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004824 </td>
4825
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004826 <td class="entry_hal_version">
4827 <p>3.<wbr/>2</p>
4828 </td>
4829
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004830 <td class="entry_tags">
4831 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004832 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004833 </ul>
4834 </td>
4835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004836 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004837
4838
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004839 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004840 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004841
4842
4843 <tr class="entry" id="static_android.control.aeCompensationStep">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004844 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004845 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004846 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004847 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004848 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004849 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004850
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004851 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004852
4853
Igor Murashkinca256272014-10-02 15:27:09 -07004854 <span class="entry_type_hwlevel">[legacy] </span>
4855
Igor Murashkin6c936c12014-05-13 14:51:49 -07004856
4857
4858
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004859 </td> <!-- entry_type -->
4860
4861 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004862 <p>Smallest step by which the exposure compensation
4863can be changed.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004864 </td>
4865
4866 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004867 Exposure Value (EV)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004868 </td>
4869
4870 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004871 </td>
4872
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004873 <td class="entry_hal_version">
4874 <p>3.<wbr/>2</p>
4875 </td>
4876
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004877 <td class="entry_tags">
4878 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004879 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004880 </ul>
4881 </td>
4882
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004883 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004884 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004885 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004886 </tr>
4887 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004888 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004889 <p>This is the unit for <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a>.<wbr/> For example,<wbr/> if this key has
4890a value of <code>1/<wbr/>2</code>,<wbr/> then a setting of <code>-2</code> for <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> means
4891that the target EV offset for the auto-exposure routine is -1 EV.<wbr/></p>
4892<p>One unit of EV compensation changes the brightness of the captured image by a factor
4893of two.<wbr/> +1 EV doubles the image brightness,<wbr/> while -1 EV halves the image brightness.<wbr/></p>
4894 </td>
4895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004896
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004897 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004898 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004899 </tr>
4900 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004901 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004902 <p>This must be less than or equal to 1/<wbr/>2.<wbr/></p>
4903 </td>
4904 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004905
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004906 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004907 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004908
4909
4910 <tr class="entry" id="static_android.control.afAvailableModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004911 <td class="entry_name
4912 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004913 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004914 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004915 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004916 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004917 <span class="entry_type_container">x</span>
4918
4919 <span class="entry_type_array">
4920 n
4921 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07004922 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07004923
4924
Igor Murashkinca256272014-10-02 15:27:09 -07004925 <span class="entry_type_hwlevel">[legacy] </span>
4926
Igor Murashkin6c936c12014-05-13 14:51:49 -07004927
Igor Murashkin0b080452013-12-27 15:30:25 -08004928 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004929
4930
4931 </td> <!-- entry_type -->
4932
4933 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004934 <p>List of auto-focus (AF) modes for <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> that are
4935supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004936 </td>
4937
4938 <td class="entry_units">
4939 </td>
4940
4941 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07004942 <p>Any value listed in <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 </td>
4944
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004945 <td class="entry_hal_version">
4946 <p>3.<wbr/>2</p>
4947 </td>
4948
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004949 <td class="entry_tags">
4950 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004951 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004952 </ul>
4953 </td>
4954
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004955 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08004956 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004957 <th class="th_details" colspan="6">Details</th>
Zhijun Hef163fa92014-01-14 09:59:04 -08004958 </tr>
4959 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004960 <td class="entry_details" colspan="6">
Zhijun Hef163fa92014-01-14 09:59:04 -08004961 <p>Not all the auto-focus modes may be supported by a
4962given camera device.<wbr/> This entry lists the valid modes for
4963<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
Ruben Brunka5bcb402014-09-22 16:11:06 -07004964<p>All LIMITED and FULL mode camera devices will support OFF mode,<wbr/> and all
4965camera devices with adjustable focuser units
4966(<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>) will support AUTO mode.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07004967<p>LEGACY devices will support OFF mode only if they support
4968focusing to infinity (by also setting <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> to
4969<code>0.<wbr/>0f</code>).<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08004970 </td>
4971 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004972
4973
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08004974 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004975 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004976
4977
4978 <tr class="entry" id="static_android.control.availableEffects">
Igor Murashkin6c936c12014-05-13 14:51:49 -07004979 <td class="entry_name
4980 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004981 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004982 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004983 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004984 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004985 <span class="entry_type_container">x</span>
4986
4987 <span class="entry_type_array">
4988 n
4989 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07004990 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07004991
4992
Igor Murashkinca256272014-10-02 15:27:09 -07004993 <span class="entry_type_hwlevel">[legacy] </span>
4994
Igor Murashkin6c936c12014-05-13 14:51:49 -07004995
Ruben Brunkb28b35f2014-01-14 17:17:19 -08004996 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004997
4998
4999 </td> <!-- entry_type -->
5000
5001 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005002 <p>List of color effects for <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that are supported by this camera
5003device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005004 </td>
5005
5006 <td class="entry_units">
5007 </td>
5008
5009 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005010 <p>Any value listed in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005011 </td>
5012
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005013 <td class="entry_hal_version">
5014 <p>3.<wbr/>2</p>
5015 </td>
5016
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005017 <td class="entry_tags">
5018 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005019 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005020 </ul>
5021 </td>
5022
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005023 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08005024 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005025 <th class="th_details" colspan="6">Details</th>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08005026 </tr>
5027 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005028 <td class="entry_details" colspan="6">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08005029 <p>This list contains the color effect modes that can be applied to
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005030images produced by the camera device.<wbr/>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08005031Implementations are not expected to be consistent across all devices.<wbr/>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005032If no color effect modes are available for a device,<wbr/> this will only list
5033OFF.<wbr/></p>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08005034<p>A color effect will only be applied if
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005035<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/> OFF is always included in this list.<wbr/></p>
5036<p>This control has no effect on the operation of other control routines such
5037as auto-exposure,<wbr/> white balance,<wbr/> or focus.<wbr/></p>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08005038 </td>
5039 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005040
5041
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005042 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005043 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005044
5045
5046 <tr class="entry" id="static_android.control.availableSceneModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07005047 <td class="entry_name
5048 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005049 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005050 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005051 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005052 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005053 <span class="entry_type_container">x</span>
5054
5055 <span class="entry_type_array">
5056 n
5057 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07005058 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07005059
5060
Igor Murashkinca256272014-10-02 15:27:09 -07005061 <span class="entry_type_hwlevel">[legacy] </span>
5062
Igor Murashkin6c936c12014-05-13 14:51:49 -07005063
Ruben Brunkbf870fc2014-01-14 17:46:58 -08005064 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005065
5066
5067 </td> <!-- entry_type -->
5068
5069 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005070 <p>List of scene modes for <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> that are supported by this camera
5071device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005072 </td>
5073
5074 <td class="entry_units">
5075 </td>
5076
5077 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005078 <p>Any value listed in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005079 </td>
5080
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005081 <td class="entry_hal_version">
5082 <p>3.<wbr/>2</p>
5083 </td>
5084
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005085 <td class="entry_tags">
5086 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005087 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005088 </ul>
5089 </td>
5090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005091 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08005092 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005093 <th class="th_details" colspan="6">Details</th>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08005094 </tr>
5095 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005096 <td class="entry_details" colspan="6">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08005097 <p>This list contains scene modes that can be set for the camera device.<wbr/>
5098Only scene modes that have been fully implemented for the
5099camera device may be included here.<wbr/> Implementations are not expected
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005100to be consistent across all devices.<wbr/></p>
5101<p>If no scene modes are supported by the camera device,<wbr/> this
5102will be set to DISABLED.<wbr/> Otherwise DISABLED will not be listed.<wbr/></p>
5103<p>FACE_<wbr/>PRIORITY is always listed if face detection is
5104supported (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;
51050</code>).<wbr/></p>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08005106 </td>
5107 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005108
5109
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005110 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005111 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005112
5113
5114 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07005115 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005116 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005117 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005118 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005119 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005120 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005121 <span class="entry_type_container">x</span>
5122
5123 <span class="entry_type_array">
5124 n
5125 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07005126 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07005127
5128
Igor Murashkinca256272014-10-02 15:27:09 -07005129 <span class="entry_type_hwlevel">[legacy] </span>
5130
Igor Murashkin6c936c12014-05-13 14:51:49 -07005131
Igor Murashkin0b080452013-12-27 15:30:25 -08005132 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005133
5134
5135 </td> <!-- entry_type -->
5136
5137 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005138 <p>List of video stabilization modes for <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>
5139that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005140 </td>
5141
5142 <td class="entry_units">
5143 </td>
5144
5145 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005146 <p>Any value listed in <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005147 </td>
5148
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005149 <td class="entry_hal_version">
5150 <p>3.<wbr/>2</p>
5151 </td>
5152
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153 <td class="entry_tags">
5154 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005155 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005156 </ul>
5157 </td>
5158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005159 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005160 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005161 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005162 </tr>
5163 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005164 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005165 <p>OFF will always be listed.<wbr/></p>
5166 </td>
5167 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005168
5169
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005170 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005171 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005172
5173
5174 <tr class="entry" id="static_android.control.awbAvailableModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07005175 <td class="entry_name
5176 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005177 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005178 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005179 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005180 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07005181 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005182
Alex Raya4251d92013-04-30 16:43:44 -07005183 <span class="entry_type_array">
5184 n
5185 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07005186 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07005187
5188
Igor Murashkinca256272014-10-02 15:27:09 -07005189 <span class="entry_type_hwlevel">[legacy] </span>
5190
Igor Murashkin6c936c12014-05-13 14:51:49 -07005191
Zhijun He7787f7f2014-01-14 16:30:31 -08005192 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005193
5194
5195 </td> <!-- entry_type -->
5196
5197 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005198 <p>List of auto-white-balance modes for <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> that are supported by this
5199camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005200 </td>
5201
5202 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005203 </td>
5204
5205 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005206 <p>Any value listed in <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005207 </td>
5208
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005209 <td class="entry_hal_version">
5210 <p>3.<wbr/>2</p>
5211 </td>
5212
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005213 <td class="entry_tags">
5214 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005215 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005216 </ul>
5217 </td>
5218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005219 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08005220 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005221 <th class="th_details" colspan="6">Details</th>
Zhijun He7787f7f2014-01-14 16:30:31 -08005222 </tr>
5223 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005224 <td class="entry_details" colspan="6">
Zhijun He7787f7f2014-01-14 16:30:31 -08005225 <p>Not all the auto-white-balance modes may be supported by a
5226given camera device.<wbr/> This entry lists the valid modes for
5227<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
5228<p>All camera devices will support ON mode.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005229<p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always support OFF
5230mode,<wbr/> which enables application control of white balance,<wbr/> by using
5231<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/> This includes all FULL
5232mode camera devices.<wbr/></p>
Zhijun He7787f7f2014-01-14 16:30:31 -08005233 </td>
5234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005235
5236
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005237 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005238 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005239
5240
5241 <tr class="entry" id="static_android.control.maxRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07005242 <td class="entry_name
5243 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005244 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005245 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005246 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005247 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08005248 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005249
Ruben Brunk120eea42014-01-15 15:55:08 -08005250 <span class="entry_type_array">
5251 3
5252 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -07005253 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005254
5255
Igor Murashkinca256272014-10-02 15:27:09 -07005256 <span class="entry_type_hwlevel">[legacy] </span>
5257
Igor Murashkin6c936c12014-05-13 14:51:49 -07005258
5259
5260
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005261 </td> <!-- entry_type -->
5262
5263 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08005264 <p>List of the maximum number of regions that can be used for metering in
5265auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
5266this corresponds to the the maximum number of elements in
5267<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
5268and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005269 </td>
5270
5271 <td class="entry_units">
5272 </td>
5273
5274 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08005275 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
5276this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
5277<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005278 </td>
5279
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005280 <td class="entry_hal_version">
5281 <p>3.<wbr/>2</p>
5282 </td>
5283
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005284 <td class="entry_tags">
5285 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005286 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005287 </ul>
5288 </td>
5289
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005290 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005291
5292
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005293 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005294 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005295
5296
Igor Murashkin35a108f2014-05-27 10:51:25 -07005297 <tr class="entry" id="static_android.control.maxRegionsAe">
5298 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005299 " rowspan="5">
Igor Murashkin35a108f2014-05-27 10:51:25 -07005300 android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae
5301 </td>
5302 <td class="entry_type">
5303 <span class="entry_type_name">int32</span>
5304
Yin-Chia Yehc6c24162016-04-02 16:30:30 -07005305 <span class="entry_type_visibility"> [java_public]</span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005306
5307 <span class="entry_type_synthetic">[synthetic] </span>
5308
Igor Murashkinca256272014-10-02 15:27:09 -07005309 <span class="entry_type_hwlevel">[legacy] </span>
5310
Igor Murashkin35a108f2014-05-27 10:51:25 -07005311
5312
5313
5314 </td> <!-- entry_type -->
5315
5316 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005317 <p>The maximum number of metering regions that can be used by the auto-exposure (AE)
5318routine.<wbr/></p>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005319 </td>
5320
5321 <td class="entry_units">
5322 </td>
5323
5324 <td class="entry_range">
5325 <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
5326value will be &gt;= 1.<wbr/></p>
5327 </td>
5328
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005329 <td class="entry_hal_version">
5330 <p>3.<wbr/>2</p>
5331 </td>
5332
Igor Murashkin35a108f2014-05-27 10:51:25 -07005333 <td class="entry_tags">
5334 </td>
5335
5336 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005337 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005338 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005339 </tr>
5340 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005341 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005342 <p>This corresponds to the the maximum allowed number of elements in
5343<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>.<wbr/></p>
5344 </td>
5345 </tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005346
5347 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005348 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005349 </tr>
5350 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005351 <td class="entry_details" colspan="6">
Igor Murashkin35a108f2014-05-27 10:51:25 -07005352 <p>This entry is private to the framework.<wbr/> Fill in
5353maxRegions to have this entry be automatically populated.<wbr/></p>
5354 </td>
5355 </tr>
5356
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005357 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005358 <!-- end of entry -->
5359
5360
5361 <tr class="entry" id="static_android.control.maxRegionsAwb">
5362 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005363 " rowspan="5">
Igor Murashkin35a108f2014-05-27 10:51:25 -07005364 android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb
5365 </td>
5366 <td class="entry_type">
5367 <span class="entry_type_name">int32</span>
5368
Yin-Chia Yehc6c24162016-04-02 16:30:30 -07005369 <span class="entry_type_visibility"> [java_public]</span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005370
5371 <span class="entry_type_synthetic">[synthetic] </span>
5372
Igor Murashkinca256272014-10-02 15:27:09 -07005373 <span class="entry_type_hwlevel">[legacy] </span>
5374
Igor Murashkin35a108f2014-05-27 10:51:25 -07005375
5376
5377
5378 </td> <!-- entry_type -->
5379
5380 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005381 <p>The maximum number of metering regions that can be used by the auto-white balance (AWB)
5382routine.<wbr/></p>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005383 </td>
5384
5385 <td class="entry_units">
5386 </td>
5387
5388 <td class="entry_range">
5389 <p>Value will be &gt;= 0.<wbr/></p>
5390 </td>
5391
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005392 <td class="entry_hal_version">
5393 <p>3.<wbr/>2</p>
5394 </td>
5395
Igor Murashkin35a108f2014-05-27 10:51:25 -07005396 <td class="entry_tags">
5397 </td>
5398
5399 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005400 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005401 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005402 </tr>
5403 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005404 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005405 <p>This corresponds to the the maximum allowed number of elements in
5406<a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>.<wbr/></p>
5407 </td>
5408 </tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005409
5410 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005411 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005412 </tr>
5413 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005414 <td class="entry_details" colspan="6">
Igor Murashkin35a108f2014-05-27 10:51:25 -07005415 <p>This entry is private to the framework.<wbr/> Fill in
5416maxRegions to have this entry be automatically populated.<wbr/></p>
5417 </td>
5418 </tr>
5419
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005420 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005421 <!-- end of entry -->
5422
5423
5424 <tr class="entry" id="static_android.control.maxRegionsAf">
5425 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005426 " rowspan="5">
Igor Murashkin35a108f2014-05-27 10:51:25 -07005427 android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af
5428 </td>
5429 <td class="entry_type">
5430 <span class="entry_type_name">int32</span>
5431
Yin-Chia Yehc6c24162016-04-02 16:30:30 -07005432 <span class="entry_type_visibility"> [java_public]</span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005433
5434 <span class="entry_type_synthetic">[synthetic] </span>
5435
Igor Murashkinca256272014-10-02 15:27:09 -07005436 <span class="entry_type_hwlevel">[legacy] </span>
5437
Igor Murashkin35a108f2014-05-27 10:51:25 -07005438
5439
5440
5441 </td> <!-- entry_type -->
5442
5443 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005444 <p>The maximum number of metering regions that can be used by the auto-focus (AF) routine.<wbr/></p>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005445 </td>
5446
5447 <td class="entry_units">
5448 </td>
5449
5450 <td class="entry_range">
5451 <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
5452value will be &gt;= 1.<wbr/></p>
5453 </td>
5454
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005455 <td class="entry_hal_version">
5456 <p>3.<wbr/>2</p>
5457 </td>
5458
Igor Murashkin35a108f2014-05-27 10:51:25 -07005459 <td class="entry_tags">
5460 </td>
5461
5462 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005463 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005464 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005465 </tr>
5466 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005467 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07005468 <p>This corresponds to the the maximum allowed number of elements in
5469<a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
5470 </td>
5471 </tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005472
5473 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005474 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005475 </tr>
5476 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005477 <td class="entry_details" colspan="6">
Igor Murashkin35a108f2014-05-27 10:51:25 -07005478 <p>This entry is private to the framework.<wbr/> Fill in
5479maxRegions to have this entry be automatically populated.<wbr/></p>
5480 </td>
5481 </tr>
5482
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005483 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -07005484 <!-- end of entry -->
5485
5486
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005487 <tr class="entry" id="static_android.control.sceneModeOverrides">
Igor Murashkin6c936c12014-05-13 14:51:49 -07005488 <td class="entry_name
5489 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005490 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005491 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005492 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005493 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005494 <span class="entry_type_container">x</span>
5495
5496 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005497 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005498 </span>
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
Igor Murashkinca256272014-10-02 15:27:09 -07005502 <span class="entry_type_hwlevel">[limited] </span>
5503
Igor Murashkin6c936c12014-05-13 14:51:49 -07005504
5505
5506
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005507 </td> <!-- entry_type -->
5508
5509 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005510 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
5511settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005512 </td>
5513
5514 <td class="entry_units">
5515 </td>
5516
5517 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005518 <p>For each available scene mode,<wbr/> the list must contain three
5519entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
5520<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
5521by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
5522where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005523 </td>
5524
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005525 <td class="entry_hal_version">
5526 <p>3.<wbr/>2</p>
5527 </td>
5528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005529 <td class="entry_tags">
5530 <ul class="entry_tags">
5531 <li><a href="#tag_BC">BC</a></li>
5532 </ul>
5533 </td>
5534
5535 </tr>
5536 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005537 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005538 </tr>
5539 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005540 <td class="entry_details" colspan="6">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005541 <p>When a scene mode is enabled,<wbr/> the camera device is expected
5542to 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/>
5543and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
5544that scene mode.<wbr/></p>
5545<p>The order of this list matches that of availableSceneModes,<wbr/>
5546with 3 entries for each mode.<wbr/> The overrides listed
Zhijun He1a71d0d2015-06-16 19:44:18 -07005547for FACE_<wbr/>PRIORITY and FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported) are ignored,<wbr/>
5548since for that mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005549<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
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08005550used instead,<wbr/> matching the behavior when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>
Zhijun He1a71d0d2015-06-16 19:44:18 -07005551is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY and
5552FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported) overrides should be set to 0.<wbr/></p>
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005553<p>For example,<wbr/> if availableSceneModes contains
5554<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
5555expects sceneModeOverrides to have 9 entries formatted like:
5556<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
5557ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005558 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005559 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005560
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005561 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005562 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005563 </tr>
5564 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005565 <td class="entry_details" colspan="6">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005566 <p>To maintain backward compatibility,<wbr/> this list will be made available
5567in the static metadata of the camera service.<wbr/> The camera service will
5568use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
5569<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
Zhijun He1a71d0d2015-06-16 19:44:18 -07005570mode other than FACE_<wbr/>PRIORITY and FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported).<wbr/></p>
Ruben Brunkcf77fe92014-01-14 19:31:21 -08005571 </td>
5572 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005573
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005574 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005576
Zhijun He17f2d2c2014-06-10 18:21:34 -07005577
5578 <tr class="entry" id="static_android.control.availableHighSpeedVideoConfigurations">
5579 <td class="entry_name
5580 " rowspan="5">
5581 android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations
5582 </td>
5583 <td class="entry_type">
5584 <span class="entry_type_name">int32</span>
5585 <span class="entry_type_container">x</span>
5586
5587 <span class="entry_type_array">
Zhijun He7defc682015-05-22 17:04:15 -07005588 5 x n
Zhijun He17f2d2c2014-06-10 18:21:34 -07005589 </span>
Yin-Chia Yeh35bdd4b2014-07-15 10:42:05 -07005590 <span class="entry_type_visibility"> [hidden as highSpeedVideoConfiguration]</span>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005591
5592
Igor Murashkinca256272014-10-02 15:27:09 -07005593 <span class="entry_type_hwlevel">[limited] </span>
5594
Zhijun He17f2d2c2014-06-10 18:21:34 -07005595
5596
5597
5598 </td> <!-- entry_type -->
5599
5600 <td class="entry_description">
Zhijun He7defc682015-05-22 17:04:15 -07005601 <p>List of available high speed video size,<wbr/> fps range and max batch size configurations
5602supported by the camera device,<wbr/> in the format of (width,<wbr/> height,<wbr/> fps_<wbr/>min,<wbr/> fps_<wbr/>max,<wbr/> batch_<wbr/>size_<wbr/>max).<wbr/></p>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005603 </td>
5604
5605 <td class="entry_units">
5606 </td>
5607
5608 <td class="entry_range">
Zhijun He7defc682015-05-22 17:04:15 -07005609 <p>For each configuration,<wbr/> the fps_<wbr/>max &gt;= 120fps.<wbr/></p>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005610 </td>
5611
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005612 <td class="entry_hal_version">
5613 <p>3.<wbr/>2</p>
5614 </td>
5615
Zhijun He17f2d2c2014-06-10 18:21:34 -07005616 <td class="entry_tags">
5617 <ul class="entry_tags">
5618 <li><a href="#tag_V1">V1</a></li>
5619 </ul>
5620 </td>
5621
5622 </tr>
5623 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005624 <th class="th_details" colspan="6">Details</th>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005625 </tr>
5626 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005627 <td class="entry_details" colspan="6">
Zhijun He4b466e72015-06-23 07:59:24 -07005628 <p>When CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO is supported in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>,<wbr/>
Zhijun He7defc682015-05-22 17:04:15 -07005629this metadata will list the supported high speed video size,<wbr/> fps range and max batch size
5630configurations.<wbr/> All the sizes listed in this configuration will be a subset of the sizes
5631reported by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">StreamConfigurationMap#getOutputSizes</a>
5632for processed non-stalling formats.<wbr/></p>
5633<p>For the high speed video use case,<wbr/> the application must
Zhijun He17f2d2c2014-06-10 18:21:34 -07005634select the video size and fps range from this metadata to configure the recording and
5635preview streams and setup the recording requests.<wbr/> For example,<wbr/> if the application intends
5636to do high speed recording,<wbr/> it can select the maximum size reported by this metadata to
5637configure output streams.<wbr/> Once the size is selected,<wbr/> application can filter this metadata
5638by selected size and get the supported fps ranges,<wbr/> and use these fps ranges to setup the
Yin-Chia Yeh35bdd4b2014-07-15 10:42:05 -07005639recording requests.<wbr/> Note that for the use case of multiple output streams,<wbr/> application
Zhijun He7defc682015-05-22 17:04:15 -07005640must select one unique size from this metadata to use (e.<wbr/>g.,<wbr/> preview and recording streams
5641must have the same size).<wbr/> Otherwise,<wbr/> the high speed capture session creation will fail.<wbr/></p>
5642<p>The min and max fps will be multiple times of 30fps.<wbr/></p>
5643<p>High speed video streaming extends significant performance pressue to camera hardware,<wbr/>
5644to achieve efficient high speed streaming,<wbr/> the camera device may have to aggregate
5645multiple frames together and send to camera device for processing where the request
5646controls are same for all the frames in this batch.<wbr/> Max batch size indicates
5647the max possible number of frames the camera device will group together for this high
5648speed stream configuration.<wbr/> This max batch size will be used to generate a high speed
5649recording request list by
Eino-Ville Talvalaf55c1a82015-06-30 13:32:09 -07005650<a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>.<wbr/>
Zhijun He7defc682015-05-22 17:04:15 -07005651The max batch size for each configuration will satisfy below conditions:</p>
5652<ul>
5653<li>Each max batch size will be a divisor of its corresponding fps_<wbr/>max /<wbr/> 30.<wbr/> For example,<wbr/>
5654if max_<wbr/>fps is 300,<wbr/> max batch size will only be 1,<wbr/> 2,<wbr/> 5,<wbr/> or 10.<wbr/></li>
5655<li>The camera device may choose smaller internal batch size for each configuration,<wbr/> but
5656the actual batch size will be a divisor of max batch size.<wbr/> For example,<wbr/> if the max batch
5657size is 8,<wbr/> the actual batch size used by camera device will only be 1,<wbr/> 2,<wbr/> 4,<wbr/> or 8.<wbr/></li>
5658<li>The max batch size in each configuration entry must be no larger than 32.<wbr/></li>
5659</ul>
5660<p>The camera device doesn't have to support batch mode to achieve high speed video recording,<wbr/>
5661in such case,<wbr/> batch_<wbr/>size_<wbr/>max will be reported as 1 in each configuration entry.<wbr/></p>
5662<p>This fps ranges in this configuration list can only be used to create requests
5663that are submitted to a high speed camera capture session created by
5664<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/>
5665The fps ranges reported in this metadata must not be used to setup capture requests for
5666normal capture session,<wbr/> or it will cause request error.<wbr/></p>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005667 </td>
5668 </tr>
5669
5670 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005671 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005672 </tr>
5673 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005674 <td class="entry_details" colspan="6">
Zhijun He17f2d2c2014-06-10 18:21:34 -07005675 <p>All the sizes listed in this configuration will be a subset of the sizes reported by
Yin-Chia Yeh35bdd4b2014-07-15 10:42:05 -07005676<a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> for processed non-stalling output formats.<wbr/>
5677Note that for all high speed video configurations,<wbr/> HAL must be able to support a minimum
5678of two streams,<wbr/> though the application might choose to configure just one stream.<wbr/></p>
Zhijun He7defc682015-05-22 17:04:15 -07005679<p>The HAL may support multiple sensor modes for high speed outputs,<wbr/> for example,<wbr/> 120fps
5680sensor mode and 120fps recording,<wbr/> 240fps sensor mode for 240fps recording.<wbr/> The application
5681usually starts preview first,<wbr/> then starts recording.<wbr/> To avoid sensor mode switch caused
5682stutter when starting recording as much as possible,<wbr/> the application may want to ensure
5683the same sensor mode is used for preview and recording.<wbr/> Therefore,<wbr/> The HAL must advertise
5684the variable fps range [30,<wbr/> fps_<wbr/>max] for each fixed fps range in this configuration list.<wbr/>
5685For example,<wbr/> if the HAL advertises [120,<wbr/> 120] and [240,<wbr/> 240],<wbr/> the HAL must also advertise
5686[30,<wbr/> 120] and [30,<wbr/> 240] for each configuration.<wbr/> In doing so,<wbr/> if the application intends to
5687do 120fps recording,<wbr/> it can select [30,<wbr/> 120] to start preview,<wbr/> and [120,<wbr/> 120] to start
5688recording.<wbr/> For these variable fps ranges,<wbr/> it's up to the HAL to decide the actual fps
5689values that are suitable for smooth preview streaming.<wbr/> If the HAL sees different max_<wbr/>fps
5690values that fall into different sensor modes in a sequence of requests,<wbr/> the HAL must
5691switch the sensor mode as quick as possible to minimize the mode switch caused stutter.<wbr/></p>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005692 </td>
5693 </tr>
5694
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005695 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He17f2d2c2014-06-10 18:21:34 -07005696 <!-- end of entry -->
5697
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005698
5699 <tr class="entry" id="static_android.control.aeLockAvailable">
5700 <td class="entry_name
5701 " rowspan="3">
5702 android.<wbr/>control.<wbr/>ae<wbr/>Lock<wbr/>Available
5703 </td>
5704 <td class="entry_type">
5705 <span class="entry_type_name entry_type_name_enum">byte</span>
5706
5707 <span class="entry_type_visibility"> [public as boolean]</span>
5708
5709
5710 <span class="entry_type_hwlevel">[legacy] </span>
5711
5712
5713
5714 <ul class="entry_type_enum">
5715 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08005716 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005717 </li>
5718 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08005719 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005720 </li>
5721 </ul>
5722
5723 </td> <!-- entry_type -->
5724
5725 <td class="entry_description">
5726 <p>Whether the camera device supports <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></p>
5727 </td>
5728
5729 <td class="entry_units">
5730 </td>
5731
5732 <td class="entry_range">
5733 </td>
5734
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005735 <td class="entry_hal_version">
5736 <p>3.<wbr/>2</p>
5737 </td>
5738
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005739 <td class="entry_tags">
5740 <ul class="entry_tags">
5741 <li><a href="#tag_BC">BC</a></li>
5742 </ul>
5743 </td>
5744
5745 </tr>
5746 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005747 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005748 </tr>
5749 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005750 <td class="entry_details" colspan="6">
Yin-Chia Yehe36c5ed2015-04-02 14:31:53 -07005751 <p>Devices with MANUAL_<wbr/>SENSOR capability or BURST_<wbr/>CAPTURE capability will always
5752list <code>true</code>.<wbr/> This includes FULL devices.<wbr/></p>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005753 </td>
5754 </tr>
5755
5756
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005757 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005758 <!-- end of entry -->
5759
5760
5761 <tr class="entry" id="static_android.control.awbLockAvailable">
5762 <td class="entry_name
5763 " rowspan="3">
5764 android.<wbr/>control.<wbr/>awb<wbr/>Lock<wbr/>Available
5765 </td>
5766 <td class="entry_type">
5767 <span class="entry_type_name entry_type_name_enum">byte</span>
5768
5769 <span class="entry_type_visibility"> [public as boolean]</span>
5770
5771
5772 <span class="entry_type_hwlevel">[legacy] </span>
5773
5774
5775
5776 <ul class="entry_type_enum">
5777 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08005778 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005779 </li>
5780 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08005781 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005782 </li>
5783 </ul>
5784
5785 </td> <!-- entry_type -->
5786
5787 <td class="entry_description">
5788 <p>Whether the camera device supports <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></p>
5789 </td>
5790
5791 <td class="entry_units">
5792 </td>
5793
5794 <td class="entry_range">
5795 </td>
5796
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005797 <td class="entry_hal_version">
5798 <p>3.<wbr/>2</p>
5799 </td>
5800
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005801 <td class="entry_tags">
5802 <ul class="entry_tags">
5803 <li><a href="#tag_BC">BC</a></li>
5804 </ul>
5805 </td>
5806
5807 </tr>
5808 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005809 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005810 </tr>
5811 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005812 <td class="entry_details" colspan="6">
Yin-Chia Yehe36c5ed2015-04-02 14:31:53 -07005813 <p>Devices with MANUAL_<wbr/>POST_<wbr/>PROCESSING capability or BURST_<wbr/>CAPTURE capability will
5814always list <code>true</code>.<wbr/> This includes FULL devices.<wbr/></p>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005815 </td>
5816 </tr>
5817
5818
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005819 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005820 <!-- end of entry -->
5821
5822
5823 <tr class="entry" id="static_android.control.availableModes">
5824 <td class="entry_name
5825 " rowspan="3">
5826 android.<wbr/>control.<wbr/>available<wbr/>Modes
5827 </td>
5828 <td class="entry_type">
5829 <span class="entry_type_name">byte</span>
5830 <span class="entry_type_container">x</span>
5831
5832 <span class="entry_type_array">
5833 n
5834 </span>
5835 <span class="entry_type_visibility"> [public as enumList]</span>
5836
5837
5838 <span class="entry_type_hwlevel">[legacy] </span>
5839
5840
5841 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>mode).<wbr/></div>
5842
5843
5844 </td> <!-- entry_type -->
5845
5846 <td class="entry_description">
5847 <p>List of control modes for <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> that are supported by this camera
5848device.<wbr/></p>
5849 </td>
5850
5851 <td class="entry_units">
5852 </td>
5853
5854 <td class="entry_range">
5855 <p>Any value listed in <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a></p>
5856 </td>
5857
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005858 <td class="entry_hal_version">
5859 <p>3.<wbr/>2</p>
5860 </td>
5861
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005862 <td class="entry_tags">
5863 </td>
5864
5865 </tr>
5866 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005867 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005868 </tr>
5869 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005870 <td class="entry_details" colspan="6">
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005871 <p>This list contains control modes that can be set for the camera device.<wbr/>
5872LEGACY mode devices will always support AUTO mode.<wbr/> LIMITED and FULL
5873devices will always support OFF,<wbr/> AUTO modes.<wbr/></p>
5874 </td>
5875 </tr>
5876
5877
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005878 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -08005879 <!-- end of entry -->
5880
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005881
5882 <tr class="entry" id="static_android.control.postRawSensitivityBoostRange">
5883 <td class="entry_name
5884 " rowspan="5">
5885 android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range
5886 </td>
5887 <td class="entry_type">
5888 <span class="entry_type_name">int32</span>
5889 <span class="entry_type_container">x</span>
5890
5891 <span class="entry_type_array">
5892 2
5893 </span>
5894 <span class="entry_type_visibility"> [public as rangeInt]</span>
5895
5896
5897
5898
5899 <div class="entry_type_notes">Range of supported post RAW sensitivitiy boosts</div>
5900
5901
5902 </td> <!-- entry_type -->
5903
5904 <td class="entry_description">
5905 <p>Range of boosts for <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> supported
5906by this camera device.<wbr/></p>
5907 </td>
5908
5909 <td class="entry_units">
5910 ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
5911 </td>
5912
5913 <td class="entry_range">
5914 </td>
5915
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005916 <td class="entry_hal_version">
5917 <p>3.<wbr/>2</p>
5918 </td>
5919
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005920 <td class="entry_tags">
5921 </td>
5922
5923 </tr>
5924 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005925 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005926 </tr>
5927 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005928 <td class="entry_details" colspan="6">
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005929 <p>Devices support post RAW sensitivity boost will advertise
5930<a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> key for controling
5931post RAW sensitivity boost.<wbr/></p>
5932<p>This key will be <code>null</code> for devices that do not support any RAW format
5933outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
5934present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
5935list <code>(100,<wbr/> 100)</code> in this key.<wbr/></p>
5936 </td>
5937 </tr>
5938
5939 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005940 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005941 </tr>
5942 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005943 <td class="entry_details" colspan="6">
5944 <p>This key is added in legacy HAL3.<wbr/>4.<wbr/> For legacy HAL3.<wbr/>3 or earlier devices,<wbr/> camera
5945framework will generate this key as <code>(100,<wbr/> 100)</code> if device supports any of RAW output
5946formats.<wbr/> All legacy HAL3.<wbr/>4 and above devices should list this key if device supports
5947any of RAW output formats.<wbr/></p>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005948 </td>
5949 </tr>
5950
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005951 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08005952 <!-- end of entry -->
5953
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005954
5955
5956 <!-- end of kind -->
5957 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005958 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005960 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005961 <tr>
5962 <th class="th_name">Property Name</th>
5963 <th class="th_type">Type</th>
5964 <th class="th_description">Description</th>
5965 <th class="th_units">Units</th>
5966 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08005967 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005968 <th class="th_tags">Tags</th>
5969 </tr>
5970 </thead>
5971
5972 <tbody>
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Igor Murashkin6c936c12014-05-13 14:51:49 -07005984 <td class="entry_name
5985 entry_name_deprecated
5986 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005987 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005988 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005989 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005990 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005991
Igor Murashkin6c936c12014-05-13 14:51:49 -07005992 <span class="entry_type_visibility"> [system]</span>
5993
5994
Igor Murashkinca256272014-10-02 15:27:09 -07005995
Igor Murashkin6c936c12014-05-13 14:51:49 -07005996 <span class="entry_type_deprecated">[deprecated] </span>
5997
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005998
5999
6000 </td> <!-- entry_type -->
6001
6002 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006003 <p>The ID sent with the latest
6004CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006005 </td>
6006
6007 <td class="entry_units">
6008 </td>
6009
6010 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006011 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006012 </td>
6013
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006014 <td class="entry_hal_version">
6015 <p>3.<wbr/>2</p>
6016 </td>
6017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006018 <td class="entry_tags">
6019 </td>
6020
6021 </tr>
6022 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006023 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006024 </tr>
6025 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006026 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -08006027 <p>Must be 0 if no
6028CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
6029by HAL.<wbr/> Always updated even if AE algorithm ignores the
6030trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006031 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006032 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006033
6034
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006035 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006036 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006037
6038
Zhijun He602d3702014-05-02 17:38:15 -07006039 <tr class="entry" id="dynamic_android.control.aeAntibandingMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006040 <td class="entry_name
6041 " rowspan="5">
Zhijun He602d3702014-05-02 17:38:15 -07006042 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
6043 </td>
6044 <td class="entry_type">
6045 <span class="entry_type_name entry_type_name_enum">byte</span>
6046
6047 <span class="entry_type_visibility"> [public]</span>
6048
Igor Murashkin6c936c12014-05-13 14:51:49 -07006049
Igor Murashkinca256272014-10-02 15:27:09 -07006050 <span class="entry_type_hwlevel">[legacy] </span>
6051
Igor Murashkin6c936c12014-05-13 14:51:49 -07006052
6053
Zhijun He602d3702014-05-02 17:38:15 -07006054 <ul class="entry_type_enum">
6055 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006056 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07006057 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
6058avoid banding problems.<wbr/></p></span>
6059 </li>
6060 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006061 <span class="entry_type_enum_name">50HZ (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07006062 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
6063avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
6064 </li>
6065 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006066 <span class="entry_type_enum_name">60HZ (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07006067 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
6068avoid banding problems with 60Hz illumination
6069sources.<wbr/></p></span>
6070 </li>
6071 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006072 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07006073 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
6074antibanding routine to the current illumination
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08006075condition.<wbr/> This is the default mode if AUTO is
6076available on given camera device.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07006077 </li>
6078 </ul>
6079
6080 </td> <!-- entry_type -->
6081
6082 <td class="entry_description">
6083 <p>The desired setting for the camera device's auto-exposure
6084algorithm's antibanding compensation.<wbr/></p>
6085 </td>
6086
6087 <td class="entry_units">
6088 </td>
6089
6090 <td class="entry_range">
6091 <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
6092 </td>
6093
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006094 <td class="entry_hal_version">
6095 <p>3.<wbr/>2</p>
6096 </td>
6097
Zhijun He602d3702014-05-02 17:38:15 -07006098 <td class="entry_tags">
6099 <ul class="entry_tags">
6100 <li><a href="#tag_BC">BC</a></li>
6101 </ul>
6102 </td>
6103
6104 </tr>
6105 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006106 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07006107 </tr>
6108 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006109 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07006110 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
6111lights,<wbr/> flicker at the rate of the power supply frequency
6112(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
6113typically not noticeable to a person,<wbr/> it can be visible to
6114a camera device.<wbr/> If a camera sets its exposure time to the
6115wrong value,<wbr/> the flicker may become visible in the
6116viewfinder as flicker or in a final captured image,<wbr/> as a
6117set of variable-brightness bands across the image.<wbr/></p>
6118<p>Therefore,<wbr/> the auto-exposure routines of camera devices
6119include antibanding routines that ensure that the chosen
6120exposure value will not cause such banding.<wbr/> The choice of
6121exposure time depends on the rate of flicker,<wbr/> which the
6122camera device can detect automatically,<wbr/> or the expected
6123rate can be selected by the application using this
6124control.<wbr/></p>
6125<p>A given camera device may not support all of the possible
6126options for the antibanding mode.<wbr/> The
6127<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
6128the available modes for a given camera device.<wbr/></p>
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08006129<p>AUTO mode is the default if it is available on given
6130camera device.<wbr/> When AUTO mode is not available,<wbr/> the
6131default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
6132and 60HZ will be available.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006133<p>If manual exposure control is enabled (by setting
6134<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/>
6135then this setting has no effect,<wbr/> and the application must
6136ensure it selects exposure times that do not cause banding
6137issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
6138the application in this.<wbr/></p>
6139 </td>
6140 </tr>
6141
6142 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006143 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07006144 </tr>
6145 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006146 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07006147 <p>For all capture request templates,<wbr/> this field must be set
Yin-Chia Yeh9d1b4522014-11-25 11:51:48 -08006148to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
6149the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
615060HZ must be available.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006151<p>If manual exposure control is enabled (by setting
6152<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/>
6153then the exposure values provided by the application must not be
6154adjusted for antibanding.<wbr/></p>
6155 </td>
6156 </tr>
6157
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006158 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07006159 <!-- end of entry -->
6160
6161
6162 <tr class="entry" id="dynamic_android.control.aeExposureCompensation">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006163 <td class="entry_name
6164 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07006165 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
6166 </td>
6167 <td class="entry_type">
6168 <span class="entry_type_name">int32</span>
6169
6170 <span class="entry_type_visibility"> [public]</span>
6171
6172
Igor Murashkinca256272014-10-02 15:27:09 -07006173 <span class="entry_type_hwlevel">[legacy] </span>
6174
Igor Murashkin6c936c12014-05-13 14:51:49 -07006175
6176
6177
Zhijun He602d3702014-05-02 17:38:15 -07006178 </td> <!-- entry_type -->
6179
6180 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07006181 <p>Adjustment to auto-exposure (AE) target image
6182brightness.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006183 </td>
6184
6185 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006186 Compensation steps
Zhijun He602d3702014-05-02 17:38:15 -07006187 </td>
6188
6189 <td class="entry_range">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07006190 <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
Zhijun He602d3702014-05-02 17:38:15 -07006191 </td>
6192
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006193 <td class="entry_hal_version">
6194 <p>3.<wbr/>2</p>
6195 </td>
6196
Zhijun He602d3702014-05-02 17:38:15 -07006197 <td class="entry_tags">
6198 <ul class="entry_tags">
6199 <li><a href="#tag_BC">BC</a></li>
6200 </ul>
6201 </td>
6202
6203 </tr>
6204 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006205 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07006206 </tr>
6207 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006208 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07006209 <p>The adjustment is measured as a count of steps,<wbr/> with the
6210step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
6211allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
6212<p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
6213will mean an exposure compensation of +2 EV; -3 will mean an
6214exposure compensation of -1 EV.<wbr/> One EV represents a doubling
6215of image brightness.<wbr/> Note that this control will only be
6216effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
6217will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
Yin-Chia Yeh7754e6a2014-05-05 14:26:03 -07006218<p>In the event of exposure compensation value being changed,<wbr/> camera device
6219may take several frames to reach the newly requested exposure target.<wbr/>
Igor Murashkin6c936c12014-05-13 14:51:49 -07006220During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
Yin-Chia Yeh7754e6a2014-05-05 14:26:03 -07006221state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will
6222change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
Igor Murashkin6c936c12014-05-13 14:51:49 -07006223FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006224 </td>
6225 </tr>
6226
6227
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006228 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07006229 <!-- end of entry -->
6230
6231
6232 <tr class="entry" id="dynamic_android.control.aeLock">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006233 <td class="entry_name
6234 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07006235 android.<wbr/>control.<wbr/>ae<wbr/>Lock
6236 </td>
6237 <td class="entry_type">
6238 <span class="entry_type_name entry_type_name_enum">byte</span>
6239
6240 <span class="entry_type_visibility"> [public as boolean]</span>
6241
Igor Murashkin6c936c12014-05-13 14:51:49 -07006242
Igor Murashkinca256272014-10-02 15:27:09 -07006243 <span class="entry_type_hwlevel">[legacy] </span>
6244
Igor Murashkin6c936c12014-05-13 14:51:49 -07006245
6246
Zhijun He602d3702014-05-02 17:38:15 -07006247 <ul class="entry_type_enum">
6248 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006249 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006250 <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
Zhijun He602d3702014-05-02 17:38:15 -07006251is free to update its parameters.<wbr/></p></span>
6252 </li>
6253 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006254 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006255 <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
Zhijun He602d3702014-05-02 17:38:15 -07006256must not update the exposure and sensitivity parameters
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006257while the lock is active.<wbr/></p>
6258<p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
Igor Murashkinca256272014-10-02 15:27:09 -07006259will still take effect while auto-exposure is locked.<wbr/></p>
6260<p>Some rare LEGACY devices may not support
6261this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07006262 </li>
6263 </ul>
6264
6265 </td> <!-- entry_type -->
6266
6267 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07006268 <p>Whether auto-exposure (AE) is currently locked to its latest
Zhijun He602d3702014-05-02 17:38:15 -07006269calculated values.<wbr/></p>
6270 </td>
6271
6272 <td class="entry_units">
6273 </td>
6274
6275 <td class="entry_range">
6276 </td>
6277
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006278 <td class="entry_hal_version">
6279 <p>3.<wbr/>2</p>
6280 </td>
6281
Zhijun He602d3702014-05-02 17:38:15 -07006282 <td class="entry_tags">
6283 <ul class="entry_tags">
6284 <li><a href="#tag_BC">BC</a></li>
6285 </ul>
6286 </td>
6287
6288 </tr>
6289 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006290 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07006291 </tr>
6292 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006293 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006294 <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
6295and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
6296<p>Note that even when AE is locked,<wbr/> the flash may be fired if
6297the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
6298ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Yin-Chia Yeh7754e6a2014-05-05 14:26:03 -07006299<p>When <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> is changed,<wbr/> even if the AE lock
6300is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006301<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
6302when AE is already locked,<wbr/> the camera device will not change the exposure time
6303(<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
6304parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
6305is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
Zhijun Hee7cd5562015-02-05 14:32:57 -08006306<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/>
6307Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p>
6308<p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock
6309the AE if AE is locked by the camera device internally during precapture metering
6310sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an
6311ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence
6312will never succeed in a sequence of preview requests where AE lock is always set
6313to <code>false</code>.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006314<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
6315get locked do not necessarily correspond to the settings that were present in the
6316latest capture result received from the camera device,<wbr/> since additional captures
6317and AE updates may have occurred even before the result was sent out.<wbr/> If an
6318application is switching between automatic and manual control and wishes to eliminate
6319any flicker during the switch,<wbr/> the following procedure is recommended:</p>
6320<ol>
6321<li>Starting in auto-AE mode:</li>
6322<li>Lock AE</li>
6323<li>Wait for the first result to be output that has the AE locked</li>
6324<li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
6325<li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
6326</ol>
Zhijun He602d3702014-05-02 17:38:15 -07006327<p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
6328 </td>
6329 </tr>
6330
6331
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006332 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07006333 <!-- end of entry -->
6334
6335
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006336 <tr class="entry" id="dynamic_android.control.aeMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006337 <td class="entry_name
6338 " rowspan="3">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006339 android.<wbr/>control.<wbr/>ae<wbr/>Mode
6340 </td>
6341 <td class="entry_type">
6342 <span class="entry_type_name entry_type_name_enum">byte</span>
6343
6344 <span class="entry_type_visibility"> [public]</span>
6345
Igor Murashkin6c936c12014-05-13 14:51:49 -07006346
Igor Murashkinca256272014-10-02 15:27:09 -07006347 <span class="entry_type_hwlevel">[legacy] </span>
6348
Igor Murashkin6c936c12014-05-13 14:51:49 -07006349
6350
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006351 <ul class="entry_type_enum">
6352 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006353 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006354 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
6355<p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
Igor Murashkina10351a2014-01-15 17:05:22 -08006356<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
6357<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
6358device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
Igor Murashkinca256272014-10-02 15:27:09 -07006359a flash unit for this camera device.<wbr/></p>
Yin-Chia Yeh668e43c2014-11-12 11:38:10 -08006360<p>Note that auto-white balance (AWB) and auto-focus (AF)
6361behavior is device dependent when AE is in OFF mode.<wbr/>
6362To have consistent behavior across different devices,<wbr/>
6363it is recommended to either set AWB and AF to OFF mode
6364or lock AWB and AF before setting AE to OFF.<wbr/>
6365See <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/>
6366<a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>,<wbr/> and <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
6367for more details.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07006368<p>LEGACY devices do not support the OFF mode and will
6369override attempts to use this value to ON.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006370 </li>
6371 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006372 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006373 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006374with no flash control.<wbr/></p>
6375<p>The application's values for
Igor Murashkina10351a2014-01-15 17:05:22 -08006376<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6377<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
6378<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
6379application has control over the various
6380android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006381 </li>
6382 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006383 <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006384 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
6385the camera's flash unit,<wbr/> firing it in low-light
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006386conditions.<wbr/></p>
6387<p>The flash may be fired during a precapture sequence
6388(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
6389may be fired for captures for which the
Igor Murashkina10351a2014-01-15 17:05:22 -08006390<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
6391STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006392 </li>
6393 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006394 <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006395 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
6396the camera's flash unit,<wbr/> always firing it for still
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006397captures.<wbr/></p>
6398<p>The flash may be fired during a precapture sequence
6399(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
6400will always be fired for captures for which the
Igor Murashkina10351a2014-01-15 17:05:22 -08006401<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
6402STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006403 </li>
6404 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006405 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006406 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006407reduction.<wbr/></p>
6408<p>If deemed necessary by the camera device,<wbr/> a red eye
6409reduction flash will fire during the precapture
6410sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006411 </li>
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08006412 <li>
6413 <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
6414 <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
6415<p>It informs the camera device that an external flash has been turned on,<wbr/> and that
6416metering (and continuous focus if active) should be quickly recaculated to account
6417for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
6418<p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
6419other available AE modes.<wbr/></p>
Chien-Yu Chen06513f12018-03-15 11:17:20 -07006420<p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
6421be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08006422flash.<wbr/></p></span>
6423 </li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006424 </ul>
6425
6426 </td> <!-- entry_type -->
6427
6428 <td class="entry_description">
6429 <p>The desired mode for the camera device's
6430auto-exposure routine.<wbr/></p>
6431 </td>
6432
6433 <td class="entry_units">
6434 </td>
6435
6436 <td class="entry_range">
6437 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
6438 </td>
6439
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006440 <td class="entry_hal_version">
6441 <p>3.<wbr/>2</p>
6442 </td>
6443
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006444 <td class="entry_tags">
6445 <ul class="entry_tags">
6446 <li><a href="#tag_BC">BC</a></li>
6447 </ul>
6448 </td>
6449
6450 </tr>
6451 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006452 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006453 </tr>
6454 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006455 <td class="entry_details" colspan="6">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006456 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
6457AUTO.<wbr/></p>
6458<p>When set to any of the ON modes,<wbr/> the camera device's
6459auto-exposure routine is enabled,<wbr/> overriding the
6460application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
6461and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6462<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
6463<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
6464is selected,<wbr/> the camera device's flash unit controls are
6465also overridden.<wbr/></p>
6466<p>The FLASH modes are only available if the camera device
6467has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
6468<p>If flash TORCH mode is desired,<wbr/> this field must be set to
6469ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
6470<p>When set to any of the ON modes,<wbr/> the values chosen by the
6471camera device auto-exposure routine for the overridden
6472fields for a given capture will be available in its
6473CaptureResult.<wbr/></p>
6474 </td>
6475 </tr>
6476
6477
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006478 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08006479 <!-- end of entry -->
6480
6481
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006482 <tr class="entry" id="dynamic_android.control.aeRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006483 <td class="entry_name
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07006484 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006485 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006486 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006487 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006488 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006489 <span class="entry_type_container">x</span>
6490
6491 <span class="entry_type_array">
6492 5 x area_count
6493 </span>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07006494 <span class="entry_type_visibility"> [public as meteringRectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006495
6496
Igor Murashkin6c936c12014-05-13 14:51:49 -07006497
6498
6499
Igor Murashkinca256272014-10-02 15:27:09 -07006500
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006501 </td> <!-- entry_type -->
6502
6503 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006504 <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006505 </td>
6506
6507 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006508 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006509 </td>
6510
6511 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006512 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
6513<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006514 </td>
6515
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006516 <td class="entry_hal_version">
6517 <p>3.<wbr/>2</p>
6518 </td>
6519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006520 <td class="entry_tags">
6521 <ul class="entry_tags">
6522 <li><a href="#tag_BC">BC</a></li>
6523 </ul>
6524 </td>
6525
6526 </tr>
6527 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006528 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006529 </tr>
6530 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006531 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006532 <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07006533Otherwise will always be present.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006534<p>The maximum number of regions supported by the device is determined by the value
6535of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07006536<p>The coordinate system is based on the active pixel array,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08006537with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006538(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
6539<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Yin-Chia Yehdc182572014-05-14 14:05:20 -07006540bottom-right pixel in the active pixel array.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006541<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
Yin-Chia Yehdc182572014-05-14 14:05:20 -07006542for every pixel in the area.<wbr/> This means that a large metering area
6543with the same weight as a smaller area will have more effect in
6544the metering result.<wbr/> Metering areas can partially overlap and the
6545camera device will add the weights in the overlap region.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006546<p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
6547region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
6548weight is ignored.<wbr/></p>
6549<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
6550camera device.<wbr/></p>
6551<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
6552capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
6553region and output only the intersection rectangle as the metering region in the result
6554metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
6555not reported in the result metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006556 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006557 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006558
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07006559 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006560 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07006561 </tr>
6562 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006563 <td class="entry_details" colspan="6">
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07006564 <p>The HAL level representation of MeteringRectangle[] is a
6565int[5 * area_<wbr/>count].<wbr/>
6566Every five elements represent a metering region of
6567(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
6568The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
6569exclusive on xmax and ymax.<wbr/></p>
6570 </td>
6571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006572
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006573 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006574 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006575
6576
Zhijun He602d3702014-05-02 17:38:15 -07006577 <tr class="entry" id="dynamic_android.control.aeTargetFpsRange">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006578 <td class="entry_name
6579 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07006580 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
6581 </td>
6582 <td class="entry_type">
6583 <span class="entry_type_name">int32</span>
6584 <span class="entry_type_container">x</span>
6585
6586 <span class="entry_type_array">
6587 2
6588 </span>
Igor Murashkin35a108f2014-05-27 10:51:25 -07006589 <span class="entry_type_visibility"> [public as rangeInt]</span>
Zhijun He602d3702014-05-02 17:38:15 -07006590
6591
Igor Murashkinca256272014-10-02 15:27:09 -07006592 <span class="entry_type_hwlevel">[legacy] </span>
6593
Igor Murashkin6c936c12014-05-13 14:51:49 -07006594
6595
6596
Zhijun He602d3702014-05-02 17:38:15 -07006597 </td> <!-- entry_type -->
6598
6599 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006600 <p>Range over which the auto-exposure routine can
6601adjust the capture frame rate to maintain good
6602exposure.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006603 </td>
6604
6605 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006606 Frames per second (FPS)
Zhijun He602d3702014-05-02 17:38:15 -07006607 </td>
6608
6609 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006610 <p>Any of the entries in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
Zhijun He602d3702014-05-02 17:38:15 -07006611 </td>
6612
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006613 <td class="entry_hal_version">
6614 <p>3.<wbr/>2</p>
6615 </td>
6616
Zhijun He602d3702014-05-02 17:38:15 -07006617 <td class="entry_tags">
6618 <ul class="entry_tags">
6619 <li><a href="#tag_BC">BC</a></li>
6620 </ul>
6621 </td>
6622
6623 </tr>
6624 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006625 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07006626 </tr>
6627 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006628 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07006629 <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006630manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
6631<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006632 </td>
6633 </tr>
6634
6635
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006636 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07006637 <!-- end of entry -->
6638
6639
6640 <tr class="entry" id="dynamic_android.control.aePrecaptureTrigger">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006641 <td class="entry_name
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07006642 " rowspan="5">
Zhijun He602d3702014-05-02 17:38:15 -07006643 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
6644 </td>
6645 <td class="entry_type">
6646 <span class="entry_type_name entry_type_name_enum">byte</span>
6647
6648 <span class="entry_type_visibility"> [public]</span>
6649
Igor Murashkin6c936c12014-05-13 14:51:49 -07006650
Igor Murashkinca256272014-10-02 15:27:09 -07006651 <span class="entry_type_hwlevel">[limited] </span>
6652
Igor Murashkin6c936c12014-05-13 14:51:49 -07006653
6654
Zhijun He602d3702014-05-02 17:38:15 -07006655 <ul class="entry_type_enum">
6656 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006657 <span class="entry_type_enum_name">IDLE (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07006658 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
6659 </li>
6660 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006661 <span class="entry_type_enum_name">START (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07006662 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006663by the camera device.<wbr/></p>
6664<p>The exact effect of the precapture trigger depends on
6665the current AE mode and state.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07006666 </li>
Zhijun Hee7cd5562015-02-05 14:32:57 -08006667 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006668 <span class="entry_type_enum_name">CANCEL (v3.2)</span>
Zhijun Hee7cd5562015-02-05 14:32:57 -08006669 <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
6670precapture metering sequence,<wbr/> the auto-exposure routine will return to its
6671initial state.<wbr/></p></span>
6672 </li>
Zhijun He602d3702014-05-02 17:38:15 -07006673 </ul>
6674
6675 </td> <!-- entry_type -->
6676
6677 <td class="entry_description">
6678 <p>Whether the camera device will trigger a precapture
6679metering sequence when it processes this request.<wbr/></p>
6680 </td>
6681
6682 <td class="entry_units">
6683 </td>
6684
6685 <td class="entry_range">
6686 </td>
6687
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006688 <td class="entry_hal_version">
6689 <p>3.<wbr/>2</p>
6690 </td>
6691
Zhijun He602d3702014-05-02 17:38:15 -07006692 <td class="entry_tags">
6693 <ul class="entry_tags">
6694 <li><a href="#tag_BC">BC</a></li>
6695 </ul>
6696 </td>
6697
6698 </tr>
6699 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006700 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07006701 </tr>
6702 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006703 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07006704 <p>This entry is normally set to IDLE,<wbr/> or is not
6705included at all in the request settings.<wbr/> When included and
Zhijun Hecad66192015-02-06 13:42:40 -08006706set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
Zhijun He602d3702014-05-02 17:38:15 -07006707precapture metering sequence.<wbr/></p>
Zhijun Hee7cd5562015-02-05 14:32:57 -08006708<p>When set to CANCEL,<wbr/> the camera device will cancel any active
6709precapture metering trigger,<wbr/> and return to its initial AE state.<wbr/>
6710If a precapture metering sequence is already completed,<wbr/> and the camera
6711device has implicitly locked the AE for subsequent still capture,<wbr/> the
6712CANCEL trigger will unlock the AE and return to its initial AE state.<wbr/></p>
Zhijun Hecad66192015-02-06 13:42:40 -08006713<p>The precapture sequence should be triggered before starting a
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006714high-quality still capture for final metering decisions to
6715be made,<wbr/> and for firing pre-capture flash pulses to estimate
6716scene brightness and required final capture flash power,<wbr/> when
6717the flash is enabled.<wbr/></p>
6718<p>Normally,<wbr/> this entry should be set to START for only a
6719single request,<wbr/> and the application should wait until the
6720sequence completes before starting a new one.<wbr/></p>
Zhijun Hecad66192015-02-06 13:42:40 -08006721<p>When a precapture metering sequence is finished,<wbr/> the camera device
6722may lock the auto-exposure routine internally to be able to accurately expose the
6723subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
6724For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
6725submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
6726submit a request with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == true</code>,<wbr/> followed by a request
6727with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == false</code>,<wbr/> if the application decides not to submit a
Zhijun Hee7cd5562015-02-05 14:32:57 -08006728still capture request after the precapture sequence completes.<wbr/> Alternatively,<wbr/> for
6729API level 23 or newer devices,<wbr/> the CANCEL can be used to unlock the camera device
6730internally locked AE if the application doesn't submit a still capture request after
6731the AE precapture trigger.<wbr/> Note that,<wbr/> the CANCEL was added in API level 23,<wbr/> and must not
6732be used in devices that have earlier API levels.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006733<p>The exact effect of auto-exposure (AE) precapture trigger
6734depends on the current AE mode and state; see
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07006735<a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
6736details.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07006737<p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
6738capturing a high-resolution JPEG image will automatically trigger a
6739precapture sequence before the high-resolution capture,<wbr/> including
6740potentially firing a pre-capture flash.<wbr/></p>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07006741<p>Using the precapture trigger and the auto-focus trigger <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
6742simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
6743the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
6744focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
6745trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
6746changes to <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> indicating the start of the precapture sequence,<wbr/> for
6747example.<wbr/></p>
6748<p>If both the precapture and the auto-focus trigger are activated on the same request,<wbr/> then
6749the camera device will complete them in the optimal order for that device.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07006750 </td>
6751 </tr>
6752
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07006753 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006754 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07006755 </tr>
6756 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006757 <td class="entry_details" colspan="6">
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07006758 <p>The HAL must support triggering the AE precapture trigger while an AF trigger is active
6759(and vice versa),<wbr/> or at the same time as the AF trigger.<wbr/> It is acceptable for the HAL to
6760treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
6761AE trigger.<wbr/> Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
6762to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
6763 </td>
6764 </tr>
Zhijun He602d3702014-05-02 17:38:15 -07006765
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006766 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07006767 <!-- end of entry -->
6768
6769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006770 <tr class="entry" id="dynamic_android.control.aeState">
Igor Murashkin6c936c12014-05-13 14:51:49 -07006771 <td class="entry_name
6772 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006773 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006774 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006775 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006776 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006777
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006778 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006779
Igor Murashkin6c936c12014-05-13 14:51:49 -07006780
Igor Murashkinca256272014-10-02 15:27:09 -07006781 <span class="entry_type_hwlevel">[limited] </span>
6782
Igor Murashkin6c936c12014-05-13 14:51:49 -07006783
6784
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006785 <ul class="entry_type_enum">
6786 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006787 <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006788 <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
6789<p>When a camera device is opened,<wbr/> it starts in
Zhijun He3fc95122014-02-11 17:18:29 -08006790this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
6791this state in capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006792 </li>
6793 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006794 <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006795 <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006796for the current scene.<wbr/></p>
6797<p>This is a transient state,<wbr/> the camera device may skip
Zhijun He3fc95122014-02-11 17:18:29 -08006798reporting this state in capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006799 </li>
6800 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006801 <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006802 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08006803current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006804 </li>
6805 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006806 <span class="entry_type_enum_name">LOCKED (v3.2)</span>
Zhijun He92e698d2014-01-13 16:24:31 -08006807 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006808 </li>
6809 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006810 <span class="entry_type_enum_name">FLASH_REQUIRED (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006811 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
6812needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08006813capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006814 </li>
6815 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08006816 <span class="entry_type_enum_name">PRECAPTURE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006817 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006818and is currently executing it.<wbr/></p>
6819<p>Precapture can be triggered through setting
Zhijun Hee7cd5562015-02-05 14:32:57 -08006820<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to START.<wbr/> Currently
6821active and completed (if it causes camera device internal AE lock) precapture
6822metering sequence can be canceled through setting
6823<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to CANCEL.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006824<p>Once PRECAPTURE completes,<wbr/> AE will transition to CONVERGED
6825or FLASH_<wbr/>REQUIRED as appropriate.<wbr/> This is a transient
6826state,<wbr/> the camera device may skip reporting this state in
6827capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006828 </li>
6829 </ul>
6830
6831 </td> <!-- entry_type -->
6832
6833 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07006834 <p>Current state of the auto-exposure (AE) algorithm.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006835 </td>
6836
6837 <td class="entry_units">
6838 </td>
6839
6840 <td class="entry_range">
6841 </td>
6842
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006843 <td class="entry_hal_version">
6844 <p>3.<wbr/>2</p>
6845 </td>
6846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006847 <td class="entry_tags">
6848 </td>
6849
6850 </tr>
6851 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006852 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006853 </tr>
6854 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08006855 <td class="entry_details" colspan="6">
Zhijun He92e698d2014-01-13 16:24:31 -08006856 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
6857resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
6858or <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
6859the algorithm states to INACTIVE.<wbr/></p>
6860<p>The camera device can do several state transitions between two results,<wbr/> if it is
6861allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
6862seen in a result.<wbr/></p>
6863<p>The state in the result is the state for this image (in sync with this image): if
6864AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
6865be good to use.<wbr/></p>
6866<p>Below are state transition tables for different AE modes.<wbr/></p>
6867<table>
6868<thead>
6869<tr>
6870<th align="center">State</th>
6871<th align="center">Transition Cause</th>
6872<th align="center">New State</th>
6873<th align="center">Notes</th>
6874</tr>
6875</thead>
6876<tbody>
6877<tr>
6878<td align="center">INACTIVE</td>
6879<td align="center"></td>
6880<td align="center">INACTIVE</td>
6881<td align="center">Camera device auto exposure algorithm is disabled</td>
6882</tr>
6883</tbody>
6884</table>
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08006885<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON*:</p>
Zhijun He92e698d2014-01-13 16:24:31 -08006886<table>
6887<thead>
6888<tr>
6889<th align="center">State</th>
6890<th align="center">Transition Cause</th>
6891<th align="center">New State</th>
6892<th align="center">Notes</th>
6893</tr>
6894</thead>
6895<tbody>
6896<tr>
6897<td align="center">INACTIVE</td>
6898<td align="center">Camera device initiates AE scan</td>
6899<td align="center">SEARCHING</td>
6900<td align="center">Values changing</td>
6901</tr>
6902<tr>
6903<td align="center">INACTIVE</td>
6904<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
6905<td align="center">LOCKED</td>
6906<td align="center">Values locked</td>
6907</tr>
6908<tr>
6909<td align="center">SEARCHING</td>
6910<td align="center">Camera device finishes AE scan</td>
6911<td align="center">CONVERGED</td>
6912<td align="center">Good values,<wbr/> not changing</td>
6913</tr>
6914<tr>
6915<td align="center">SEARCHING</td>
6916<td align="center">Camera device finishes AE scan</td>
6917<td align="center">FLASH_<wbr/>REQUIRED</td>
6918<td align="center">Converged but too dark w/<wbr/>o flash</td>
6919</tr>
6920<tr>
6921<td align="center">SEARCHING</td>
6922<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
6923<td align="center">LOCKED</td>
6924<td align="center">Values locked</td>
6925</tr>
6926<tr>
6927<td align="center">CONVERGED</td>
6928<td align="center">Camera device initiates AE scan</td>
6929<td align="center">SEARCHING</td>
6930<td align="center">Values changing</td>
6931</tr>
6932<tr>
6933<td align="center">CONVERGED</td>
6934<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
6935<td align="center">LOCKED</td>
6936<td align="center">Values locked</td>
6937</tr>
6938<tr>
6939<td align="center">FLASH_<wbr/>REQUIRED</td>
6940<td align="center">Camera device initiates AE scan</td>
6941<td align="center">SEARCHING</td>
6942<td align="center">Values changing</td>
6943</tr>
6944<tr>
6945<td align="center">FLASH_<wbr/>REQUIRED</td>
6946<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
6947<td align="center">LOCKED</td>
6948<td align="center">Values locked</td>
6949</tr>
6950<tr>
6951<td align="center">LOCKED</td>
6952<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
6953<td align="center">SEARCHING</td>
6954<td align="center">Values not good after unlock</td>
6955</tr>
6956<tr>
6957<td align="center">LOCKED</td>
6958<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
6959<td align="center">CONVERGED</td>
6960<td align="center">Values good after unlock</td>
6961</tr>
6962<tr>
6963<td align="center">LOCKED</td>
6964<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
6965<td align="center">FLASH_<wbr/>REQUIRED</td>
6966<td align="center">Exposure good,<wbr/> but too dark</td>
6967</tr>
6968<tr>
6969<td align="center">PRECAPTURE</td>
6970<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
6971<td align="center">CONVERGED</td>
6972<td align="center">Ready for high-quality capture</td>
6973</tr>
6974<tr>
6975<td align="center">PRECAPTURE</td>
6976<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
6977<td align="center">LOCKED</td>
6978<td align="center">Ready for high-quality capture</td>
6979</tr>
6980<tr>
Zhijun Hee7cd5562015-02-05 14:32:57 -08006981<td align="center">LOCKED</td>
6982<td align="center">aeLock is ON and aePrecaptureTrigger is START</td>
6983<td align="center">LOCKED</td>
6984<td align="center">Precapture trigger is ignored when AE is already locked</td>
6985</tr>
6986<tr>
6987<td align="center">LOCKED</td>
6988<td align="center">aeLock is ON and aePrecaptureTrigger is CANCEL</td>
6989<td align="center">LOCKED</td>
6990<td align="center">Precapture trigger is ignored when AE is already locked</td>
6991</tr>
6992<tr>
6993<td align="center">Any state (excluding LOCKED)</td>
Zhijun He92e698d2014-01-13 16:24:31 -08006994<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
6995<td align="center">PRECAPTURE</td>
6996<td align="center">Start AE precapture metering sequence</td>
6997</tr>
Zhijun Hee7cd5562015-02-05 14:32:57 -08006998<tr>
6999<td align="center">Any state (excluding LOCKED)</td>
7000<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL</td>
7001<td align="center">INACTIVE</td>
7002<td align="center">Currently active precapture metering sequence is canceled</td>
7003</tr>
Zhijun He92e698d2014-01-13 16:24:31 -08007004</tbody>
7005</table>
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08007006<p>If the camera device supports AE external flash mode (ON_<wbr/>EXTERNAL_<wbr/>FLASH is included in
Chien-Yu Chen06513f12018-03-15 11:17:20 -07007007<a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a>),<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must be FLASH_<wbr/>REQUIRED after
7008the camera device finishes AE scan and it's too dark without flash.<wbr/></p>
Zhijun He3fc95122014-02-11 17:18:29 -08007009<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
7010without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
7011can be skipped in that manner is called a transient state.<wbr/></p>
Chien-Yu Chen11f62a52018-01-11 11:32:52 -08007012<p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON*),<wbr/> in addition to the state transitions
Zhijun He3fc95122014-02-11 17:18:29 -08007013listed in above table,<wbr/> it is also legal for the camera device to skip one or more
7014transient states between two results.<wbr/> See below table for examples:</p>
7015<table>
7016<thead>
7017<tr>
7018<th align="center">State</th>
7019<th align="center">Transition Cause</th>
7020<th align="center">New State</th>
7021<th align="center">Notes</th>
7022</tr>
7023</thead>
7024<tbody>
7025<tr>
7026<td align="center">INACTIVE</td>
7027<td align="center">Camera device finished AE scan</td>
7028<td align="center">CONVERGED</td>
7029<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
7030</tr>
7031<tr>
Zhijun Hee7cd5562015-02-05 14:32:57 -08007032<td align="center">Any state (excluding LOCKED)</td>
Zhijun He3fc95122014-02-11 17:18:29 -08007033<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
7034<td align="center">FLASH_<wbr/>REQUIRED</td>
7035<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
7036</tr>
7037<tr>
Zhijun Hee7cd5562015-02-05 14:32:57 -08007038<td align="center">Any state (excluding LOCKED)</td>
Zhijun He3fc95122014-02-11 17:18:29 -08007039<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
7040<td align="center">CONVERGED</td>
7041<td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
7042</tr>
7043<tr>
Zhijun Hee7cd5562015-02-05 14:32:57 -08007044<td align="center">Any state (excluding LOCKED)</td>
7045<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
7046<td align="center">FLASH_<wbr/>REQUIRED</td>
7047<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence is canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
7048</tr>
7049<tr>
7050<td align="center">Any state (excluding LOCKED)</td>
7051<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
7052<td align="center">CONVERGED</td>
7053<td align="center">Converged after a precapture sequenceis canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
7054</tr>
7055<tr>
Zhijun He3fc95122014-02-11 17:18:29 -08007056<td align="center">CONVERGED</td>
7057<td align="center">Camera device finished AE scan</td>
7058<td align="center">FLASH_<wbr/>REQUIRED</td>
7059<td align="center">Converged but too dark w/<wbr/>o flash after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
7060</tr>
7061<tr>
7062<td align="center">FLASH_<wbr/>REQUIRED</td>
7063<td align="center">Camera device finished AE scan</td>
7064<td align="center">CONVERGED</td>
7065<td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
7066</tr>
7067</tbody>
7068</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007069 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007070 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007071
7072
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007073 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007074 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007075
7076
7077 <tr class="entry" id="dynamic_android.control.afMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007078 <td class="entry_name
Zhijun Hea19ede82014-05-27 15:06:42 -07007079 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007080 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007081 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007082 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007083 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007084
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007085 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007086
Igor Murashkin6c936c12014-05-13 14:51:49 -07007087
Igor Murashkinca256272014-10-02 15:27:09 -07007088 <span class="entry_type_hwlevel">[legacy] </span>
7089
Igor Murashkin6c936c12014-05-13 14:51:49 -07007090
7091
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007092 <ul class="entry_type_enum">
7093 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007094 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08007095 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
7096<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007097application.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007098 </li>
7099 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007100 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007101 <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
7102<p>In this mode,<wbr/> the lens does not move unless
Igor Murashkina10351a2014-01-15 17:05:22 -08007103the autofocus trigger action is called.<wbr/> When that trigger
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007104is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
Igor Murashkina10351a2014-01-15 17:05:22 -08007105the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007106<p>Always supported if lens is not fixed focus.<wbr/></p>
7107<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
7108is fixed-focus.<wbr/></p>
Igor Murashkina10351a2014-01-15 17:05:22 -08007109<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
7110and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007111 </li>
7112 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007113 <span class="entry_type_enum_name">MACRO (v3.2)</span>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007114 <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
7115<p>In this mode,<wbr/> the lens does not move unless the
7116autofocus trigger action is called.<wbr/> When that trigger is
7117activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
7118the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
7119mode is optimized for focusing on objects very close to
7120the camera.<wbr/></p>
7121<p>When that trigger is activated,<wbr/> AF will transition to
Igor Murashkina10351a2014-01-15 17:05:22 -08007122ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007123NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
Igor Murashkina10351a2014-01-15 17:05:22 -08007124position to default,<wbr/> and sets the AF state to
7125INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007126 </li>
7127 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007128 <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08007129 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
7130position continually to attempt to provide a
7131constantly-in-focus image stream.<wbr/></p>
7132<p>The focusing behavior should be suitable for good quality
7133video recording; typically this means slower focus
7134movement and no overshoots.<wbr/> When the AF trigger is not
7135involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
7136and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
7137states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
7138the algorithm should immediately transition into
7139AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
7140lens position until a cancel AF trigger is received.<wbr/></p>
7141<p>Once cancel is received,<wbr/> the algorithm should transition
7142back to INACTIVE and resume passive scan.<wbr/> Note that this
7143behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
7144ongoing PASSIVE_<wbr/>SCAN must immediately be
7145canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007146 </li>
7147 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007148 <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08007149 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
7150position continually to attempt to provide a
7151constantly-in-focus image stream.<wbr/></p>
7152<p>The focusing behavior should be suitable for still image
7153capture; typically this means focusing as fast as
7154possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
7155algorithm should start in INACTIVE state,<wbr/> and then
7156transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
7157appropriate as it attempts to maintain focus.<wbr/> When the AF
7158trigger is activated,<wbr/> the algorithm should finish its
7159PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
7160AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
7161lens position until a cancel AF trigger is received.<wbr/></p>
7162<p>When the AF cancel trigger is activated,<wbr/> the algorithm
7163should transition back to INACTIVE and then act as if it
7164has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007165 </li>
7166 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007167 <span class="entry_type_enum_name">EDOF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007168 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
7169<p>The camera device will produce images with an extended
7170depth of field automatically; no special focusing
7171operations need to be done before taking a picture.<wbr/></p>
7172<p>AF triggers are ignored,<wbr/> and the AF state will always be
Igor Murashkina10351a2014-01-15 17:05:22 -08007173INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007174 </li>
7175 </ul>
7176
7177 </td> <!-- entry_type -->
7178
7179 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007180 <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
7181mode it is set to.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007182 </td>
7183
7184 <td class="entry_units">
7185 </td>
7186
7187 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08007188 <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 -08007189 </td>
7190
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007191 <td class="entry_hal_version">
7192 <p>3.<wbr/>2</p>
7193 </td>
7194
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007195 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007196 <ul class="entry_tags">
7197 <li><a href="#tag_BC">BC</a></li>
7198 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007199 </td>
7200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007201 </tr>
7202 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007203 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007204 </tr>
7205 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007206 <td class="entry_details" colspan="6">
Zhijun He25b8ac52014-02-24 09:49:37 -08007207 <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
Yin-Chia Yeh668e43c2014-11-12 11:38:10 -08007208(i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/> Also note that
7209when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
7210dependent.<wbr/> It is recommended to lock AF by using <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> before
7211setting <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> to OFF,<wbr/> or set AF mode to OFF when AE is OFF.<wbr/></p>
Zhijun Hef163fa92014-01-14 09:59:04 -08007212<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08007213the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
Zhijun Hef163fa92014-01-14 09:59:04 -08007214in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007215 </td>
7216 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007217
Zhijun Hea19ede82014-05-27 15:06:42 -07007218 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007219 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Hea19ede82014-05-27 15:06:42 -07007220 </tr>
7221 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007222 <td class="entry_details" colspan="6">
Zhijun Hea19ede82014-05-27 15:06:42 -07007223 <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
7224request (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> <code>==</code> START).<wbr/> After an AF trigger,<wbr/> the afState will end
7225up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
7226<a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> which indicates that the lens is
7227locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
7228after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
7229the same focal plane remains in focus.<wbr/></p>
7230<p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
7231scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
7232(see <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> the HAL should maintain the
7233same lock behavior as above.<wbr/></p>
7234<p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
7235focus distance control depends on the <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a>.<wbr/>
7236However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
7237manual control.<wbr/></p>
7238<p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
7239camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
7240remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
7241by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
7242that will arise on camera modules with open-loop VCMs.<wbr/></p>
7243 </td>
7244 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007245
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007246 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007247 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007248
7249
7250 <tr class="entry" id="dynamic_android.control.afRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007251 <td class="entry_name
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07007252 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007253 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007254 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007255 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007256 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007257 <span class="entry_type_container">x</span>
7258
7259 <span class="entry_type_array">
7260 5 x area_count
7261 </span>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07007262 <span class="entry_type_visibility"> [public as meteringRectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007263
7264
Igor Murashkin6c936c12014-05-13 14:51:49 -07007265
7266
7267
Igor Murashkinca256272014-10-02 15:27:09 -07007268
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007269 </td> <!-- entry_type -->
7270
7271 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007272 <p>List of metering areas to use for auto-focus.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007273 </td>
7274
7275 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007276 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007277 </td>
7278
7279 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007280 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
7281<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282 </td>
7283
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007284 <td class="entry_hal_version">
7285 <p>3.<wbr/>2</p>
7286 </td>
7287
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007288 <td class="entry_tags">
7289 <ul class="entry_tags">
7290 <li><a href="#tag_BC">BC</a></li>
7291 </ul>
7292 </td>
7293
7294 </tr>
7295 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007296 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007297 </tr>
7298 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007299 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007300 <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07007301Otherwise will always be present.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007302<p>The maximum number of focus areas supported by the device is determined by the value
7303of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07007304<p>The coordinate system is based on the active pixel array,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08007305with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007306(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
7307<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Yin-Chia Yehdc182572014-05-14 14:05:20 -07007308bottom-right pixel in the active pixel array.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007309<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
Yin-Chia Yehdc182572014-05-14 14:05:20 -07007310for every pixel in the area.<wbr/> This means that a large metering area
7311with the same weight as a smaller area will have more effect in
7312the metering result.<wbr/> Metering areas can partially overlap and the
7313camera device will add the weights in the overlap region.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007314<p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
7315is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
7316ignored.<wbr/></p>
7317<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
Shuzhen Wang608e0582018-02-08 12:03:09 -08007318camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
7319the region selected by the camera device as the focus area of interest.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07007320<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
7321capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
7322region and output only the intersection rectangle as the metering region in the result
7323metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
7324not reported in the result metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007325 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007326 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007327
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07007328 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007329 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07007330 </tr>
7331 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007332 <td class="entry_details" colspan="6">
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07007333 <p>The HAL level representation of MeteringRectangle[] is a
7334int[5 * area_<wbr/>count].<wbr/>
7335Every five elements represent a metering region of
7336(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
7337The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
7338exclusive on xmax and ymax.<wbr/></p>
7339 </td>
7340 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007341
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007342 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007343 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007344
7345
Zhijun He602d3702014-05-02 17:38:15 -07007346 <tr class="entry" id="dynamic_android.control.afTrigger">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007347 <td class="entry_name
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07007348 " rowspan="5">
Zhijun He602d3702014-05-02 17:38:15 -07007349 android.<wbr/>control.<wbr/>af<wbr/>Trigger
7350 </td>
7351 <td class="entry_type">
7352 <span class="entry_type_name entry_type_name_enum">byte</span>
7353
7354 <span class="entry_type_visibility"> [public]</span>
7355
Igor Murashkin6c936c12014-05-13 14:51:49 -07007356
Igor Murashkinca256272014-10-02 15:27:09 -07007357 <span class="entry_type_hwlevel">[legacy] </span>
7358
Igor Murashkin6c936c12014-05-13 14:51:49 -07007359
7360
Zhijun He602d3702014-05-02 17:38:15 -07007361 <ul class="entry_type_enum">
7362 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007363 <span class="entry_type_enum_name">IDLE (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07007364 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
7365 </li>
7366 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007367 <span class="entry_type_enum_name">START (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07007368 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
7369 </li>
7370 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007371 <span class="entry_type_enum_name">CANCEL (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07007372 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
7373state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
7374 </li>
7375 </ul>
7376
7377 </td> <!-- entry_type -->
7378
7379 <td class="entry_description">
7380 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
7381 </td>
7382
7383 <td class="entry_units">
7384 </td>
7385
7386 <td class="entry_range">
7387 </td>
7388
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007389 <td class="entry_hal_version">
7390 <p>3.<wbr/>2</p>
7391 </td>
7392
Zhijun He602d3702014-05-02 17:38:15 -07007393 <td class="entry_tags">
7394 <ul class="entry_tags">
7395 <li><a href="#tag_BC">BC</a></li>
7396 </ul>
7397 </td>
7398
7399 </tr>
7400 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007401 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07007402 </tr>
7403 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007404 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07007405 <p>This entry is normally set to IDLE,<wbr/> or is not
7406included at all in the request settings.<wbr/></p>
7407<p>When included and set to START,<wbr/> the camera device will trigger the
7408autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
7409<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
7410and return to its initial AF state.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007411<p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
7412single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
7413START for multiple captures in a row means restarting the AF operation over
7414and over again.<wbr/></p>
7415<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what the trigger means for each AF mode.<wbr/></p>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07007416<p>Using the autofocus trigger and the precapture trigger <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
7417simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
7418the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
7419focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
7420trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
7421changes to <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>,<wbr/> for example.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07007422 </td>
7423 </tr>
7424
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07007425 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007426 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07007427 </tr>
7428 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007429 <td class="entry_details" colspan="6">
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07007430 <p>The HAL must support triggering the AF trigger while an AE precapture trigger is active
7431(and vice versa),<wbr/> or at the same time as the AE trigger.<wbr/> It is acceptable for the HAL to
7432treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
7433AE trigger.<wbr/> Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
7434to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
7435 </td>
7436 </tr>
Zhijun He602d3702014-05-02 17:38:15 -07007437
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007438 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07007439 <!-- end of entry -->
7440
7441
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007442 <tr class="entry" id="dynamic_android.control.afState">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007443 <td class="entry_name
7444 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007445 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007446 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007447 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007448 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007449
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007450 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007451
Igor Murashkin6c936c12014-05-13 14:51:49 -07007452
Igor Murashkinca256272014-10-02 15:27:09 -07007453 <span class="entry_type_hwlevel">[legacy] </span>
7454
Igor Murashkin6c936c12014-05-13 14:51:49 -07007455
7456
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 <ul class="entry_type_enum">
7458 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007459 <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007460 <span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
7461to scan.<wbr/></p>
7462<p>When a camera device is opened,<wbr/> it starts in this
7463state.<wbr/> This is a transient state,<wbr/> the camera device may
7464skip reporting this state in capture
7465result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007466 </li>
7467 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007468 <span class="entry_type_enum_name">PASSIVE_SCAN (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007469 <span class="entry_type_enum_notes"><p>AF is currently performing an AF scan initiated the
7470camera device in a continuous autofocus mode.<wbr/></p>
7471<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
7472state,<wbr/> the camera device may skip reporting this state in
7473capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007474 </li>
7475 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007476 <span class="entry_type_enum_name">PASSIVE_FOCUSED (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007477 <span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
7478restart scanning at any time.<wbr/></p>
7479<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
7480state,<wbr/> the camera device may skip reporting this state in
7481capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007482 </li>
7483 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007484 <span class="entry_type_enum_name">ACTIVE_SCAN (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007485 <span class="entry_type_enum_notes"><p>AF is performing an AF scan because it was
7486triggered by AF trigger.<wbr/></p>
7487<p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
7488state,<wbr/> the camera device may skip reporting this state in
7489capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007490 </li>
7491 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007492 <span class="entry_type_enum_name">FOCUSED_LOCKED (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007493 <span class="entry_type_enum_notes"><p>AF believes it is focused correctly and has locked
7494focus.<wbr/></p>
7495<p>This state is reached only after an explicit START AF trigger has been
7496sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus has been obtained.<wbr/></p>
7497<p>The lens will remain stationary until the AF mode (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) is changed or
7498a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007499 </li>
7500 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007501 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007502 <span class="entry_type_enum_notes"><p>AF has failed to focus successfully and has locked
7503focus.<wbr/></p>
7504<p>This state is reached only after an explicit START AF trigger has been
7505sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus cannot be obtained.<wbr/></p>
7506<p>The lens will remain stationary until the AF mode (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) is changed or
7507a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007508 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07007509 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08007510 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007511 <span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
7512and may restart scanning at any time.<wbr/></p>
7513<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
Igor Murashkinca256272014-10-02 15:27:09 -07007514device may skip reporting this state in capture result.<wbr/></p>
7515<p>LEGACY camera devices do not support this state.<wbr/> When a passive
7516scan has finished,<wbr/> it will always go to PASSIVE_<wbr/>FOCUSED.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07007517 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007518 </ul>
7519
7520 </td> <!-- entry_type -->
7521
7522 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07007523 <p>Current state of auto-focus (AF) algorithm.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007524 </td>
7525
7526 <td class="entry_units">
7527 </td>
7528
7529 <td class="entry_range">
7530 </td>
7531
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007532 <td class="entry_hal_version">
7533 <p>3.<wbr/>2</p>
7534 </td>
7535
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007536 <td class="entry_tags">
7537 </td>
7538
7539 </tr>
7540 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007541 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007542 </tr>
7543 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007544 <td class="entry_details" colspan="6">
Zhijun He92e698d2014-01-13 16:24:31 -08007545 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
7546resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
7547or <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
7548the algorithm states to INACTIVE.<wbr/></p>
7549<p>The camera device can do several state transitions between two results,<wbr/> if it is
7550allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
7551seen in a result.<wbr/></p>
7552<p>The state in the result is the state for this image (in sync with this image): if
7553AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
7554be sharp.<wbr/></p>
7555<p>Below are state transition tables for different AF modes.<wbr/></p>
7556<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>
7557<table>
7558<thead>
7559<tr>
7560<th align="center">State</th>
7561<th align="center">Transition Cause</th>
7562<th align="center">New State</th>
7563<th align="center">Notes</th>
7564</tr>
7565</thead>
7566<tbody>
7567<tr>
7568<td align="center">INACTIVE</td>
7569<td align="center"></td>
7570<td align="center">INACTIVE</td>
7571<td align="center">Never changes</td>
7572</tr>
7573</tbody>
7574</table>
7575<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>
7576<table>
7577<thead>
7578<tr>
7579<th align="center">State</th>
7580<th align="center">Transition Cause</th>
7581<th align="center">New State</th>
7582<th align="center">Notes</th>
7583</tr>
7584</thead>
7585<tbody>
7586<tr>
7587<td align="center">INACTIVE</td>
7588<td align="center">AF_<wbr/>TRIGGER</td>
7589<td align="center">ACTIVE_<wbr/>SCAN</td>
7590<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
7591</tr>
7592<tr>
7593<td align="center">ACTIVE_<wbr/>SCAN</td>
7594<td align="center">AF sweep done</td>
7595<td align="center">FOCUSED_<wbr/>LOCKED</td>
7596<td align="center">Focused,<wbr/> Lens now locked</td>
7597</tr>
7598<tr>
7599<td align="center">ACTIVE_<wbr/>SCAN</td>
7600<td align="center">AF sweep done</td>
7601<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7602<td align="center">Not focused,<wbr/> Lens now locked</td>
7603</tr>
7604<tr>
7605<td align="center">ACTIVE_<wbr/>SCAN</td>
7606<td align="center">AF_<wbr/>CANCEL</td>
7607<td align="center">INACTIVE</td>
7608<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
7609</tr>
7610<tr>
7611<td align="center">FOCUSED_<wbr/>LOCKED</td>
7612<td align="center">AF_<wbr/>CANCEL</td>
7613<td align="center">INACTIVE</td>
7614<td align="center">Cancel/<wbr/>reset AF</td>
7615</tr>
7616<tr>
7617<td align="center">FOCUSED_<wbr/>LOCKED</td>
7618<td align="center">AF_<wbr/>TRIGGER</td>
7619<td align="center">ACTIVE_<wbr/>SCAN</td>
7620<td align="center">Start new sweep,<wbr/> Lens now moving</td>
7621</tr>
7622<tr>
7623<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7624<td align="center">AF_<wbr/>CANCEL</td>
7625<td align="center">INACTIVE</td>
7626<td align="center">Cancel/<wbr/>reset AF</td>
7627</tr>
7628<tr>
7629<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7630<td align="center">AF_<wbr/>TRIGGER</td>
7631<td align="center">ACTIVE_<wbr/>SCAN</td>
7632<td align="center">Start new sweep,<wbr/> Lens now moving</td>
7633</tr>
7634<tr>
7635<td align="center">Any state</td>
7636<td align="center">Mode change</td>
7637<td align="center">INACTIVE</td>
7638<td align="center"></td>
7639</tr>
7640</tbody>
7641</table>
Zhijun He3fc95122014-02-11 17:18:29 -08007642<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
7643without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
7644can be skipped in that manner is called a transient state.<wbr/></p>
7645<p>For example,<wbr/> for these AF modes (AF_<wbr/>MODE_<wbr/>AUTO and AF_<wbr/>MODE_<wbr/>MACRO),<wbr/> in addition to the
7646state transitions listed in above table,<wbr/> it is also legal for the camera device to skip
7647one or more transient states between two results.<wbr/> See below table for examples:</p>
7648<table>
7649<thead>
7650<tr>
7651<th align="center">State</th>
7652<th align="center">Transition Cause</th>
7653<th align="center">New State</th>
7654<th align="center">Notes</th>
7655</tr>
7656</thead>
7657<tbody>
7658<tr>
7659<td align="center">INACTIVE</td>
7660<td align="center">AF_<wbr/>TRIGGER</td>
7661<td align="center">FOCUSED_<wbr/>LOCKED</td>
7662<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
7663</tr>
7664<tr>
7665<td align="center">INACTIVE</td>
7666<td align="center">AF_<wbr/>TRIGGER</td>
7667<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7668<td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
7669</tr>
7670<tr>
7671<td align="center">FOCUSED_<wbr/>LOCKED</td>
7672<td align="center">AF_<wbr/>TRIGGER</td>
7673<td align="center">FOCUSED_<wbr/>LOCKED</td>
7674<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
7675</tr>
7676<tr>
7677<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7678<td align="center">AF_<wbr/>TRIGGER</td>
7679<td align="center">FOCUSED_<wbr/>LOCKED</td>
7680<td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
7681</tr>
7682</tbody>
7683</table>
Zhijun He92e698d2014-01-13 16:24:31 -08007684<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>
7685<table>
7686<thead>
7687<tr>
7688<th align="center">State</th>
7689<th align="center">Transition Cause</th>
7690<th align="center">New State</th>
7691<th align="center">Notes</th>
7692</tr>
7693</thead>
7694<tbody>
7695<tr>
7696<td align="center">INACTIVE</td>
7697<td align="center">Camera device initiates new scan</td>
7698<td align="center">PASSIVE_<wbr/>SCAN</td>
7699<td align="center">Start AF scan,<wbr/> Lens now moving</td>
7700</tr>
7701<tr>
7702<td align="center">INACTIVE</td>
7703<td align="center">AF_<wbr/>TRIGGER</td>
7704<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7705<td align="center">AF state query,<wbr/> Lens now locked</td>
7706</tr>
7707<tr>
7708<td align="center">PASSIVE_<wbr/>SCAN</td>
7709<td align="center">Camera device completes current scan</td>
7710<td align="center">PASSIVE_<wbr/>FOCUSED</td>
7711<td align="center">End AF scan,<wbr/> Lens now locked</td>
7712</tr>
7713<tr>
7714<td align="center">PASSIVE_<wbr/>SCAN</td>
7715<td align="center">Camera device fails current scan</td>
7716<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
7717<td align="center">End AF scan,<wbr/> Lens now locked</td>
7718</tr>
7719<tr>
7720<td align="center">PASSIVE_<wbr/>SCAN</td>
7721<td align="center">AF_<wbr/>TRIGGER</td>
7722<td align="center">FOCUSED_<wbr/>LOCKED</td>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007723<td align="center">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
Zhijun He92e698d2014-01-13 16:24:31 -08007724</tr>
7725<tr>
7726<td align="center">PASSIVE_<wbr/>SCAN</td>
7727<td align="center">AF_<wbr/>TRIGGER</td>
7728<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007729<td align="center">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
Zhijun He92e698d2014-01-13 16:24:31 -08007730</tr>
7731<tr>
7732<td align="center">PASSIVE_<wbr/>SCAN</td>
7733<td align="center">AF_<wbr/>CANCEL</td>
7734<td align="center">INACTIVE</td>
7735<td align="center">Reset lens position,<wbr/> Lens now locked</td>
7736</tr>
7737<tr>
7738<td align="center">PASSIVE_<wbr/>FOCUSED</td>
7739<td align="center">Camera device initiates new scan</td>
7740<td align="center">PASSIVE_<wbr/>SCAN</td>
7741<td align="center">Start AF scan,<wbr/> Lens now moving</td>
7742</tr>
7743<tr>
7744<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
7745<td align="center">Camera device initiates new scan</td>
7746<td align="center">PASSIVE_<wbr/>SCAN</td>
7747<td align="center">Start AF scan,<wbr/> Lens now moving</td>
7748</tr>
7749<tr>
7750<td align="center">PASSIVE_<wbr/>FOCUSED</td>
7751<td align="center">AF_<wbr/>TRIGGER</td>
7752<td align="center">FOCUSED_<wbr/>LOCKED</td>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007753<td align="center">Immediate transition,<wbr/> lens now locked</td>
Zhijun He92e698d2014-01-13 16:24:31 -08007754</tr>
7755<tr>
7756<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
7757<td align="center">AF_<wbr/>TRIGGER</td>
7758<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007759<td align="center">Immediate transition,<wbr/> lens now locked</td>
Zhijun He92e698d2014-01-13 16:24:31 -08007760</tr>
7761<tr>
7762<td align="center">FOCUSED_<wbr/>LOCKED</td>
7763<td align="center">AF_<wbr/>TRIGGER</td>
7764<td align="center">FOCUSED_<wbr/>LOCKED</td>
7765<td align="center">No effect</td>
7766</tr>
7767<tr>
7768<td align="center">FOCUSED_<wbr/>LOCKED</td>
7769<td align="center">AF_<wbr/>CANCEL</td>
7770<td align="center">INACTIVE</td>
7771<td align="center">Restart AF scan</td>
7772</tr>
7773<tr>
7774<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7775<td align="center">AF_<wbr/>TRIGGER</td>
7776<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7777<td align="center">No effect</td>
7778</tr>
7779<tr>
7780<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7781<td align="center">AF_<wbr/>CANCEL</td>
7782<td align="center">INACTIVE</td>
7783<td align="center">Restart AF scan</td>
7784</tr>
7785</tbody>
7786</table>
7787<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>
7788<table>
7789<thead>
7790<tr>
7791<th align="center">State</th>
7792<th align="center">Transition Cause</th>
7793<th align="center">New State</th>
7794<th align="center">Notes</th>
7795</tr>
7796</thead>
7797<tbody>
7798<tr>
7799<td align="center">INACTIVE</td>
7800<td align="center">Camera device initiates new scan</td>
7801<td align="center">PASSIVE_<wbr/>SCAN</td>
7802<td align="center">Start AF scan,<wbr/> Lens now moving</td>
7803</tr>
7804<tr>
7805<td align="center">INACTIVE</td>
7806<td align="center">AF_<wbr/>TRIGGER</td>
7807<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7808<td align="center">AF state query,<wbr/> Lens now locked</td>
7809</tr>
7810<tr>
7811<td align="center">PASSIVE_<wbr/>SCAN</td>
7812<td align="center">Camera device completes current scan</td>
7813<td align="center">PASSIVE_<wbr/>FOCUSED</td>
7814<td align="center">End AF scan,<wbr/> Lens now locked</td>
7815</tr>
7816<tr>
7817<td align="center">PASSIVE_<wbr/>SCAN</td>
7818<td align="center">Camera device fails current scan</td>
7819<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
7820<td align="center">End AF scan,<wbr/> Lens now locked</td>
7821</tr>
7822<tr>
7823<td align="center">PASSIVE_<wbr/>SCAN</td>
7824<td align="center">AF_<wbr/>TRIGGER</td>
7825<td align="center">FOCUSED_<wbr/>LOCKED</td>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007826<td align="center">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
Zhijun He92e698d2014-01-13 16:24:31 -08007827</tr>
7828<tr>
7829<td align="center">PASSIVE_<wbr/>SCAN</td>
7830<td align="center">AF_<wbr/>TRIGGER</td>
7831<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07007832<td align="center">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
Zhijun He92e698d2014-01-13 16:24:31 -08007833</tr>
7834<tr>
7835<td align="center">PASSIVE_<wbr/>SCAN</td>
7836<td align="center">AF_<wbr/>CANCEL</td>
7837<td align="center">INACTIVE</td>
7838<td align="center">Reset lens position,<wbr/> Lens now locked</td>
7839</tr>
7840<tr>
7841<td align="center">PASSIVE_<wbr/>FOCUSED</td>
7842<td align="center">Camera device initiates new scan</td>
7843<td align="center">PASSIVE_<wbr/>SCAN</td>
7844<td align="center">Start AF scan,<wbr/> Lens now moving</td>
7845</tr>
7846<tr>
7847<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
7848<td align="center">Camera device initiates new scan</td>
7849<td align="center">PASSIVE_<wbr/>SCAN</td>
7850<td align="center">Start AF scan,<wbr/> Lens now moving</td>
7851</tr>
7852<tr>
7853<td align="center">PASSIVE_<wbr/>FOCUSED</td>
7854<td align="center">AF_<wbr/>TRIGGER</td>
7855<td align="center">FOCUSED_<wbr/>LOCKED</td>
7856<td align="center">Immediate trans.<wbr/> Lens now locked</td>
7857</tr>
7858<tr>
7859<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
7860<td align="center">AF_<wbr/>TRIGGER</td>
7861<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7862<td align="center">Immediate trans.<wbr/> Lens now locked</td>
7863</tr>
7864<tr>
7865<td align="center">FOCUSED_<wbr/>LOCKED</td>
7866<td align="center">AF_<wbr/>TRIGGER</td>
7867<td align="center">FOCUSED_<wbr/>LOCKED</td>
7868<td align="center">No effect</td>
7869</tr>
7870<tr>
7871<td align="center">FOCUSED_<wbr/>LOCKED</td>
7872<td align="center">AF_<wbr/>CANCEL</td>
7873<td align="center">INACTIVE</td>
7874<td align="center">Restart AF scan</td>
7875</tr>
7876<tr>
7877<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7878<td align="center">AF_<wbr/>TRIGGER</td>
7879<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7880<td align="center">No effect</td>
7881</tr>
7882<tr>
7883<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
7884<td align="center">AF_<wbr/>CANCEL</td>
7885<td align="center">INACTIVE</td>
7886<td align="center">Restart AF scan</td>
7887</tr>
7888</tbody>
7889</table>
Zhijun He3fc95122014-02-11 17:18:29 -08007890<p>When switch between AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>* (CAF modes) and AF_<wbr/>MODE_<wbr/>AUTO/<wbr/>AF_<wbr/>MODE_<wbr/>MACRO
7891(AUTO modes),<wbr/> the initial INACTIVE or PASSIVE_<wbr/>SCAN states may be skipped by the
7892camera device.<wbr/> When a trigger is included in a mode switch request,<wbr/> the trigger
7893will be evaluated in the context of the new mode in the request.<wbr/>
7894See below table for examples:</p>
7895<table>
7896<thead>
7897<tr>
7898<th align="center">State</th>
7899<th align="center">Transition Cause</th>
7900<th align="center">New State</th>
7901<th align="center">Notes</th>
7902</tr>
7903</thead>
7904<tbody>
7905<tr>
7906<td align="center">any state</td>
7907<td align="center">CAF--&gt;AUTO mode switch</td>
7908<td align="center">INACTIVE</td>
7909<td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
7910</tr>
7911<tr>
7912<td align="center">any state</td>
7913<td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
7914<td align="center">trigger-reachable states from INACTIVE</td>
7915<td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
7916</tr>
7917<tr>
7918<td align="center">any state</td>
7919<td align="center">AUTO--&gt;CAF mode switch</td>
7920<td align="center">passively reachable states from INACTIVE</td>
7921<td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
7922</tr>
7923</tbody>
7924</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007925 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007926 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007927
7928
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007929 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007930 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007931
7932
7933 <tr class="entry" id="dynamic_android.control.afTriggerId">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007934 <td class="entry_name
7935 entry_name_deprecated
7936 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007937 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007938 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007939 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007940 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007941
Igor Murashkin6c936c12014-05-13 14:51:49 -07007942 <span class="entry_type_visibility"> [system]</span>
7943
7944
Igor Murashkinca256272014-10-02 15:27:09 -07007945
Igor Murashkin6c936c12014-05-13 14:51:49 -07007946 <span class="entry_type_deprecated">[deprecated] </span>
7947
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007948
7949
7950 </td> <!-- entry_type -->
7951
7952 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007953 <p>The ID sent with the latest
7954CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007955 </td>
7956
7957 <td class="entry_units">
7958 </td>
7959
7960 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007961 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007962 </td>
7963
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007964 <td class="entry_hal_version">
7965 <p>3.<wbr/>2</p>
7966 </td>
7967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007968 <td class="entry_tags">
7969 </td>
7970
7971 </tr>
7972 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007973 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007974 </tr>
7975 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007976 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -08007977 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
7978received yet by HAL.<wbr/> Always updated even if AF algorithm
7979ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007980 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007981 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007982
7983
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08007984 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007985 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007986
7987
Zhijun He602d3702014-05-02 17:38:15 -07007988 <tr class="entry" id="dynamic_android.control.awbLock">
Igor Murashkin6c936c12014-05-13 14:51:49 -07007989 <td class="entry_name
7990 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07007991 android.<wbr/>control.<wbr/>awb<wbr/>Lock
7992 </td>
7993 <td class="entry_type">
7994 <span class="entry_type_name entry_type_name_enum">byte</span>
7995
7996 <span class="entry_type_visibility"> [public as boolean]</span>
7997
Igor Murashkin6c936c12014-05-13 14:51:49 -07007998
Igor Murashkinca256272014-10-02 15:27:09 -07007999 <span class="entry_type_hwlevel">[legacy] </span>
8000
Igor Murashkin6c936c12014-05-13 14:51:49 -07008001
8002
Zhijun He602d3702014-05-02 17:38:15 -07008003 <ul class="entry_type_enum">
8004 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008005 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008006 <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
Zhijun He602d3702014-05-02 17:38:15 -07008007algorithm is free to update its parameters if in AUTO
8008mode.<wbr/></p></span>
8009 </li>
8010 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008011 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008012 <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
8013algorithm will not update its parameters while the lock
Zhijun He602d3702014-05-02 17:38:15 -07008014is active.<wbr/></p></span>
8015 </li>
8016 </ul>
8017
8018 </td> <!-- entry_type -->
8019
8020 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07008021 <p>Whether auto-white balance (AWB) is currently locked to its
Zhijun He602d3702014-05-02 17:38:15 -07008022latest calculated values.<wbr/></p>
8023 </td>
8024
8025 <td class="entry_units">
8026 </td>
8027
8028 <td class="entry_range">
8029 </td>
8030
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008031 <td class="entry_hal_version">
8032 <p>3.<wbr/>2</p>
8033 </td>
8034
Zhijun He602d3702014-05-02 17:38:15 -07008035 <td class="entry_tags">
8036 <ul class="entry_tags">
8037 <li><a href="#tag_BC">BC</a></li>
8038 </ul>
8039 </td>
8040
8041 </tr>
8042 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008043 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07008044 </tr>
8045 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008046 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008047 <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
8048and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
8049<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
8050get locked do not necessarily correspond to the settings that were present in the
8051latest capture result received from the camera device,<wbr/> since additional captures
8052and AWB updates may have occurred even before the result was sent out.<wbr/> If an
8053application is switching between automatic and manual control and wishes to eliminate
8054any flicker during the switch,<wbr/> the following procedure is recommended:</p>
8055<ol>
8056<li>Starting in auto-AWB mode:</li>
8057<li>Lock AWB</li>
8058<li>Wait for the first result to be output that has the AWB locked</li>
8059<li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
8060<li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
8061</ol>
8062<p>Note that AWB lock is only meaningful when
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008063<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
8064AWB is already fixed to a specific setting.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -07008065<p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07008066 </td>
8067 </tr>
8068
8069
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008070 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07008071 <!-- end of entry -->
8072
8073
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008074 <tr class="entry" id="dynamic_android.control.awbMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008075 <td class="entry_name
8076 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008077 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008078 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008079 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008080 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008081
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008082 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008083
Igor Murashkin6c936c12014-05-13 14:51:49 -07008084
Igor Murashkinca256272014-10-02 15:27:09 -07008085 <span class="entry_type_hwlevel">[legacy] </span>
8086
Igor Murashkin6c936c12014-05-13 14:51:49 -07008087
8088
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008089 <ul class="entry_type_enum">
8090 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008091 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008092 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
8093<p>The application-selected color transform matrix
Igor Murashkina10351a2014-01-15 17:05:22 -08008094(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
8095(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
8096device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008097 </li>
8098 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008099 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008100 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
8101<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8102and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8103For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8104values used by the camera device for the transform and gains
8105will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008106 </li>
8107 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008108 <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008109 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008110the camera device uses incandescent light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008111illumination for white balance.<wbr/></p>
8112<p>While the exact white balance transforms are up to the
8113camera device,<wbr/> they will approximately match the CIE
8114standard illuminant A.<wbr/></p>
8115<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8116and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8117For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8118values used by the camera device for the transform and gains
8119will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008120 </li>
8121 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008122 <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008123 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008124the camera device uses fluorescent light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008125illumination for white balance.<wbr/></p>
8126<p>While the exact white balance transforms are up to the
8127camera device,<wbr/> they will approximately match the CIE
8128standard illuminant F2.<wbr/></p>
8129<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8130and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8131For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8132values used by the camera device for the transform and gains
8133will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008134 </li>
8135 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008136 <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008137 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008138the camera device uses warm fluorescent light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008139illumination for white balance.<wbr/></p>
8140<p>While the exact white balance transforms are up to the
8141camera device,<wbr/> they will approximately match the CIE
8142standard illuminant F4.<wbr/></p>
8143<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8144and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8145For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8146values used by the camera device for the transform and gains
8147will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008148 </li>
8149 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008150 <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008151 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008152the camera device uses daylight light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008153illumination for white balance.<wbr/></p>
8154<p>While the exact white balance transforms are up to the
8155camera device,<wbr/> they will approximately match the CIE
8156standard illuminant D65.<wbr/></p>
8157<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8158and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8159For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8160values used by the camera device for the transform and gains
8161will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008162 </li>
8163 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008164 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008165 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008166the camera device uses cloudy daylight light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008167illumination for white balance.<wbr/></p>
8168<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8169and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8170For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8171values used by the camera device for the transform and gains
8172will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008173 </li>
8174 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008175 <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008176 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008177the camera device uses twilight light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008178illumination for white balance.<wbr/></p>
8179<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8180and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8181For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8182values used by the camera device for the transform and gains
8183will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008184 </li>
8185 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008186 <span class="entry_type_enum_name">SHADE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008187 <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
Igor Murashkina10351a2014-01-15 17:05:22 -08008188the camera device uses shade light as the assumed scene
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008189illumination for white balance.<wbr/></p>
8190<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
8191and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
8192For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
8193values used by the camera device for the transform and gains
8194will be available in the capture result for this request.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008195 </li>
8196 </ul>
8197
8198 </td> <!-- entry_type -->
8199
8200 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07008201 <p>Whether auto-white balance (AWB) is currently setting the color
Igor Murashkin0b080452013-12-27 15:30:25 -08008202transform fields,<wbr/> and what its illumination target
Zhijun He25b8ac52014-02-24 09:49:37 -08008203is.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008204 </td>
8205
8206 <td class="entry_units">
8207 </td>
8208
8209 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08008210 <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 -08008211 </td>
8212
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008213 <td class="entry_hal_version">
8214 <p>3.<wbr/>2</p>
8215 </td>
8216
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008217 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008218 <ul class="entry_tags">
8219 <li><a href="#tag_BC">BC</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008220 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008221 </td>
8222
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008223 </tr>
8224 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008225 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008226 </tr>
8227 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008228 <td class="entry_details" colspan="6">
Zhijun He7787f7f2014-01-14 16:30:31 -08008229 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008230<p>When set to the ON mode,<wbr/> the camera device's auto-white balance
Zhijun He7787f7f2014-01-14 16:30:31 -08008231routine is enabled,<wbr/> overriding the application's selected
8232<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
Yin-Chia Yeh668e43c2014-11-12 11:38:10 -08008233<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/> Note that when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
8234is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
8235also set AWB mode to OFF or lock AWB by using <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> before
8236setting AE mode to OFF.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008237<p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
Zhijun He25b8ac52014-02-24 09:49:37 -08008238routine is disabled.<wbr/> The application manually controls the white
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -08008239balance by <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>
Zhijun He7787f7f2014-01-14 16:30:31 -08008240and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008241<p>When set to any other modes,<wbr/> the camera device's auto-white
8242balance routine is disabled.<wbr/> The camera device uses each
8243particular illumination target for white balance
8244adjustment.<wbr/> The application's values for
8245<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
8246<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
8247<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008248 </td>
8249 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008250
8251
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008252 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008253 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008254
8255
8256 <tr class="entry" id="dynamic_android.control.awbRegions">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008257 <td class="entry_name
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07008258 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008259 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008260 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008261 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008262 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008263 <span class="entry_type_container">x</span>
8264
8265 <span class="entry_type_array">
8266 5 x area_count
8267 </span>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07008268 <span class="entry_type_visibility"> [public as meteringRectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008269
8270
Igor Murashkin6c936c12014-05-13 14:51:49 -07008271
8272
8273
Igor Murashkinca256272014-10-02 15:27:09 -07008274
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008275 </td> <!-- entry_type -->
8276
8277 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008278 <p>List of metering areas to use for auto-white-balance illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08008279estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008280 </td>
8281
8282 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008283 Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008284 </td>
8285
8286 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008287 <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
8288<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008289 </td>
8290
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008291 <td class="entry_hal_version">
8292 <p>3.<wbr/>2</p>
8293 </td>
8294
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008295 <td class="entry_tags">
8296 <ul class="entry_tags">
8297 <li><a href="#tag_BC">BC</a></li>
8298 </ul>
8299 </td>
8300
8301 </tr>
8302 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008303 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008304 </tr>
8305 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008306 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008307 <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07008308Otherwise will always be present.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008309<p>The maximum number of regions supported by the device is determined by the value
8310of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
Yin-Chia Yeh8554ed52014-09-04 09:33:34 -07008311<p>The coordinate system is based on the active pixel array,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08008312with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008313(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
8314<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
Yin-Chia Yehdc182572014-05-14 14:05:20 -07008315bottom-right pixel in the active pixel array.<wbr/></p>
8316<p>The weight must range from 0 to 1000,<wbr/> and represents a weight
8317for every pixel in the area.<wbr/> This means that a large metering area
8318with the same weight as a smaller area will have more effect in
8319the metering result.<wbr/> Metering areas can partially overlap and the
8320camera device will add the weights in the overlap region.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008321<p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
8322only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
83230 weight is ignored.<wbr/></p>
8324<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
8325camera device.<wbr/></p>
8326<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
8327capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
8328region and output only the intersection rectangle as the metering region in the result
8329metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
8330not reported in the result metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008331 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008333
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07008334 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008335 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07008336 </tr>
8337 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008338 <td class="entry_details" colspan="6">
Yin-Chia Yeh739effc2014-05-16 15:13:13 -07008339 <p>The HAL level representation of MeteringRectangle[] is a
8340int[5 * area_<wbr/>count].<wbr/>
8341Every five elements represent a metering region of
8342(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
8343The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
8344exclusive on xmax and ymax.<wbr/></p>
8345 </td>
8346 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008347
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008348 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008349 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008350
8351
Zhijun He602d3702014-05-02 17:38:15 -07008352 <tr class="entry" id="dynamic_android.control.captureIntent">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008353 <td class="entry_name
8354 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07008355 android.<wbr/>control.<wbr/>capture<wbr/>Intent
8356 </td>
8357 <td class="entry_type">
8358 <span class="entry_type_name entry_type_name_enum">byte</span>
8359
8360 <span class="entry_type_visibility"> [public]</span>
8361
Igor Murashkin6c936c12014-05-13 14:51:49 -07008362
Igor Murashkinca256272014-10-02 15:27:09 -07008363 <span class="entry_type_hwlevel">[legacy] </span>
8364
Igor Murashkin6c936c12014-05-13 14:51:49 -07008365
8366
Zhijun He602d3702014-05-02 17:38:15 -07008367 <ul class="entry_type_enum">
8368 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008369 <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008370 <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
8371categories.<wbr/> The camera device will default to preview-like
Zhijun He602d3702014-05-02 17:38:15 -07008372behavior.<wbr/></p></span>
8373 </li>
8374 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008375 <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008376 <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
8377<p>The precapture trigger may be used to start off a metering
8378w/<wbr/>flash sequence.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008379 </li>
8380 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008381 <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008382 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008383use case.<wbr/></p>
8384<p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008385 </li>
8386 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008387 <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008388 <span class="entry_type_enum_notes"><p>This request is for a video recording
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008389use case.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008390 </li>
8391 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008392 <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008393 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008394image while recording video) use case.<wbr/></p>
8395<p>The camera device should take the highest-quality image
8396possible (given the other settings) without disrupting the
Eino-Ville Talvala0f0d7952014-10-02 18:27:34 -07008397frame rate of video recording.<wbr/> </p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008398 </li>
8399 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008400 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008401 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
8402application will stream full-resolution images and
8403reprocess one or several later for a final
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008404capture.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008405 </li>
8406 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008407 <span class="entry_type_enum_name">MANUAL (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008408 <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008409the applications want to directly control the capture parameters.<wbr/></p>
8410<p>For example,<wbr/> the application may wish to manually control
8411<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> etc.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008412 </li>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -08008413 <li>
8414 <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
8415 <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
8416the application will use camera and inertial sensor data to
8417locate and track objects in the world.<wbr/></p>
8418<p>The camera device auto-exposure routine will limit the exposure time
8419of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
8420 </li>
Zhijun He602d3702014-05-02 17:38:15 -07008421 </ul>
8422
8423 </td> <!-- entry_type -->
8424
8425 <td class="entry_description">
8426 <p>Information to the camera device 3A (auto-exposure,<wbr/>
8427auto-focus,<wbr/> auto-white balance) routines about the purpose
8428of this capture,<wbr/> to help the camera device to decide optimal 3A
8429strategy.<wbr/></p>
8430 </td>
8431
8432 <td class="entry_units">
8433 </td>
8434
8435 <td class="entry_range">
Zhijun He602d3702014-05-02 17:38:15 -07008436 </td>
8437
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008438 <td class="entry_hal_version">
8439 <p>3.<wbr/>2</p>
8440 </td>
8441
Zhijun He602d3702014-05-02 17:38:15 -07008442 <td class="entry_tags">
8443 <ul class="entry_tags">
8444 <li><a href="#tag_BC">BC</a></li>
8445 </ul>
8446 </td>
8447
8448 </tr>
8449 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008450 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07008451 </tr>
8452 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008453 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07008454 <p>This control (except for MANUAL) is only effective if
8455<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -08008456<p>All intents are supported by all devices,<wbr/> except that:
8457 * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
8458PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
8459 * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
8460MANUAL_<wbr/>SENSOR.<wbr/>
8461 * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
8462MOTION_<wbr/>TRACKING.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07008463 </td>
8464 </tr>
8465
8466
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008467 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07008468 <!-- end of entry -->
8469
8470
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008471 <tr class="entry" id="dynamic_android.control.awbState">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008472 <td class="entry_name
8473 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008474 android.<wbr/>control.<wbr/>awb<wbr/>State
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 entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008478
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008479 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008480
Igor Murashkin6c936c12014-05-13 14:51:49 -07008481
Igor Murashkinca256272014-10-02 15:27:09 -07008482 <span class="entry_type_hwlevel">[limited] </span>
8483
Igor Murashkin6c936c12014-05-13 14:51:49 -07008484
8485
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008486 <ul class="entry_type_enum">
8487 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008488 <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008489 <span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
8490<p>When a camera device is opened,<wbr/> it starts in this
8491state.<wbr/> This is a transient state,<wbr/> the camera device may
8492skip reporting this state in capture
8493result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008494 </li>
8495 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008496 <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008497 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008498values for the current scene.<wbr/></p>
8499<p>This is a transient state,<wbr/> the camera device
Zhijun He3fc95122014-02-11 17:18:29 -08008500may skip reporting this state in capture result.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008501 </li>
8502 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008503 <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008504 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08008505current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008506 </li>
8507 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008508 <span class="entry_type_enum_name">LOCKED (v3.2)</span>
Zhijun He92e698d2014-01-13 16:24:31 -08008509 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008510 </li>
8511 </ul>
8512
8513 </td> <!-- entry_type -->
8514
8515 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07008516 <p>Current state of auto-white balance (AWB) algorithm.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008517 </td>
8518
8519 <td class="entry_units">
8520 </td>
8521
8522 <td class="entry_range">
8523 </td>
8524
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008525 <td class="entry_hal_version">
8526 <p>3.<wbr/>2</p>
8527 </td>
8528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008529 <td class="entry_tags">
8530 </td>
8531
8532 </tr>
8533 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008534 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008535 </tr>
8536 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008537 <td class="entry_details" colspan="6">
Zhijun He92e698d2014-01-13 16:24:31 -08008538 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
8539resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
8540or <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
8541the algorithm states to INACTIVE.<wbr/></p>
8542<p>The camera device can do several state transitions between two results,<wbr/> if it is
8543allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
8544a result.<wbr/></p>
8545<p>The state in the result is the state for this image (in sync with this image): if
8546AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
8547be good to use.<wbr/></p>
8548<p>Below are state transition tables for different AWB modes.<wbr/></p>
8549<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
8550<table>
8551<thead>
8552<tr>
8553<th align="center">State</th>
8554<th align="center">Transition Cause</th>
8555<th align="center">New State</th>
8556<th align="center">Notes</th>
8557</tr>
8558</thead>
8559<tbody>
8560<tr>
8561<td align="center">INACTIVE</td>
8562<td align="center"></td>
8563<td align="center">INACTIVE</td>
8564<td align="center">Camera device auto white balance algorithm is disabled</td>
8565</tr>
8566</tbody>
8567</table>
8568<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
8569<table>
8570<thead>
8571<tr>
8572<th align="center">State</th>
8573<th align="center">Transition Cause</th>
8574<th align="center">New State</th>
8575<th align="center">Notes</th>
8576</tr>
8577</thead>
8578<tbody>
8579<tr>
8580<td align="center">INACTIVE</td>
8581<td align="center">Camera device initiates AWB scan</td>
8582<td align="center">SEARCHING</td>
8583<td align="center">Values changing</td>
8584</tr>
8585<tr>
8586<td align="center">INACTIVE</td>
8587<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
8588<td align="center">LOCKED</td>
8589<td align="center">Values locked</td>
8590</tr>
8591<tr>
8592<td align="center">SEARCHING</td>
8593<td align="center">Camera device finishes AWB scan</td>
8594<td align="center">CONVERGED</td>
8595<td align="center">Good values,<wbr/> not changing</td>
8596</tr>
8597<tr>
8598<td align="center">SEARCHING</td>
8599<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
8600<td align="center">LOCKED</td>
8601<td align="center">Values locked</td>
8602</tr>
8603<tr>
8604<td align="center">CONVERGED</td>
8605<td align="center">Camera device initiates AWB scan</td>
8606<td align="center">SEARCHING</td>
8607<td align="center">Values changing</td>
8608</tr>
8609<tr>
8610<td align="center">CONVERGED</td>
8611<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
8612<td align="center">LOCKED</td>
8613<td align="center">Values locked</td>
8614</tr>
8615<tr>
8616<td align="center">LOCKED</td>
8617<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
8618<td align="center">SEARCHING</td>
8619<td align="center">Values not good after unlock</td>
8620</tr>
Zhijun He3fc95122014-02-11 17:18:29 -08008621</tbody>
8622</table>
8623<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
8624without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
8625can be skipped in that manner is called a transient state.<wbr/></p>
8626<p>For example,<wbr/> for this AWB mode (AWB_<wbr/>MODE_<wbr/>AUTO),<wbr/> in addition to the state transitions
8627listed in above table,<wbr/> it is also legal for the camera device to skip one or more
8628transient states between two results.<wbr/> See below table for examples:</p>
8629<table>
8630<thead>
8631<tr>
8632<th align="center">State</th>
8633<th align="center">Transition Cause</th>
8634<th align="center">New State</th>
8635<th align="center">Notes</th>
8636</tr>
8637</thead>
8638<tbody>
8639<tr>
8640<td align="center">INACTIVE</td>
8641<td align="center">Camera device finished AWB scan</td>
8642<td align="center">CONVERGED</td>
8643<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
8644</tr>
Zhijun He92e698d2014-01-13 16:24:31 -08008645<tr>
8646<td align="center">LOCKED</td>
8647<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
8648<td align="center">CONVERGED</td>
Zhijun He3fc95122014-02-11 17:18:29 -08008649<td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
Zhijun He92e698d2014-01-13 16:24:31 -08008650</tr>
8651</tbody>
8652</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008653 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008654 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008655
8656
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008657 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008658 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008659
8660
Zhijun He602d3702014-05-02 17:38:15 -07008661 <tr class="entry" id="dynamic_android.control.effectMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008662 <td class="entry_name
8663 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07008664 android.<wbr/>control.<wbr/>effect<wbr/>Mode
8665 </td>
8666 <td class="entry_type">
8667 <span class="entry_type_name entry_type_name_enum">byte</span>
8668
8669 <span class="entry_type_visibility"> [public]</span>
8670
Igor Murashkin6c936c12014-05-13 14:51:49 -07008671
Igor Murashkinca256272014-10-02 15:27:09 -07008672 <span class="entry_type_hwlevel">[legacy] </span>
8673
Igor Murashkin6c936c12014-05-13 14:51:49 -07008674
8675
Zhijun He602d3702014-05-02 17:38:15 -07008676 <ul class="entry_type_enum">
8677 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008678 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008679 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
8680 </li>
8681 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008682 <span class="entry_type_enum_name">MONO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008683 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008684 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008685a single color.<wbr/></p>
8686<p>This will typically be grayscale.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008687 </li>
8688 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008689 <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008690 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008691 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
8692are inverted.<wbr/></p></span>
8693 </li>
8694 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008695 <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008696 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008697 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
8698image is wholly or partially reversed in
8699tone.<wbr/></p></span>
8700 </li>
8701 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008702 <span class="entry_type_enum_name">SEPIA (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008703 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008704 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
8705gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
8706 </li>
8707 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008708 <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008709 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008710 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
8711discrete regions of tone rather than a continuous
8712gradient of tones.<wbr/></p></span>
8713 </li>
8714 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008715 <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008716 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008717 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
8718as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
8719 </li>
8720 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008721 <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008722 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008723 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
8724as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
8725 </li>
8726 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008727 <span class="entry_type_enum_name">AQUA (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008728 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008729 <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
8730 </li>
8731 </ul>
8732
8733 </td> <!-- entry_type -->
8734
8735 <td class="entry_description">
8736 <p>A special color effect to apply.<wbr/></p>
8737 </td>
8738
8739 <td class="entry_units">
8740 </td>
8741
8742 <td class="entry_range">
8743 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
8744 </td>
8745
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008746 <td class="entry_hal_version">
8747 <p>3.<wbr/>2</p>
8748 </td>
8749
Zhijun He602d3702014-05-02 17:38:15 -07008750 <td class="entry_tags">
8751 <ul class="entry_tags">
8752 <li><a href="#tag_BC">BC</a></li>
8753 </ul>
8754 </td>
8755
8756 </tr>
8757 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008758 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07008759 </tr>
8760 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008761 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07008762 <p>When this mode is set,<wbr/> a color effect will be applied
8763to images produced by the camera device.<wbr/> The interpretation
8764and implementation of these color effects is left to the
8765implementor of the camera device,<wbr/> and should not be
8766depended on to be consistent (or present) across all
8767devices.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07008768 </td>
8769 </tr>
8770
8771
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008772 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07008773 <!-- end of entry -->
8774
8775
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008776 <tr class="entry" id="dynamic_android.control.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008777 <td class="entry_name
8778 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008779 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008780 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008781 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008782 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008783
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008784 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008785
Igor Murashkin6c936c12014-05-13 14:51:49 -07008786
Igor Murashkinca256272014-10-02 15:27:09 -07008787 <span class="entry_type_hwlevel">[legacy] </span>
8788
Igor Murashkin6c936c12014-05-13 14:51:49 -07008789
8790
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008791 <ul class="entry_type_enum">
8792 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008793 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008794 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
8795<p>All control by the device's metering and focusing (3A)
8796routines is disabled,<wbr/> and no other settings in
8797android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
8798<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
8799device to select post-processing values for processing
8800blocks that do not allow for manual control,<wbr/> or are not
8801exposed by the camera API.<wbr/></p>
8802<p>However,<wbr/> the camera device's 3A routines may continue to
8803collect statistics and update their internal state so that
8804when control is switched to AUTO mode,<wbr/> good control values
8805can be immediately applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008806 </li>
8807 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008808 <span class="entry_type_enum_name">AUTO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008809 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
8810<p>Manual control of capture parameters is disabled.<wbr/> All
Igor Murashkina10351a2014-01-15 17:05:22 -08008811controls in android.<wbr/>control.<wbr/>* besides sceneMode take
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008812effect.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008813 </li>
8814 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008815 <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08008816 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008817 <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
8818<p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
8819control.<wbr/>afMode controls; the camera device will ignore
8820those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
Zhijun He1a71d0d2015-06-16 19:44:18 -07008821FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still active.<wbr/>
Eino-Ville Talvala8565fea2015-06-24 15:17:09 -07008822This setting can only be used if scene mode is supported (i.<wbr/>e.<wbr/>
Zhijun He1a71d0d2015-06-16 19:44:18 -07008823<a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008824contain some modes other than DISABLED).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008825 </li>
Zhijun He4412faa2014-02-06 00:28:22 -08008826 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008827 <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08008828 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He4412faa2014-02-06 00:28:22 -08008829 <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
8830used by camera device background auto-exposure,<wbr/> auto-white balance and
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008831auto-focus algorithms (3A) to update their statistics.<wbr/></p>
8832<p>Specifically,<wbr/> the 3A routines are locked to the last
8833values set from a request with AUTO,<wbr/> OFF,<wbr/> or
8834USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
8835collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
8836discarded by the camera device.<wbr/></p></span>
Zhijun He4412faa2014-02-06 00:28:22 -08008837 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008838 </ul>
8839
8840 </td> <!-- entry_type -->
8841
8842 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008843 <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
Zhijun He25b8ac52014-02-24 09:49:37 -08008844routines.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008845 </td>
8846
8847 <td class="entry_units">
8848 </td>
8849
8850 <td class="entry_range">
Yin-Chia Yehc4d5f372015-01-28 13:18:31 -08008851 <p><a href="#static_android.control.availableModes">android.<wbr/>control.<wbr/>available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008852 </td>
8853
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008854 <td class="entry_hal_version">
8855 <p>3.<wbr/>2</p>
8856 </td>
8857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008858 <td class="entry_tags">
8859 <ul class="entry_tags">
8860 <li><a href="#tag_BC">BC</a></li>
8861 </ul>
8862 </td>
8863
8864 </tr>
8865 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008866 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008867 </tr>
8868 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008869 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07008870 <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008871by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08008872capture parameters itself.<wbr/></p>
8873<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008874android.<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 -08008875<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008876android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device
8877implements one of the scene mode settings (such as ACTION,<wbr/>
8878SUNSET,<wbr/> or PARTY) as it wishes.<wbr/> The camera device scene mode
88793A settings are provided by <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">capture results</a>.<wbr/></p>
Zhijun He4412faa2014-02-06 00:28:22 -08008880<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
8881is that this frame will not be used by camera device background 3A statistics
8882update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
8883where the application doesn't want a 3A manual control capture to affect
8884the subsequent auto 3A capture results.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008885 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008886 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008887
8888
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08008889 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008890 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008891
Zhijun He602d3702014-05-02 17:38:15 -07008892
8893 <tr class="entry" id="dynamic_android.control.sceneMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07008894 <td class="entry_name
8895 " rowspan="5">
Zhijun He602d3702014-05-02 17:38:15 -07008896 android.<wbr/>control.<wbr/>scene<wbr/>Mode
8897 </td>
8898 <td class="entry_type">
8899 <span class="entry_type_name entry_type_name_enum">byte</span>
8900
8901 <span class="entry_type_visibility"> [public]</span>
8902
Igor Murashkin6c936c12014-05-13 14:51:49 -07008903
Igor Murashkinca256272014-10-02 15:27:09 -07008904 <span class="entry_type_hwlevel">[legacy] </span>
8905
Igor Murashkin6c936c12014-05-13 14:51:49 -07008906
8907
Zhijun He602d3702014-05-02 17:38:15 -07008908 <ul class="entry_type_enum">
8909 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008910 <span class="entry_type_enum_name">DISABLED (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008911 <span class="entry_type_enum_value">0</span>
8912 <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
8913 </li>
8914 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008915 <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
Zhijun He602d3702014-05-02 17:38:15 -07008916 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
8917detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008918auto-exposure routines.<wbr/></p>
8919<p>If face detection statistics are disabled
8920(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/>
Zhijun He602d3702014-05-02 17:38:15 -07008921this should still operate correctly (but will not return
8922face detection statistics to the framework).<wbr/></p>
8923<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
8924<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>
8925remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
8926 </li>
8927 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008928 <span class="entry_type_enum_name">ACTION (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008929 <span class="entry_type_enum_optional">[optional]</span>
8930 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
8931<p>Similar to SPORTS.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008932 </li>
8933 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008934 <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008935 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008936 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
8937 </li>
8938 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008939 <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008940 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008941 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
8942 </li>
8943 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008944 <span class="entry_type_enum_name">NIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008945 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008946 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
8947 </li>
8948 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008949 <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008950 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008951 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
8952settings.<wbr/></p></span>
8953 </li>
8954 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008955 <span class="entry_type_enum_name">THEATRE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008956 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008957 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
8958remain off.<wbr/></p></span>
8959 </li>
8960 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008961 <span class="entry_type_enum_name">BEACH (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008962 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008963 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
8964 </li>
8965 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008966 <span class="entry_type_enum_name">SNOW (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008967 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008968 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
8969 </li>
8970 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008971 <span class="entry_type_enum_name">SUNSET (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008972 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008973 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
8974 </li>
8975 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008976 <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008977 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008978 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
8979device motion (for example: due to hand shake).<wbr/></p></span>
8980 </li>
8981 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008982 <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008983 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008984 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
8985 </li>
8986 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008987 <span class="entry_type_enum_name">SPORTS (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008988 <span class="entry_type_enum_optional">[optional]</span>
8989 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
8990<p>Similar to ACTION.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07008991 </li>
8992 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008993 <span class="entry_type_enum_name">PARTY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07008994 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07008995 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
8996people.<wbr/></p></span>
8997 </li>
8998 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08008999 <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009000 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07009001 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
9002is a flame.<wbr/></p></span>
9003 </li>
9004 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009005 <span class="entry_type_enum_name">BARCODE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009006 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He602d3702014-05-02 17:38:15 -07009007 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
9008for use by camera applications that wish to read the
9009barcode value.<wbr/></p></span>
9010 </li>
Zhijun He17f2d2c2014-06-10 18:21:34 -07009011 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009012 <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
Zhijun He7defc682015-05-22 17:04:15 -07009013 <span class="entry_type_enum_deprecated">[deprecated]</span>
Zhijun He17f2d2c2014-06-10 18:21:34 -07009014 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvalaf55c1a82015-06-30 13:32:09 -07009015 <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
9016and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>
Zhijun He7defc682015-05-22 17:04:15 -07009017for high speed video recording.<wbr/></p>
9018<p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
Zhijun He17f2d2c2014-06-10 18:21:34 -07009019<p>The supported high speed video sizes and fps ranges are specified in
9020<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
9021output frame rates,<wbr/> the application is only allowed to select video size
9022and fps range combinations listed in this static metadata.<wbr/> The fps range
9023can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
9024<p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
9025ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
9026controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
9027and post-processing parameters is possible.<wbr/> All other controls operate the
9028same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
9029android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
9030<ul>
9031<li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
9032<li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
9033<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
9034<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
9035<li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
9036<li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
9037<li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
9038<li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
9039<li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
9040<li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
9041</ul>
9042<p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
9043<ul>
9044<li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (automatic flash for still capture will not work since aeMode is ON)</li>
9045<li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
9046<li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
9047<li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
9048</ul>
9049<p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
9050be lower than what camera can output,<wbr/> depending on the destination Surfaces for
9051the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
9052the application need check if the video encoder is capable of supporting the
9053high frame rate for a given video size,<wbr/> or it will end up with lower recording
9054frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
9055rate will be bounded by the screen refresh rate.<wbr/></p>
9056<p>The camera device will only support up to 2 output high speed streams
9057(processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
9058in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
9059<ul>
9060<li>The application created no more than maxNumHighSpeedStreams processed non-stalling
9061format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
9062min(2,<wbr/> <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>[Processed (but not-stalling)]).<wbr/></li>
9063<li>The stream sizes are selected from the sizes reported by
9064<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
9065<li>No processed non-stalling or raw streams are configured.<wbr/></li>
9066</ul>
9067<p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
9068<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> will be ignored by the camera device,<wbr/>
9069the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
9070and the returned capture result metadata will give the fps range choosen
9071by the camera device.<wbr/></p>
9072<p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
9073reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
9074the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
9075 </li>
Ruben Brunk17b1dd52014-08-28 17:16:38 -07009076 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009077 <span class="entry_type_enum_name">HDR (v3.2)</span>
Ruben Brunk17b1dd52014-08-28 17:16:38 -07009078 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala14cd0982014-12-05 10:46:45 -08009079 <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
9080<p>In this scene mode,<wbr/> the camera device captures images
9081that keep a larger range of scene illumination levels
9082visible in the final image.<wbr/> For example,<wbr/> when taking a
9083picture of a object in front of a bright window,<wbr/> both
9084the object and the scene through the window may be
9085visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
9086one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
9087HDR mode generally takes much longer to capture a single
9088image,<wbr/> has no user control,<wbr/> and may have other artifacts
9089depending on the HDR method used.<wbr/></p>
9090<p>Therefore,<wbr/> HDR captures operate at a much slower rate
9091than regular captures.<wbr/></p>
9092<p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
9093is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
9094STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
9095using a high dynamic range capture technique.<wbr/> On LEGACY
9096devices,<wbr/> captures that target a JPEG-format output will
9097be captured with HDR,<wbr/> and the capture intent is not
9098relevant.<wbr/></p>
9099<p>The HDR capture may involve the device capturing a burst
9100of images internally and combining them into one,<wbr/> or it
9101may involve the device using specialized high dynamic
9102range capture hardware.<wbr/> In all cases,<wbr/> a single image is
9103produced in response to a capture request submitted
9104while in HDR mode.<wbr/></p>
9105<p>Since substantial post-processing is generally needed to
Eino-Ville Talvala1f883d42016-04-04 10:47:43 -07009106produce an HDR image,<wbr/> only YUV,<wbr/> PRIVATE,<wbr/> and JPEG
9107outputs are supported for LIMITED/<wbr/>FULL device HDR
9108captures,<wbr/> and only JPEG outputs are supported for LEGACY
9109HDR captures.<wbr/> Using a RAW output for HDR capture is not
9110supported.<wbr/></p>
9111<p>Some devices may also support always-on HDR,<wbr/> which
9112applies HDR processing at full frame rate.<wbr/> For these
9113devices,<wbr/> intents other than STILL_<wbr/>CAPTURE will also
9114produce an HDR output with no frame rate impact compared
9115to normal operation,<wbr/> though the quality may be lower
9116than for STILL_<wbr/>CAPTURE intents.<wbr/></p>
9117<p>If SCENE_<wbr/>MODE_<wbr/>HDR is used with unsupported output types
9118or capture intents,<wbr/> the images captured will be as if
9119the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
Ruben Brunk17b1dd52014-08-28 17:16:38 -07009120 </li>
Zhijun He1a71d0d2015-06-16 19:44:18 -07009121 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009122 <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
Zhijun He1a71d0d2015-06-16 19:44:18 -07009123 <span class="entry_type_enum_optional">[optional]</span>
9124 <span class="entry_type_enum_hidden">[hidden]</span>
9125 <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
Andy Huibersce1319b2015-07-11 08:36:42 -07009126device will choose higher sensitivity values (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
Zhijun He1a71d0d2015-06-16 19:44:18 -07009127under low light conditions.<wbr/></p>
9128<p>The camera device may be tuned to expose the images in a reduced
9129sensitivity range to produce the best quality images.<wbr/> For example,<wbr/>
9130if the <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> gives range of [100,<wbr/> 1600],<wbr/>
9131the camera device auto-exposure routine tuning process may limit the actual
Andy Huibersce1319b2015-07-11 08:36:42 -07009132exposure sensitivity range to [100,<wbr/> 1200] to ensure that the noise level isn't
9133exessive in order to preserve the image quality.<wbr/> Under this situation,<wbr/> the image under
Zhijun He1a71d0d2015-06-16 19:44:18 -07009134low light may be under-exposed when the sensor max exposure time (bounded by the
9135<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of the
Andy Huibersce1319b2015-07-11 08:36:42 -07009136ON_<wbr/>* modes) and effective max sensitivity are reached.<wbr/> This scene mode allows the
Zhijun He1a71d0d2015-06-16 19:44:18 -07009137camera device auto-exposure routine to increase the sensitivity up to the max
9138sensitivity specified by <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> when the scene is too
9139dark and the max exposure time is reached.<wbr/> The captured images may be noisier
Andy Huibersce1319b2015-07-11 08:36:42 -07009140compared with the images captured in normal FACE_<wbr/>PRIORITY mode; therefore,<wbr/> it is
Zhijun He1a71d0d2015-06-16 19:44:18 -07009141recommended that the application only use this scene mode when it is capable of
9142reducing the noise level of the captured images.<wbr/></p>
9143<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
9144<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>
9145remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
9146 </li>
Yin-Chia Yehff19a622016-03-09 14:44:14 -08009147 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009148 <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
Yin-Chia Yehff19a622016-03-09 14:44:14 -08009149 <span class="entry_type_enum_optional">[optional]</span>
9150 <span class="entry_type_enum_hidden">[hidden]</span>
9151 <span class="entry_type_enum_value">100</span>
9152 <span class="entry_type_enum_notes"><p>Scene mode values within the range of
9153<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
9154customized scene modes.<wbr/></p></span>
9155 </li>
9156 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009157 <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
Yin-Chia Yehff19a622016-03-09 14:44:14 -08009158 <span class="entry_type_enum_optional">[optional]</span>
9159 <span class="entry_type_enum_hidden">[hidden]</span>
9160 <span class="entry_type_enum_value">127</span>
9161 <span class="entry_type_enum_notes"><p>Scene mode values within the range of
9162<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
9163customized scene modes.<wbr/></p></span>
9164 </li>
Zhijun He602d3702014-05-02 17:38:15 -07009165 </ul>
9166
9167 </td> <!-- entry_type -->
9168
9169 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009170 <p>Control for which scene mode is currently active.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07009171 </td>
9172
9173 <td class="entry_units">
9174 </td>
9175
9176 <td class="entry_range">
9177 <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
9178 </td>
9179
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009180 <td class="entry_hal_version">
9181 <p>3.<wbr/>2</p>
9182 </td>
9183
Zhijun He602d3702014-05-02 17:38:15 -07009184 <td class="entry_tags">
9185 <ul class="entry_tags">
9186 <li><a href="#tag_BC">BC</a></li>
9187 </ul>
9188 </td>
9189
9190 </tr>
9191 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009192 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07009193 </tr>
9194 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009195 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009196 <p>Scene modes are custom camera modes optimized for a certain set of conditions and
9197capture settings.<wbr/></p>
9198<p>This is the mode that that is active when
Zhijun He1a71d0d2015-06-16 19:44:18 -07009199<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/> these modes will
9200disable <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/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
9201while in use.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07009202<p>The interpretation and implementation of these scene modes is left
9203to the implementor of the camera device.<wbr/> Their behavior will not be
9204consistent across all devices,<wbr/> and any given device may only implement
9205a subset of these modes.<wbr/></p>
9206 </td>
9207 </tr>
9208
9209 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009210 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07009211 </tr>
9212 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009213 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -07009214 <p>HAL implementations that include scene modes are expected to provide
9215the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
9216<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
9217<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009218<p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/> the
9219HAL must list supported video size and fps range in
9220<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/> 1280x720,<wbr/>
9221if the HAL has two different sensor configurations for normal streaming mode and high
9222speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture requests,<wbr/> the
9223HAL may have to switch between different sensor modes.<wbr/> This mode is deprecated in legacy
9224HAL3.<wbr/>3,<wbr/> to support high speed video recording,<wbr/> please implement
Zhijun He7defc682015-05-22 17:04:15 -07009225<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a> and CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO
9226capbility defined in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07009227 </td>
9228 </tr>
9229
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009230 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07009231 <!-- end of entry -->
9232
9233
9234 <tr class="entry" id="dynamic_android.control.videoStabilizationMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07009235 <td class="entry_name
9236 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -07009237 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
9238 </td>
9239 <td class="entry_type">
9240 <span class="entry_type_name entry_type_name_enum">byte</span>
9241
9242 <span class="entry_type_visibility"> [public]</span>
9243
Igor Murashkin6c936c12014-05-13 14:51:49 -07009244
Igor Murashkinca256272014-10-02 15:27:09 -07009245 <span class="entry_type_hwlevel">[legacy] </span>
9246
Igor Murashkin6c936c12014-05-13 14:51:49 -07009247
9248
Zhijun He602d3702014-05-02 17:38:15 -07009249 <ul class="entry_type_enum">
9250 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009251 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009252 <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07009253 </li>
9254 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009255 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009256 <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -07009257 </li>
9258 </ul>
9259
9260 </td> <!-- entry_type -->
9261
9262 <td class="entry_description">
9263 <p>Whether video stabilization is
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -07009264active.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07009265 </td>
9266
9267 <td class="entry_units">
9268 </td>
9269
9270 <td class="entry_range">
9271 </td>
9272
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009273 <td class="entry_hal_version">
9274 <p>3.<wbr/>2</p>
9275 </td>
9276
Zhijun He602d3702014-05-02 17:38:15 -07009277 <td class="entry_tags">
9278 <ul class="entry_tags">
9279 <li><a href="#tag_BC">BC</a></li>
9280 </ul>
9281 </td>
9282
9283 </tr>
9284 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009285 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -07009286 </tr>
9287 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009288 <td class="entry_details" colspan="6">
Jianing Wei2d950892015-09-29 14:01:43 -07009289 <p>Video stabilization automatically warps images from
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009290the camera in order to stabilize motion between consecutive frames.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009291<p>If enabled,<wbr/> video stabilization can modify the
Zhijun He91449c82014-06-12 10:43:32 -07009292<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009293<p>Switching between different video stabilization modes may take several
9294frames to initialize,<wbr/> the camera device will report the current mode
9295in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
9296the video stabilization modes in the first several capture results may
9297still be "OFF",<wbr/> and it will become "ON" when the initialization is
9298done.<wbr/></p>
Jianing Wei2d950892015-09-29 14:01:43 -07009299<p>In addition,<wbr/> not all recording sizes or frame rates may be supported for
9300stabilization by a device that reports stabilization support.<wbr/> It is guaranteed
9301that an output targeting a MediaRecorder or MediaCodec will be stabilized if
9302the recording resolution is less than or equal to 1920 x 1080 (width less than
9303or equal to 1920,<wbr/> height less than or equal to 1080),<wbr/> and the recording
9304frame rate is less than or equal to 30fps.<wbr/> At other sizes,<wbr/> the CaptureResult
9305<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
9306OFF if the recording output is not stabilized,<wbr/> or if there are no output
9307Surface types that can be stabilized.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009308<p>If a camera device supports both this mode and OIS
9309(<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
9310produce undesirable interaction,<wbr/> so it is recommended not to enable
9311both at the same time.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -07009312 </td>
9313 </tr>
9314
9315
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009316 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -07009317 <!-- end of entry -->
9318
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009319
9320 <tr class="entry" id="dynamic_android.control.postRawSensitivityBoost">
9321 <td class="entry_name
9322 " rowspan="3">
9323 android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost
9324 </td>
9325 <td class="entry_type">
9326 <span class="entry_type_name">int32</span>
9327
9328 <span class="entry_type_visibility"> [public]</span>
9329
9330
9331
9332
9333
9334
9335 </td> <!-- entry_type -->
9336
9337 <td class="entry_description">
Yin-Chia Yeh84a51a42016-04-11 16:37:49 -07009338 <p>The amount of additional sensitivity boost applied to output images
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009339after RAW sensor data is captured.<wbr/></p>
9340 </td>
9341
9342 <td class="entry_units">
9343 ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
9344 </td>
9345
9346 <td class="entry_range">
9347 <p><a href="#static_android.control.postRawSensitivityBoostRange">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range</a></p>
9348 </td>
9349
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009350 <td class="entry_hal_version">
9351 <p>3.<wbr/>2</p>
9352 </td>
9353
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009354 <td class="entry_tags">
9355 </td>
9356
9357 </tr>
9358 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009359 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009360 </tr>
9361 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009362 <td class="entry_details" colspan="6">
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009363 <p>Some camera devices support additional digital sensitivity boosting in the
9364camera processing pipeline after sensor RAW image is captured.<wbr/>
9365Such a boost will be applied to YUV/<wbr/>JPEG format output images but will not
9366have effect on RAW output formats like RAW_<wbr/>SENSOR,<wbr/> RAW10,<wbr/> RAW12 or RAW_<wbr/>OPAQUE.<wbr/></p>
Yin-Chia Yeh84a51a42016-04-11 16:37:49 -07009367<p>This key will be <code>null</code> for devices that do not support any RAW format
9368outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
9369present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
9370list <code>100</code> in this key.<wbr/></p>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009371<p>If the camera device cannot apply the exact boost requested,<wbr/> it will reduce the
9372boost to the nearest supported value.<wbr/>
9373The final boost value used will be available in the output capture result.<wbr/></p>
9374<p>For devices that support post RAW sensitivity boost,<wbr/> the YUV/<wbr/>JPEG output images
9375of such device will have the total sensitivity of
Yin-Chia Yeh5a12e622016-01-26 13:26:56 -08009376<code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> * <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> /<wbr/> 100</code>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009377The sensitivity of RAW format images will always be <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></code></p>
9378<p>This control is only effective if <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> is set to
9379OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
9380 </td>
9381 </tr>
9382
9383
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009384 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -08009385 <!-- end of entry -->
9386
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009387
9388 <tr class="entry" id="dynamic_android.control.enableZsl">
9389 <td class="entry_name
9390 " rowspan="5">
9391 android.<wbr/>control.<wbr/>enable<wbr/>Zsl
9392 </td>
9393 <td class="entry_type">
9394 <span class="entry_type_name entry_type_name_enum">byte</span>
9395
9396 <span class="entry_type_visibility"> [public as boolean]</span>
9397
9398
9399
9400
9401
9402 <ul class="entry_type_enum">
9403 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009404 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009405 <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
9406after previous requests.<wbr/></p></span>
9407 </li>
9408 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009409 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009410 <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
9411captured before previous requests.<wbr/></p></span>
9412 </li>
9413 </ul>
9414
9415 </td> <!-- entry_type -->
9416
9417 <td class="entry_description">
9418 <p>Allow camera device to enable zero-shutter-lag mode for requests with
9419<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE.<wbr/></p>
9420 </td>
9421
9422 <td class="entry_units">
9423 </td>
9424
9425 <td class="entry_range">
9426 </td>
9427
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009428 <td class="entry_hal_version">
9429 <p>3.<wbr/>2</p>
9430 </td>
9431
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009432 <td class="entry_tags">
9433 </td>
9434
9435 </tr>
9436 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009437 <th class="th_details" colspan="6">Details</th>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009438 </tr>
9439 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009440 <td class="entry_details" colspan="6">
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009441 <p>If enableZsl is <code>true</code>,<wbr/> the camera device may enable zero-shutter-lag mode for requests with
9442STILL_<wbr/>CAPTURE capture intent.<wbr/> The camera device may use images captured in the past to
9443produce output images for a zero-shutter-lag request.<wbr/> The result metadata including the
9444<a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> reflects the source frames used to produce output images.<wbr/>
9445Therefore,<wbr/> the contents of the output images and the result metadata may be out of order
9446compared to previous regular requests.<wbr/> enableZsl does not affect requests with other
9447capture intents.<wbr/></p>
9448<p>For example,<wbr/> when requests are submitted in the following order:
9449 Request A: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is PREVIEW
9450 Request B: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is STILL_<wbr/>CAPTURE</p>
9451<p>The output images for request B may have contents captured before the output images for
9452request A,<wbr/> and the result metadata for request B may be older than the result metadata for
9453request A.<wbr/></p>
Chien-Yu Chen47272802017-04-18 15:17:15 -07009454<p>Note that when enableZsl is <code>true</code>,<wbr/> it is not guaranteed to get output images captured in
9455the past for requests with STILL_<wbr/>CAPTURE capture intent.<wbr/></p>
9456<p>For applications targeting SDK versions O and newer,<wbr/> the value of enableZsl in
9457TEMPLATE_<wbr/>STILL_<wbr/>CAPTURE template may be <code>true</code>.<wbr/> The value in other templates is always
9458<code>false</code> if present.<wbr/></p>
9459<p>For applications targeting SDK versions older than O,<wbr/> the value of enableZsl in all
9460capture templates is always <code>false</code> if present.<wbr/></p>
Chien-Yu Chen853e0dd2017-05-03 12:17:47 -07009461<p>For application-operated ZSL,<wbr/> use CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009462 </td>
9463 </tr>
9464
9465 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009466 <th class="th_details" colspan="6">HAL Implementation Details</th>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009467 </tr>
9468 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009469 <td class="entry_details" colspan="6">
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009470 <p>It is valid for HAL to produce regular output images for requests with STILL_<wbr/>CAPTURE
9471capture intent.<wbr/></p>
9472 </td>
9473 </tr>
9474
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009475 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Chien-Yu Chen5e46b0a2017-01-09 15:55:06 -08009476 <!-- end of entry -->
9477
Chien-Yu Chenb8c68282017-11-27 16:12:38 -08009478
9479 <tr class="entry" id="dynamic_android.control.afSceneChange">
9480 <td class="entry_name
9481 " rowspan="3">
9482 android.<wbr/>control.<wbr/>af<wbr/>Scene<wbr/>Change
9483 </td>
9484 <td class="entry_type">
Chien-Yu Chenc357faa2018-01-19 10:50:17 -08009485 <span class="entry_type_name entry_type_name_enum">byte</span>
Chien-Yu Chenb8c68282017-11-27 16:12:38 -08009486
9487 <span class="entry_type_visibility"> [public]</span>
9488
9489
9490
9491
9492
9493 <ul class="entry_type_enum">
9494 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009495 <span class="entry_type_enum_name">NOT_DETECTED (v3.3)</span>
Chien-Yu Chenb8c68282017-11-27 16:12:38 -08009496 <span class="entry_type_enum_notes"><p>Scene change is not detected within the AF region(s).<wbr/></p></span>
9497 </li>
9498 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009499 <span class="entry_type_enum_name">DETECTED (v3.3)</span>
Chien-Yu Chenb8c68282017-11-27 16:12:38 -08009500 <span class="entry_type_enum_notes"><p>Scene change is detected within the AF region(s).<wbr/></p></span>
9501 </li>
9502 </ul>
9503
9504 </td> <!-- entry_type -->
9505
9506 <td class="entry_description">
9507 <p>Whether a significant scene change is detected within the currently-set AF
9508region(s).<wbr/></p>
9509 </td>
9510
9511 <td class="entry_units">
9512 </td>
9513
9514 <td class="entry_range">
9515 </td>
9516
9517 <td class="entry_hal_version">
9518 <p>3.<wbr/>3</p>
9519 </td>
9520
9521 <td class="entry_tags">
9522 </td>
9523
9524 </tr>
9525 <tr class="entries_header">
9526 <th class="th_details" colspan="6">Details</th>
9527 </tr>
9528 <tr class="entry_cont">
9529 <td class="entry_details" colspan="6">
9530 <p>When the camera focus routine detects a change in the scene it is looking at,<wbr/>
9531such as a large shift in camera viewpoint,<wbr/> significant motion in the scene,<wbr/> or a
9532significant illumination change,<wbr/> this value will be set to DETECTED for a single capture
9533result.<wbr/> Otherwise the value will be NOT_<wbr/>DETECTED.<wbr/> The threshold for detection is similar
9534to what would trigger a new passive focus scan to begin in CONTINUOUS autofocus modes.<wbr/></p>
Chien-Yu Chenb8c68282017-11-27 16:12:38 -08009535<p>This key will be available if the camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
9536 </td>
9537 </tr>
9538
9539
9540 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
9541 <!-- end of entry -->
9542
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543
9544
9545 <!-- end of kind -->
9546 </tbody>
9547
9548 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009549 <tr><td colspan="7" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009550
9551
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009552 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009553
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009554 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009555 <tr>
9556 <th class="th_name">Property Name</th>
9557 <th class="th_type">Type</th>
9558 <th class="th_description">Description</th>
9559 <th class="th_units">Units</th>
9560 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009561 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009562 <th class="th_tags">Tags</th>
9563 </tr>
9564 </thead>
9565
9566 <tbody>
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577 <tr class="entry" id="controls_android.demosaic.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07009578 <td class="entry_name
9579 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009580 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009583 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009585 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009586
Igor Murashkin6c936c12014-05-13 14:51:49 -07009587
9588
9589
Igor Murashkinca256272014-10-02 15:27:09 -07009590
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009591 <ul class="entry_type_enum">
9592 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009593 <span class="entry_type_enum_name">FAST (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009594 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009595Bayer RAW output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009596 </li>
9597 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009598 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009599 <span class="entry_type_enum_notes"><p>Improved processing quality but the frame rate might be slowed down
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009600relative to raw output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009601 </li>
9602 </ul>
9603
9604 </td> <!-- entry_type -->
9605
9606 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009607 <p>Controls the quality of the demosaicing
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009608processing.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009609 </td>
9610
9611 <td class="entry_units">
9612 </td>
9613
9614 <td class="entry_range">
9615 </td>
9616
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009617 <td class="entry_hal_version">
9618 <p>3.<wbr/>2</p>
9619 </td>
9620
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009621 <td class="entry_tags">
9622 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -07009623 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009624 </ul>
9625 </td>
9626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009627 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009628
9629
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009630 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009631 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009632
9633
9634
9635 <!-- end of kind -->
9636 </tbody>
9637
9638 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009639 <tr><td colspan="7" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009640
9641
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009642 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009643
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009644 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009645 <tr>
9646 <th class="th_name">Property Name</th>
9647 <th class="th_type">Type</th>
9648 <th class="th_description">Description</th>
9649 <th class="th_units">Units</th>
9650 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009651 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009652 <th class="th_tags">Tags</th>
9653 </tr>
9654 </thead>
9655
9656 <tbody>
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667 <tr class="entry" id="controls_android.edge.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07009668 <td class="entry_name
Zhijun He41d6f042015-01-15 18:17:24 -08009669 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009670 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009671 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009672 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009673 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009674
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009675 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009676
Igor Murashkin6c936c12014-05-13 14:51:49 -07009677
Igor Murashkinca256272014-10-02 15:27:09 -07009678 <span class="entry_type_hwlevel">[full] </span>
9679
Igor Murashkin6c936c12014-05-13 14:51:49 -07009680
9681
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009682 <ul class="entry_type_enum">
9683 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009684 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009685 <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009686 </li>
9687 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009688 <span class="entry_type_enum_name">FAST (v3.2)</span>
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -07009689 <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
9690relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
9691slow down frame rate relative to sensor.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009692 </li>
9693 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009694 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009695 <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009696 </li>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009697 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009698 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009699 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009700 <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
9701levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
9702resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
9703or below have edge enhancement applied,<wbr/> while higher-resolution streams have no edge
9704enhancement applied.<wbr/> The level of edge enhancement for low-resolution streams is tuned
9705so that frame rate is not impacted,<wbr/> and the quality is equal to or better than FAST
9706(since it is only applied to lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009707<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
9708with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
9709high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
9710produced via reprocessing when a user takes a picture.<wbr/> For such a use case,<wbr/> the
9711high-resolution buffers must not have edge enhancement applied to maximize efficiency of
9712preview and to avoid double-applying enhancement when reprocessed,<wbr/> while low-resolution
9713buffers (used for recording or preview,<wbr/> generally) need edge enhancement applied for
9714reasonable preview quality.<wbr/></p>
9715<p>This mode is guaranteed to be supported by devices that support either the
9716YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
Chien-Yu Chend91ea142015-07-08 11:49:38 -07009717(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
9718be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009719 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009720 </ul>
9721
9722 </td> <!-- entry_type -->
9723
9724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009725 <p>Operation mode for edge
Zhijun He25b8ac52014-02-24 09:49:37 -08009726enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009727 </td>
9728
9729 <td class="entry_units">
9730 </td>
9731
9732 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009733 <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009734 </td>
9735
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009736 <td class="entry_hal_version">
9737 <p>3.<wbr/>2</p>
9738 </td>
9739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009740 <td class="entry_tags">
Ruben Brunkd14f7162014-03-04 15:01:25 -08009741 <ul class="entry_tags">
9742 <li><a href="#tag_V1">V1</a></li>
Zhijun He51379152015-04-24 17:59:50 -07009743 <li><a href="#tag_REPROC">REPROC</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009744 </ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009745 </td>
9746
9747 </tr>
9748 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009749 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009750 </tr>
9751 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009752 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009753 <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
9754no enhancement will be applied by the camera device.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08009755<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08009756will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08009757camera device will use the highest-quality enhancement algorithms,<wbr/>
9758even if it slows down capture rate.<wbr/> FAST means the camera device will
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -07009759not slow down capture rate when applying edge enhancement.<wbr/> FAST may be the same as OFF if
9760edge enhancement will slow down capture rate.<wbr/> Every output stream will have a similar
9761amount of enhancement applied.<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009762<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
9763buffer of high-resolution images during preview and reprocess image(s) from that buffer
9764into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
9765edge enhancement to low-resolution streams (below maximum recording resolution) to
9766maximize preview quality,<wbr/> but does not apply edge enhancement to high-resolution streams,<wbr/>
9767since those will be reprocessed later if necessary.<wbr/></p>
Zhijun He41d6f042015-01-15 18:17:24 -08009768<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera
9769device will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV-domain edge enhancement,<wbr/> respectively.<wbr/>
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -07009770The camera device may adjust its internal edge enhancement parameters for best
Zhijun He41d6f042015-01-15 18:17:24 -08009771image quality based on the <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a>,<wbr/> if it is set.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009772 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009773 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009774
Zhijun He41d6f042015-01-15 18:17:24 -08009775 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009776 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -08009777 </tr>
9778 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009779 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -08009780 <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
9781adjust the internal edge enhancement reduction parameters appropriately to get the best
9782quality images.<wbr/></p>
9783 </td>
9784 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009785
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009786 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009787 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009788
9789
9790 <tr class="entry" id="controls_android.edge.strength">
Igor Murashkin6c936c12014-05-13 14:51:49 -07009791 <td class="entry_name
9792 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009793 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009794 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009795 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009796 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009797
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009798 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009799
9800
Igor Murashkin6c936c12014-05-13 14:51:49 -07009801
9802
9803
Igor Murashkinca256272014-10-02 15:27:09 -07009804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009805 </td> <!-- entry_type -->
9806
9807 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009808 <p>Control the amount of edge enhancement
9809applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009810 </td>
9811
9812 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009813 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009814 </td>
9815
9816 <td class="entry_range">
9817 </td>
9818
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009819 <td class="entry_hal_version">
9820 <p>3.<wbr/>2</p>
9821 </td>
9822
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009823 <td class="entry_tags">
Ruben Brunkd14f7162014-03-04 15:01:25 -08009824 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -07009825 <li><a href="#tag_FUTURE">FUTURE</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009826 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009827 </td>
9828
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009829 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009830
9831
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009832 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009833 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009834
9835
9836
9837 <!-- end of kind -->
9838 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009839 <tr><td colspan="7" class="kind">static</td></tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009840
9841 <thead class="entries_header">
9842 <tr>
9843 <th class="th_name">Property Name</th>
9844 <th class="th_type">Type</th>
9845 <th class="th_description">Description</th>
9846 <th class="th_units">Units</th>
9847 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009848 <th class="th_hal_version">Initial HIDL HAL version</th>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009849 <th class="th_tags">Tags</th>
9850 </tr>
9851 </thead>
9852
9853 <tbody>
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864 <tr class="entry" id="static_android.edge.availableEdgeModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -07009865 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009866 " rowspan="5">
Ruben Brunkd14f7162014-03-04 15:01:25 -08009867 android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes
9868 </td>
9869 <td class="entry_type">
9870 <span class="entry_type_name">byte</span>
9871 <span class="entry_type_container">x</span>
9872
9873 <span class="entry_type_array">
9874 n
9875 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -07009876 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -07009877
9878
Igor Murashkinca256272014-10-02 15:27:09 -07009879 <span class="entry_type_hwlevel">[full] </span>
9880
Igor Murashkin6c936c12014-05-13 14:51:49 -07009881
Ruben Brunkd14f7162014-03-04 15:01:25 -08009882 <div class="entry_type_notes">list of enums</div>
9883
9884
9885 </td> <!-- entry_type -->
9886
9887 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009888 <p>List of edge enhancement modes for <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> that are supported by this camera
9889device.<wbr/></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009890 </td>
9891
9892 <td class="entry_units">
9893 </td>
9894
9895 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -07009896 <p>Any value listed in <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009897 </td>
9898
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009899 <td class="entry_hal_version">
9900 <p>3.<wbr/>2</p>
9901 </td>
9902
Ruben Brunkd14f7162014-03-04 15:01:25 -08009903 <td class="entry_tags">
9904 <ul class="entry_tags">
9905 <li><a href="#tag_V1">V1</a></li>
Zhijun He51379152015-04-24 17:59:50 -07009906 <li><a href="#tag_REPROC">REPROC</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009907 </ul>
9908 </td>
9909
9910 </tr>
9911 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009912 <th class="th_details" colspan="6">Details</th>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009913 </tr>
9914 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009915 <td class="entry_details" colspan="6">
Chien-Yu Chend91ea142015-07-08 11:49:38 -07009916 <p>Full-capability camera devices must always support OFF; camera devices that support
9917YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING will list ZERO_<wbr/>SHUTTER_<wbr/>LAG; all devices will
9918list FAST.<wbr/></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009919 </td>
9920 </tr>
9921
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009922 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009923 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009924 </tr>
9925 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009926 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009927 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if edge enhancement control is available
9928on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
9929That is,<wbr/> if the highest quality implementation on the camera device does not slow down
9930capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
9931 </td>
9932 </tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009933
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009934 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -08009935 <!-- end of entry -->
9936
9937
9938
9939 <!-- end of kind -->
9940 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009941 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009942
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009943 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009944 <tr>
9945 <th class="th_name">Property Name</th>
9946 <th class="th_type">Type</th>
9947 <th class="th_description">Description</th>
9948 <th class="th_units">Units</th>
9949 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009950 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009951 <th class="th_tags">Tags</th>
9952 </tr>
9953 </thead>
9954
9955 <tbody>
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966 <tr class="entry" id="dynamic_android.edge.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -07009967 <td class="entry_name
Zhijun He41d6f042015-01-15 18:17:24 -08009968 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009969 android.<wbr/>edge.<wbr/>mode
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 entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009973
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009974 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009975
Igor Murashkin6c936c12014-05-13 14:51:49 -07009976
Igor Murashkinca256272014-10-02 15:27:09 -07009977 <span class="entry_type_hwlevel">[full] </span>
9978
Igor Murashkin6c936c12014-05-13 14:51:49 -07009979
9980
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009981 <ul class="entry_type_enum">
9982 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009983 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -07009984 <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009985 </li>
9986 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009987 <span class="entry_type_enum_name">FAST (v3.2)</span>
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -07009988 <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
9989relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
9990slow down frame rate relative to sensor.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009991 </li>
9992 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009993 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -07009994 <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009995 </li>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009996 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -08009997 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -07009998 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -08009999 <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
10000levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
10001resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
10002or below have edge enhancement applied,<wbr/> while higher-resolution streams have no edge
10003enhancement applied.<wbr/> The level of edge enhancement for low-resolution streams is tuned
10004so that frame rate is not impacted,<wbr/> and the quality is equal to or better than FAST
10005(since it is only applied to lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070010006<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
10007with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
10008high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
10009produced via reprocessing when a user takes a picture.<wbr/> For such a use case,<wbr/> the
10010high-resolution buffers must not have edge enhancement applied to maximize efficiency of
10011preview and to avoid double-applying enhancement when reprocessed,<wbr/> while low-resolution
10012buffers (used for recording or preview,<wbr/> generally) need edge enhancement applied for
10013reasonable preview quality.<wbr/></p>
10014<p>This mode is guaranteed to be supported by devices that support either the
10015YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
Chien-Yu Chend91ea142015-07-08 11:49:38 -070010016(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
10017be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070010018 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010019 </ul>
10020
10021 </td> <!-- entry_type -->
10022
10023 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010024 <p>Operation mode for edge
Zhijun He25b8ac52014-02-24 09:49:37 -080010025enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010026 </td>
10027
10028 <td class="entry_units">
10029 </td>
10030
10031 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010032 <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010033 </td>
10034
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010035 <td class="entry_hal_version">
10036 <p>3.<wbr/>2</p>
10037 </td>
10038
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010039 <td class="entry_tags">
Ruben Brunkd14f7162014-03-04 15:01:25 -080010040 <ul class="entry_tags">
10041 <li><a href="#tag_V1">V1</a></li>
Zhijun He51379152015-04-24 17:59:50 -070010042 <li><a href="#tag_REPROC">REPROC</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080010043 </ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010044 </td>
10045
10046 </tr>
10047 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010048 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010049 </tr>
10050 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010051 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010052 <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
10053no enhancement will be applied by the camera device.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -080010054<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -080010055will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -080010056camera device will use the highest-quality enhancement algorithms,<wbr/>
10057even if it slows down capture rate.<wbr/> FAST means the camera device will
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -070010058not slow down capture rate when applying edge enhancement.<wbr/> FAST may be the same as OFF if
10059edge enhancement will slow down capture rate.<wbr/> Every output stream will have a similar
10060amount of enhancement applied.<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070010061<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
10062buffer of high-resolution images during preview and reprocess image(s) from that buffer
10063into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
10064edge enhancement to low-resolution streams (below maximum recording resolution) to
10065maximize preview quality,<wbr/> but does not apply edge enhancement to high-resolution streams,<wbr/>
10066since those will be reprocessed later if necessary.<wbr/></p>
Zhijun He41d6f042015-01-15 18:17:24 -080010067<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera
10068device will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV-domain edge enhancement,<wbr/> respectively.<wbr/>
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -070010069The camera device may adjust its internal edge enhancement parameters for best
Zhijun He41d6f042015-01-15 18:17:24 -080010070image quality based on the <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a>,<wbr/> if it is set.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010071 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010072 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010073
Zhijun He41d6f042015-01-15 18:17:24 -080010074 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010075 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -080010076 </tr>
10077 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010078 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -080010079 <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
10080adjust the internal edge enhancement reduction parameters appropriately to get the best
10081quality images.<wbr/></p>
10082 </td>
10083 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010084
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010085 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010086 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010087
10088
10089
10090 <!-- end of kind -->
10091 </tbody>
10092
10093 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010094 <tr><td colspan="7" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010095
10096
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010097 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010098
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010099 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010100 <tr>
10101 <th class="th_name">Property Name</th>
10102 <th class="th_type">Type</th>
10103 <th class="th_description">Description</th>
10104 <th class="th_units">Units</th>
10105 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010106 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010107 <th class="th_tags">Tags</th>
10108 </tr>
10109 </thead>
10110
10111 <tbody>
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122 <tr class="entry" id="controls_android.flash.firingPower">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010123 <td class="entry_name
10124 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010125 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010126 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010127 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010128 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010129
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010130 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010131
10132
Igor Murashkin6c936c12014-05-13 14:51:49 -070010133
10134
10135
Igor Murashkinca256272014-10-02 15:27:09 -070010136
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010137 </td> <!-- entry_type -->
10138
10139 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010140 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010141 </td>
10142
10143 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010144 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010145 </td>
10146
10147 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010148 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010149 </td>
10150
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010151 <td class="entry_hal_version">
10152 <p>3.<wbr/>2</p>
10153 </td>
10154
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010155 <td class="entry_tags">
10156 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010157 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010158 </ul>
10159 </td>
10160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010161 </tr>
10162 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010163 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010164 </tr>
10165 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010166 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080010167 <p>Power for snapshot may use a different scale than
10168for torch mode.<wbr/> Only one entry for torch mode will be
10169used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010170 </td>
10171 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010172
10173
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010174 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010175 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010176
10177
10178 <tr class="entry" id="controls_android.flash.firingTime">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010179 <td class="entry_name
10180 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010181 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010182 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010183 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010184 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010185
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010186 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010187
10188
Igor Murashkin6c936c12014-05-13 14:51:49 -070010189
10190
10191
Igor Murashkinca256272014-10-02 15:27:09 -070010192
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010193 </td> <!-- entry_type -->
10194
10195 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010196 <p>Firing time of flash relative to start of
10197exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010198 </td>
10199
10200 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010201 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010202 </td>
10203
10204 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010205 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010206 </td>
10207
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010208 <td class="entry_hal_version">
10209 <p>3.<wbr/>2</p>
10210 </td>
10211
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010212 <td class="entry_tags">
10213 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010214 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010215 </ul>
10216 </td>
10217
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010218 </tr>
10219 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010220 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010221 </tr>
10222 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010223 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080010224 <p>Clamped to (0,<wbr/> exposure time - flash
10225duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010226 </td>
10227 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010228
10229
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010230 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010232
10233
10234 <tr class="entry" id="controls_android.flash.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010235 <td class="entry_name
10236 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010237 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010238 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010239 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010240 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010241
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010242 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010243
Igor Murashkin6c936c12014-05-13 14:51:49 -070010244
Igor Murashkinca256272014-10-02 15:27:09 -070010245 <span class="entry_type_hwlevel">[legacy] </span>
10246
Igor Murashkin6c936c12014-05-13 14:51:49 -070010247
10248
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010249 <ul class="entry_type_enum">
10250 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010251 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun Heea27bc32014-01-15 13:47:59 -080010252 <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 -080010253 </li>
10254 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010255 <span class="entry_type_enum_name">SINGLE (v3.2)</span>
Zhijun Heea27bc32014-01-15 13:47:59 -080010256 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
Zhijun He66e62a42014-05-23 11:02:34 -070010257for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010258 </li>
10259 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010260 <span class="entry_type_enum_name">TORCH (v3.2)</span>
Zhijun Heea27bc32014-01-15 13:47:59 -080010261 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010262 </li>
10263 </ul>
10264
10265 </td> <!-- entry_type -->
10266
10267 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -080010268 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010269 </td>
10270
10271 <td class="entry_units">
10272 </td>
10273
10274 <td class="entry_range">
10275 </td>
10276
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010277 <td class="entry_hal_version">
10278 <p>3.<wbr/>2</p>
10279 </td>
10280
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010281 <td class="entry_tags">
10282 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010283 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010284 </ul>
10285 </td>
10286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010287 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -080010288 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010289 <th class="th_details" colspan="6">Details</th>
Zhijun Heea27bc32014-01-15 13:47:59 -080010290 </tr>
10291 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010292 <td class="entry_details" colspan="6">
Zhijun Heea27bc32014-01-15 13:47:59 -080010293 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -080010294(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -080010295<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/>
10296Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
10297ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
10298<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
10299<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
10300device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070010301control should be used along with auto-exposure (AE) precapture metering sequence
Zhijun Heea27bc32014-01-15 13:47:59 -080010302(<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>
10303<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
10304for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -080010305<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -080010306 </td>
10307 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010308
10309
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010310 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010311 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010312
10313
10314
10315 <!-- end of kind -->
10316 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010317 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010318
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010319 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010320 <tr>
10321 <th class="th_name">Property Name</th>
10322 <th class="th_type">Type</th>
10323 <th class="th_description">Description</th>
10324 <th class="th_units">Units</th>
10325 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010326 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010327 <th class="th_tags">Tags</th>
10328 </tr>
10329 </thead>
10330
10331 <tbody>
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344 <tr class="entry" id="static_android.flash.info.available">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010345 <td class="entry_name
10346 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010347 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010348 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010349 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -080010350 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010351
Zhijun He5169ce12014-01-24 16:48:25 -080010352 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010353
Igor Murashkin6c936c12014-05-13 14:51:49 -070010354
Igor Murashkinca256272014-10-02 15:27:09 -070010355 <span class="entry_type_hwlevel">[legacy] </span>
10356
Igor Murashkin6c936c12014-05-13 14:51:49 -070010357
10358
Zhijun He5169ce12014-01-24 16:48:25 -080010359 <ul class="entry_type_enum">
10360 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010361 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Zhijun He5169ce12014-01-24 16:48:25 -080010362 </li>
10363 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010364 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Zhijun He5169ce12014-01-24 16:48:25 -080010365 </li>
10366 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010367
10368 </td> <!-- entry_type -->
10369
10370 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -080010371 <p>Whether this camera device has a
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010372flash unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010373 </td>
10374
10375 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010376 </td>
10377
10378 <td class="entry_range">
10379 </td>
10380
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010381 <td class="entry_hal_version">
10382 <p>3.<wbr/>2</p>
10383 </td>
10384
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010385 <td class="entry_tags">
10386 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010387 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010388 </ul>
10389 </td>
10390
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010391 </tr>
10392 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010393 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010394 </tr>
10395 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010396 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010397 <p>Will be <code>false</code> if no flash is available.<wbr/></p>
10398<p>If there is no flash unit,<wbr/> none of the flash controls do
10399anything.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010400 </td>
10401 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010402
10403
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010404 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010405 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010406
10407
10408 <tr class="entry" id="static_android.flash.info.chargeDuration">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010409 <td class="entry_name
10410 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010411 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010412 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010413 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010414 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010415
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010416 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010417
10418
Igor Murashkin6c936c12014-05-13 14:51:49 -070010419
10420
10421
Igor Murashkinca256272014-10-02 15:27:09 -070010422
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010423 </td> <!-- entry_type -->
10424
10425 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010426 <p>Time taken before flash can fire
10427again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010428 </td>
10429
10430 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010431 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010432 </td>
10433
10434 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010435 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010436 </td>
10437
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010438 <td class="entry_hal_version">
10439 <p>3.<wbr/>2</p>
10440 </td>
10441
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010442 <td class="entry_tags">
10443 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010444 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010445 </ul>
10446 </td>
10447
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010448 </tr>
10449 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010450 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010451 </tr>
10452 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010453 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080010454 <p>1 second too long/<wbr/>too short for recharge? Should
10455this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010456 </td>
10457 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010458
10459
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010460 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010461 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010462
10463
10464
10465
10466
10467 <tr class="entry" id="static_android.flash.colorTemperature">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010468 <td class="entry_name
10469 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010470 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010471 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010472 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010473 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010474
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010475 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010476
10477
Igor Murashkin6c936c12014-05-13 14:51:49 -070010478
10479
10480
Igor Murashkinca256272014-10-02 15:27:09 -070010481
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010482 </td> <!-- entry_type -->
10483
10484 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010485 <p>The x,<wbr/>y whitepoint of the
10486flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010487 </td>
10488
10489 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010490 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010491 </td>
10492
10493 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010494 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010495 </td>
10496
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010497 <td class="entry_hal_version">
10498 <p>3.<wbr/>2</p>
10499 </td>
10500
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010501 <td class="entry_tags">
10502 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010503 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010504 </ul>
10505 </td>
10506
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010507 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010508
10509
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010510 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010511 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010512
10513
10514 <tr class="entry" id="static_android.flash.maxEnergy">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010515 <td class="entry_name
10516 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010517 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010518 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010519 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010520 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010521
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010522 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010523
10524
Igor Murashkin6c936c12014-05-13 14:51:49 -070010525
10526
10527
Igor Murashkinca256272014-10-02 15:27:09 -070010528
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010529 </td> <!-- entry_type -->
10530
10531 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010532 <p>Max energy output of the flash for a full
10533power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010534 </td>
10535
10536 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010537 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010538 </td>
10539
10540 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010541 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010542 </td>
10543
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010544 <td class="entry_hal_version">
10545 <p>3.<wbr/>2</p>
10546 </td>
10547
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010548 <td class="entry_tags">
10549 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010550 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010551 </ul>
10552 </td>
10553
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010554 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010555
10556
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010557 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010558 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010559
10560
10561
10562 <!-- end of kind -->
10563 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010564 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010565
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010566 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010567 <tr>
10568 <th class="th_name">Property Name</th>
10569 <th class="th_type">Type</th>
10570 <th class="th_description">Description</th>
10571 <th class="th_units">Units</th>
10572 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010573 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010574 <th class="th_tags">Tags</th>
10575 </tr>
10576 </thead>
10577
10578 <tbody>
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589 <tr class="entry" id="dynamic_android.flash.firingPower">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010590 <td class="entry_name
10591 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010592 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010593 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010594 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010595 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010596
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010597 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010598
10599
Igor Murashkin6c936c12014-05-13 14:51:49 -070010600
10601
10602
Igor Murashkinca256272014-10-02 15:27:09 -070010603
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010604 </td> <!-- entry_type -->
10605
10606 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010607 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010608 </td>
10609
10610 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010611 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010612 </td>
10613
10614 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010615 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010616 </td>
10617
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010618 <td class="entry_hal_version">
10619 <p>3.<wbr/>2</p>
10620 </td>
10621
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010622 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010623 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010624 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010625 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010626 </td>
10627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010628 </tr>
10629 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010630 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010631 </tr>
10632 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010633 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080010634 <p>Power for snapshot may use a different scale than
10635for torch mode.<wbr/> Only one entry for torch mode will be
10636used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010637 </td>
10638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010639
10640
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010641 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010642 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010643
10644
10645 <tr class="entry" id="dynamic_android.flash.firingTime">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010646 <td class="entry_name
10647 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010648 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010649 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010650 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010651 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010652
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010653 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010654
10655
Igor Murashkin6c936c12014-05-13 14:51:49 -070010656
10657
10658
Igor Murashkinca256272014-10-02 15:27:09 -070010659
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010660 </td> <!-- entry_type -->
10661
10662 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010663 <p>Firing time of flash relative to start of
10664exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010665 </td>
10666
10667 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010668 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010669 </td>
10670
10671 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010672 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010673 </td>
10674
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010675 <td class="entry_hal_version">
10676 <p>3.<wbr/>2</p>
10677 </td>
10678
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010679 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010680 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070010681 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010682 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010683 </td>
10684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010685 </tr>
10686 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010687 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010688 </tr>
10689 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010690 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080010691 <p>Clamped to (0,<wbr/> exposure time - flash
10692duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010693 </td>
10694 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010695
10696
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010697 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010698 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010699
10700
10701 <tr class="entry" id="dynamic_android.flash.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010702 <td class="entry_name
10703 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010704 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010705 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010706 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010707 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010708
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010709 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010710
Igor Murashkin6c936c12014-05-13 14:51:49 -070010711
Igor Murashkinca256272014-10-02 15:27:09 -070010712 <span class="entry_type_hwlevel">[legacy] </span>
10713
Igor Murashkin6c936c12014-05-13 14:51:49 -070010714
10715
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010716 <ul class="entry_type_enum">
10717 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010718 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun Heea27bc32014-01-15 13:47:59 -080010719 <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 -080010720 </li>
10721 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010722 <span class="entry_type_enum_name">SINGLE (v3.2)</span>
Zhijun Heea27bc32014-01-15 13:47:59 -080010723 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
Zhijun He66e62a42014-05-23 11:02:34 -070010724for this capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010725 </li>
10726 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010727 <span class="entry_type_enum_name">TORCH (v3.2)</span>
Zhijun Heea27bc32014-01-15 13:47:59 -080010728 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010729 </li>
10730 </ul>
10731
10732 </td> <!-- entry_type -->
10733
10734 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -080010735 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010736 </td>
10737
10738 <td class="entry_units">
10739 </td>
10740
10741 <td class="entry_range">
10742 </td>
10743
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010744 <td class="entry_hal_version">
10745 <p>3.<wbr/>2</p>
10746 </td>
10747
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010748 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010749 <ul class="entry_tags">
10750 <li><a href="#tag_BC">BC</a></li>
10751 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010752 </td>
10753
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010754 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -080010755 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010756 <th class="th_details" colspan="6">Details</th>
Zhijun Heea27bc32014-01-15 13:47:59 -080010757 </tr>
10758 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010759 <td class="entry_details" colspan="6">
Zhijun Heea27bc32014-01-15 13:47:59 -080010760 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -080010761(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -080010762<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/>
10763Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
10764ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
10765<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
10766<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
10767device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070010768control should be used along with auto-exposure (AE) precapture metering sequence
Zhijun Heea27bc32014-01-15 13:47:59 -080010769(<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>
10770<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
10771for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -080010772<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
Zhijun Heea27bc32014-01-15 13:47:59 -080010773 </td>
10774 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010775
10776
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010777 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010778 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010779
10780
10781 <tr class="entry" id="dynamic_android.flash.state">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010782 <td class="entry_name
10783 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010784 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010787 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010789 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010790
Igor Murashkin6c936c12014-05-13 14:51:49 -070010791
Igor Murashkinca256272014-10-02 15:27:09 -070010792 <span class="entry_type_hwlevel">[limited] </span>
10793
Igor Murashkin6c936c12014-05-13 14:51:49 -070010794
10795
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010796 <ul class="entry_type_enum">
10797 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010798 <span class="entry_type_enum_name">UNAVAILABLE (v3.2)</span>
Zhijun Hee74a31c2014-03-25 11:33:29 -070010799 <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010800 </li>
10801 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010802 <span class="entry_type_enum_name">CHARGING (v3.2)</span>
Zhijun Hee74a31c2014-03-25 11:33:29 -070010803 <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010804 </li>
10805 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010806 <span class="entry_type_enum_name">READY (v3.2)</span>
Zhijun Hee74a31c2014-03-25 11:33:29 -070010807 <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010808 </li>
10809 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010810 <span class="entry_type_enum_name">FIRED (v3.2)</span>
Zhijun Hee74a31c2014-03-25 11:33:29 -070010811 <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
10812 </li>
10813 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010814 <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070010815 <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
10816<p>This is usually due to the next or previous frame having
10817the flash fire,<wbr/> and the flash spilling into this capture
Zhijun Hee74a31c2014-03-25 11:33:29 -070010818due to hardware limitations.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010819 </li>
10820 </ul>
10821
10822 </td> <!-- entry_type -->
10823
10824 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010825 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -080010826unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010827 </td>
10828
10829 <td class="entry_units">
10830 </td>
10831
10832 <td class="entry_range">
10833 </td>
10834
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010835 <td class="entry_hal_version">
10836 <p>3.<wbr/>2</p>
10837 </td>
10838
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010839 <td class="entry_tags">
10840 </td>
10841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010842 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -080010843 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010844 <th class="th_details" colspan="6">Details</th>
Zhijun He5169ce12014-01-24 16:48:25 -080010845 </tr>
10846 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010847 <td class="entry_details" colspan="6">
Zhijun He5169ce12014-01-24 16:48:25 -080010848 <p>When the camera device doesn't have flash unit
10849(i.<wbr/>e.<wbr/> <code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == false</code>),<wbr/> this state will always be UNAVAILABLE.<wbr/>
10850Other states indicate the current flash status.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -070010851<p>In certain conditions,<wbr/> this will be available on LEGACY devices:</p>
10852<ul>
10853<li>Flash-less cameras always return UNAVAILABLE.<wbr/></li>
10854<li>Using <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> ON_<wbr/>ALWAYS_<wbr/>FLASH
10855 will always return FIRED.<wbr/></li>
10856<li>Using <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> <code>==</code> TORCH
10857 will always return FIRED.<wbr/></li>
10858</ul>
10859<p>In all other conditions the state will not be available on
10860LEGACY devices (i.<wbr/>e.<wbr/> it will be <code>null</code>).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -080010861 </td>
10862 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010863
10864
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010865 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010866 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010867
10868
10869
10870 <!-- end of kind -->
10871 </tbody>
10872
10873 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010874 <tr><td colspan="7" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010875
10876
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010877 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010878
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010879 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010880 <tr>
10881 <th class="th_name">Property Name</th>
10882 <th class="th_type">Type</th>
10883 <th class="th_description">Description</th>
10884 <th class="th_units">Units</th>
10885 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010886 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010887 <th class="th_tags">Tags</th>
10888 </tr>
10889 </thead>
10890
10891 <tbody>
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902 <tr class="entry" id="controls_android.hotPixel.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070010903 <td class="entry_name
10904 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010905 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010906 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010907 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010908 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010909
Ruben Brunkcd05eed2014-01-31 12:38:46 -080010910 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010911
Igor Murashkin6c936c12014-05-13 14:51:49 -070010912
10913
10914
Igor Murashkinca256272014-10-02 15:27:09 -070010915
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010916 <ul class="entry_type_enum">
10917 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010918 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070010919 <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
10920<p>The frame rate must not be reduced relative to sensor raw output
Ruben Brunkcd05eed2014-01-31 12:38:46 -080010921for this option.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070010922<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010923 </li>
10924 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010925 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070010926 <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
10927rate relative to sensor raw output.<wbr/></p>
10928<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010929 </li>
10930 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080010931 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070010932 <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070010933of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070010934<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010935 </li>
10936 </ul>
10937
10938 </td> <!-- entry_type -->
10939
10940 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010941 <p>Operational mode for hot pixel correction.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010942 </td>
10943
10944 <td class="entry_units">
10945 </td>
10946
10947 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010948 <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010949 </td>
10950
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010951 <td class="entry_hal_version">
10952 <p>3.<wbr/>2</p>
10953 </td>
10954
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010955 <td class="entry_tags">
10956 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010957 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070010958 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010959 </ul>
10960 </td>
10961
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010962 </tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080010963 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010964 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080010965 </tr>
10966 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010967 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070010968 <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
10969that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
10970are stuck at an arbitrary value or are oversensitive).<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080010971 </td>
10972 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010973
10974
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010975 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010976 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010977
10978
10979
10980 <!-- end of kind -->
10981 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010982 <tr><td colspan="7" class="kind">static</td></tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080010983
10984 <thead class="entries_header">
10985 <tr>
10986 <th class="th_name">Property Name</th>
10987 <th class="th_type">Type</th>
10988 <th class="th_description">Description</th>
10989 <th class="th_units">Units</th>
10990 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080010991 <th class="th_hal_version">Initial HIDL HAL version</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080010992 <th class="th_tags">Tags</th>
10993 </tr>
10994 </thead>
10995
10996 <tbody>
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007 <tr class="entry" id="static_android.hotPixel.availableHotPixelModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011008 <td class="entry_name
11009 " rowspan="5">
Ruben Brunk49e4f912014-03-04 14:09:44 -080011010 android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes
11011 </td>
11012 <td class="entry_type">
11013 <span class="entry_type_name">byte</span>
11014 <span class="entry_type_container">x</span>
11015
11016 <span class="entry_type_array">
11017 n
11018 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070011019 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070011020
11021
11022
Igor Murashkinca256272014-10-02 15:27:09 -070011023
Ruben Brunk49e4f912014-03-04 14:09:44 -080011024 <div class="entry_type_notes">list of enums</div>
11025
11026
11027 </td> <!-- entry_type -->
11028
11029 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011030 <p>List of hot pixel correction modes for <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a> that are supported by this
Ruben Brunk49e4f912014-03-04 14:09:44 -080011031camera device.<wbr/></p>
11032 </td>
11033
11034 <td class="entry_units">
11035 </td>
11036
11037 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011038 <p>Any value listed in <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011039 </td>
11040
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011041 <td class="entry_hal_version">
11042 <p>3.<wbr/>2</p>
11043 </td>
11044
Ruben Brunk49e4f912014-03-04 14:09:44 -080011045 <td class="entry_tags">
11046 <ul class="entry_tags">
Ruben Brunk49e4f912014-03-04 14:09:44 -080011047 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070011048 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011049 </ul>
11050 </td>
11051
11052 </tr>
11053 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011054 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011055 </tr>
11056 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011057 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011058 <p>FULL mode camera devices will always support FAST.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011059 </td>
11060 </tr>
11061
11062 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011063 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011064 </tr>
11065 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011066 <td class="entry_details" colspan="6">
Ruben Brunk49e4f912014-03-04 14:09:44 -080011067 <p>To avoid performance issues,<wbr/> there will be significantly fewer hot
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070011068pixels than actual pixels on the camera sensor.<wbr/>
11069HAL must support both FAST and HIGH_<wbr/>QUALITY if hot pixel correction control is available
11070on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
11071That is,<wbr/> if the highest quality implementation on the camera device does not slow down
11072capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011073 </td>
11074 </tr>
11075
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011076 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011077 <!-- end of entry -->
11078
11079
11080
11081 <!-- end of kind -->
11082 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011083 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011084
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011085 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011086 <tr>
11087 <th class="th_name">Property Name</th>
11088 <th class="th_type">Type</th>
11089 <th class="th_description">Description</th>
11090 <th class="th_units">Units</th>
11091 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011092 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011093 <th class="th_tags">Tags</th>
11094 </tr>
11095 </thead>
11096
11097 <tbody>
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108 <tr class="entry" id="dynamic_android.hotPixel.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011109 <td class="entry_name
11110 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011111 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011112 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011113 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011114 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011115
Ruben Brunkcd05eed2014-01-31 12:38:46 -080011116 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011117
Igor Murashkin6c936c12014-05-13 14:51:49 -070011118
11119
11120
Igor Murashkinca256272014-10-02 15:27:09 -070011121
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011122 <ul class="entry_type_enum">
11123 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080011124 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011125 <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
11126<p>The frame rate must not be reduced relative to sensor raw output
Ruben Brunkcd05eed2014-01-31 12:38:46 -080011127for this option.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011128<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011129 </li>
11130 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080011131 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011132 <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
11133rate relative to sensor raw output.<wbr/></p>
11134<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011135 </li>
11136 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080011137 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011138 <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070011139of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011140<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011141 </li>
11142 </ul>
11143
11144 </td> <!-- entry_type -->
11145
11146 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011147 <p>Operational mode for hot pixel correction.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011148 </td>
11149
11150 <td class="entry_units">
11151 </td>
11152
11153 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011154 <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011155 </td>
11156
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011157 <td class="entry_hal_version">
11158 <p>3.<wbr/>2</p>
11159 </td>
11160
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011161 <td class="entry_tags">
11162 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011163 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070011164 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011165 </ul>
11166 </td>
11167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011168 </tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011169 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011170 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011171 </tr>
11172 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011173 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011174 <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
11175that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
11176are stuck at an arbitrary value or are oversensitive).<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080011177 </td>
11178 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011179
11180
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011181 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011183
11184
11185
11186 <!-- end of kind -->
11187 </tbody>
11188
11189 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011190 <tr><td colspan="7" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011191
11192
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011193 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011194
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011195 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011196 <tr>
11197 <th class="th_name">Property Name</th>
11198 <th class="th_type">Type</th>
11199 <th class="th_description">Description</th>
11200 <th class="th_units">Units</th>
11201 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011202 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011203 <th class="th_tags">Tags</th>
11204 </tr>
11205 </thead>
11206
11207 <tbody>
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011218 <tr class="entry" id="controls_android.jpeg.gpsLocation">
11219 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011220 " rowspan="3">
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011221 android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
11222 </td>
11223 <td class="entry_type">
11224 <span class="entry_type_name">byte</span>
11225
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011226 <span class="entry_type_visibility"> [java_public as location]</span>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011227
11228 <span class="entry_type_synthetic">[synthetic] </span>
11229
Igor Murashkinca256272014-10-02 15:27:09 -070011230 <span class="entry_type_hwlevel">[legacy] </span>
11231
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011232
11233
11234
11235 </td> <!-- entry_type -->
11236
11237 <td class="entry_description">
11238 <p>A location object to use when generating image GPS metadata.<wbr/></p>
11239 </td>
11240
11241 <td class="entry_units">
11242 </td>
11243
11244 <td class="entry_range">
11245 </td>
11246
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011247 <td class="entry_hal_version">
11248 <p>3.<wbr/>2</p>
11249 </td>
11250
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011251 <td class="entry_tags">
11252 </td>
11253
11254 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011255 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011256 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011257 </tr>
11258 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011259 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011260 <p>Setting a location object in a request will include the GPS coordinates of the location
11261into any JPEG images captured based on the request.<wbr/> These coordinates can then be
11262viewed by anyone who receives the JPEG image.<wbr/></p>
11263 </td>
11264 </tr>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011265
11266
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011267 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011268 <!-- end of entry -->
11269
11270
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011271 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011272 <td class="entry_name
11273 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011274 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011275 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011276 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011277 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011278 <span class="entry_type_container">x</span>
11279
11280 <span class="entry_type_array">
11281 3
11282 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011283 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070011284
11285
Igor Murashkinca256272014-10-02 15:27:09 -070011286 <span class="entry_type_hwlevel">[legacy] </span>
11287
Igor Murashkin6c936c12014-05-13 14:51:49 -070011288
Igor Murashkin0b080452013-12-27 15:30:25 -080011289 <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 -080011290
11291
11292 </td> <!-- entry_type -->
11293
11294 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011295 <p>GPS coordinates to include in output JPEG
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011296EXIF.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011297 </td>
11298
11299 <td class="entry_units">
11300 </td>
11301
11302 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011303 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011304 </td>
11305
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011306 <td class="entry_hal_version">
11307 <p>3.<wbr/>2</p>
11308 </td>
11309
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011310 <td class="entry_tags">
11311 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011312 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011313 </ul>
11314 </td>
11315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011317
11318
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011319 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011321
11322
11323 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011324 <td class="entry_name
11325 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011326 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011327 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011328 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011329 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011330
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011331 <span class="entry_type_visibility"> [ndk_public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011332
11333
Igor Murashkinca256272014-10-02 15:27:09 -070011334 <span class="entry_type_hwlevel">[legacy] </span>
11335
Igor Murashkin6c936c12014-05-13 14:51:49 -070011336
11337
11338
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011339 </td> <!-- entry_type -->
11340
11341 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011342 <p>32 characters describing GPS algorithm to
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011343include in EXIF.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011344 </td>
11345
11346 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011347 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011348 </td>
11349
11350 <td class="entry_range">
11351 </td>
11352
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011353 <td class="entry_hal_version">
11354 <p>3.<wbr/>2</p>
11355 </td>
11356
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011357 <td class="entry_tags">
11358 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011359 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011360 </ul>
11361 </td>
11362
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011363 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011364
11365
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011366 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011367 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011368
11369
11370 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011371 <td class="entry_name
11372 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011373 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011374 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011375 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011376 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011377
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011378 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011379
11380
Igor Murashkinca256272014-10-02 15:27:09 -070011381 <span class="entry_type_hwlevel">[legacy] </span>
11382
Igor Murashkin6c936c12014-05-13 14:51:49 -070011383
11384
11385
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011386 </td> <!-- entry_type -->
11387
11388 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011389 <p>Time GPS fix was made to include in
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011390EXIF.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011391 </td>
11392
11393 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011394 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011395 </td>
11396
11397 <td class="entry_range">
11398 </td>
11399
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011400 <td class="entry_hal_version">
11401 <p>3.<wbr/>2</p>
11402 </td>
11403
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011404 <td class="entry_tags">
11405 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011406 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011407 </ul>
11408 </td>
11409
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011410 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011411
11412
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011413 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011414 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011415
11416
11417 <tr class="entry" id="controls_android.jpeg.orientation">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011418 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011419 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011420 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011421 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011422 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011423 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011424
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011425 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011426
11427
Igor Murashkinca256272014-10-02 15:27:09 -070011428 <span class="entry_type_hwlevel">[legacy] </span>
11429
Igor Murashkin6c936c12014-05-13 14:51:49 -070011430
11431
11432
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011433 </td> <!-- entry_type -->
11434
11435 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011436 <p>The orientation for a JPEG image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011437 </td>
11438
11439 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011440 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011441 </td>
11442
11443 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011444 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011445 </td>
11446
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011447 <td class="entry_hal_version">
11448 <p>3.<wbr/>2</p>
11449 </td>
11450
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011451 <td class="entry_tags">
11452 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011453 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011454 </ul>
11455 </td>
11456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011457 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011458 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011459 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011460 </tr>
11461 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011462 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011463 <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
11464to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
11465upright.<wbr/></p>
11466<p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
Yin-Chia Yeh58a8b192015-03-27 13:54:56 -070011467rotate the image data to match this orientation.<wbr/> When the image data is rotated,<wbr/>
11468the thumbnail data will also be rotated.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011469<p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
11470by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
Emilian Peevfb438722018-03-28 11:17:14 +010011471<p>To translate from the device orientation given by the Android sensor APIs for camera
11472sensors which are not EXTERNAL,<wbr/> the following sample code may be used:</p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011473<pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
11474 if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
11475 int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
11476
11477 //<wbr/> Round device orientation to a multiple of 90
11478 deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
11479
11480 //<wbr/> Reverse device orientation for front-facing cameras
11481 boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
11482 if (facingFront) deviceOrientation = -deviceOrientation;
11483
11484 //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
11485 //<wbr/> the image upright relative to the device orientation
11486 int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
11487
11488 return jpegOrientation;
11489}
11490</code></pre>
Emilian Peevfb438722018-03-28 11:17:14 +010011491<p>For EXTERNAL cameras the sensor orientation will always be set to 0 and the facing will
11492also be set to EXTERNAL.<wbr/> The above code is not relevant in such case.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011493 </td>
11494 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011495
11496
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011497 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011498 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011499
11500
11501 <tr class="entry" id="controls_android.jpeg.quality">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011502 <td class="entry_name
11503 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011504 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011505 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011506 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011507 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011508
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011509 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011510
11511
Igor Murashkinca256272014-10-02 15:27:09 -070011512 <span class="entry_type_hwlevel">[legacy] </span>
11513
Igor Murashkin6c936c12014-05-13 14:51:49 -070011514
11515
11516
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011517 </td> <!-- entry_type -->
11518
11519 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011520 <p>Compression quality of the final JPEG
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070011521image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011522 </td>
11523
11524 <td class="entry_units">
11525 </td>
11526
11527 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011528 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011529 </td>
11530
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011531 <td class="entry_hal_version">
11532 <p>3.<wbr/>2</p>
11533 </td>
11534
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011535 <td class="entry_tags">
11536 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011537 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011538 </ul>
11539 </td>
11540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011541 </tr>
11542 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011543 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011544 </tr>
11545 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011546 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011547 <p>85-95 is typical usage range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011548 </td>
11549 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011550
11551
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011552 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011554
11555
11556 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011557 <td class="entry_name
11558 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011559 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011560 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011561 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011562 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011563
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011564 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011565
11566
Igor Murashkinca256272014-10-02 15:27:09 -070011567 <span class="entry_type_hwlevel">[legacy] </span>
11568
Igor Murashkin6c936c12014-05-13 14:51:49 -070011569
11570
11571
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011572 </td> <!-- entry_type -->
11573
11574 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011575 <p>Compression quality of JPEG
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070011576thumbnail.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011577 </td>
11578
11579 <td class="entry_units">
11580 </td>
11581
11582 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011583 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011584 </td>
11585
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011586 <td class="entry_hal_version">
11587 <p>3.<wbr/>2</p>
11588 </td>
11589
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011590 <td class="entry_tags">
11591 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011592 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011593 </ul>
11594 </td>
11595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011596 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011597
11598
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011599 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011600 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011601
11602
11603 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011604 <td class="entry_name
Zhijun He5fb671c2014-05-21 17:51:05 -070011605 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011606 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011607 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011608 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011609 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011610 <span class="entry_type_container">x</span>
11611
11612 <span class="entry_type_array">
11613 2
11614 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011615 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011616
11617
Igor Murashkinca256272014-10-02 15:27:09 -070011618 <span class="entry_type_hwlevel">[legacy] </span>
11619
Igor Murashkin6c936c12014-05-13 14:51:49 -070011620
11621
11622
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011623 </td> <!-- entry_type -->
11624
11625 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070011626 <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011627 </td>
11628
11629 <td class="entry_units">
11630 </td>
11631
11632 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011633 <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011634 </td>
11635
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011636 <td class="entry_hal_version">
11637 <p>3.<wbr/>2</p>
11638 </td>
11639
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011640 <td class="entry_tags">
11641 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011642 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011643 </ul>
11644 </td>
11645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011646 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011647 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011648 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011649 </tr>
11650 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011651 <td class="entry_details" colspan="6">
Zhijun Hef90eeaf2014-01-16 12:13:35 -080011652 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
11653but the captured JPEG will still be a valid image.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011654<p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
11655should have the same aspect ratio as the main JPEG output.<wbr/></p>
Zhijun He5fb671c2014-05-21 17:51:05 -070011656<p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
11657ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
11658For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
1165916:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
11660generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
11661Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
Yin-Chia Yeh390230b2015-06-22 15:50:05 -070011662<p>When an <a href="#controls_android.jpeg.orientation">android.<wbr/>jpeg.<wbr/>orientation</a> of non-zero degree is requested,<wbr/>
11663the camera device will handle thumbnail rotation in one of the following ways:</p>
11664<ul>
11665<li>Set the <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>
11666 and keep jpeg and thumbnail image data unrotated.<wbr/></li>
11667<li>Rotate the jpeg and thumbnail image data and not set
11668 <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>.<wbr/> In this
11669 case,<wbr/> LIMITED or FULL hardware level devices will report rotated thumnail size in
11670 capture result,<wbr/> so the width and height will be interchanged if 90 or 270 degree
11671 orientation is requested.<wbr/> LEGACY device will always report unrotated thumbnail
11672 size.<wbr/></li>
11673</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011674 </td>
11675 </tr>
11676
Zhijun He5fb671c2014-05-21 17:51:05 -070011677 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011678 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He5fb671c2014-05-21 17:51:05 -070011679 </tr>
11680 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011681 <td class="entry_details" colspan="6">
Zhijun He5fb671c2014-05-21 17:51:05 -070011682 <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
11683The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
11684The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
11685thumbnail image cropping.<wbr/></p>
11686 </td>
11687 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011688
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011689 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011690 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011691
11692
11693
11694 <!-- end of kind -->
11695 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011696 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011697
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011698 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011699 <tr>
11700 <th class="th_name">Property Name</th>
11701 <th class="th_type">Type</th>
11702 <th class="th_description">Description</th>
11703 <th class="th_units">Units</th>
11704 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011705 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011706 <th class="th_tags">Tags</th>
11707 </tr>
11708 </thead>
11709
11710 <tbody>
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011722 <td class="entry_name
11723 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011724 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011725 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011726 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011727 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011728 <span class="entry_type_container">x</span>
11729
11730 <span class="entry_type_array">
11731 2 x n
11732 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011733 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011734
11735
Igor Murashkinca256272014-10-02 15:27:09 -070011736 <span class="entry_type_hwlevel">[legacy] </span>
11737
Igor Murashkin6c936c12014-05-13 14:51:49 -070011738
11739
11740
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741 </td> <!-- entry_type -->
11742
11743 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011744 <p>List of JPEG thumbnail sizes for <a href="#controls_android.jpeg.thumbnailSize">android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size</a> supported by this
11745camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011746 </td>
11747
11748 <td class="entry_units">
11749 </td>
11750
11751 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011752 </td>
11753
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011754 <td class="entry_hal_version">
11755 <p>3.<wbr/>2</p>
11756 </td>
11757
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011758 <td class="entry_tags">
11759 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011760 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011761 </ul>
11762 </td>
11763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011764 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011765 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011766 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011767 </tr>
11768 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011769 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011770 <p>This list will include at least one non-zero resolution,<wbr/> plus <code>(0,<wbr/>0)</code> for indicating no
11771thumbnail should be generated.<wbr/></p>
11772<p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011773<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -080011774<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
11775If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
11776<li>The aspect ratio of the largest thumbnail size will be same as the
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080011777aspect ratio of largest JPEG output size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011778The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -080011779in a given size list.<wbr/></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080011780<li>Each output JPEG size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have at least
Igor Murashkin0b080452013-12-27 15:30:25 -080011781one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
11782and vice versa.<wbr/></li>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011783<li>All non-<code>(0,<wbr/> 0)</code> sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -080011784</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011785 </td>
11786 </tr>
11787
11788
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011789 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011790 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011791
11792
11793 <tr class="entry" id="static_android.jpeg.maxSize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011794 <td class="entry_name
11795 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011796 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011797 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011798 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011799 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011800
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011801 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011802
11803
Igor Murashkin6c936c12014-05-13 14:51:49 -070011804
11805
11806
Igor Murashkinca256272014-10-02 15:27:09 -070011807
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011808 </td> <!-- entry_type -->
11809
11810 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011811 <p>Maximum size in bytes for the compressed
11812JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011813 </td>
11814
11815 <td class="entry_units">
11816 </td>
11817
11818 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011819 <p>Must be large enough to fit any JPEG produced by
11820the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011821 </td>
11822
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011823 <td class="entry_hal_version">
11824 <p>3.<wbr/>2</p>
11825 </td>
11826
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011827 <td class="entry_tags">
11828 </td>
11829
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011830 </tr>
11831 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011832 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011833 </tr>
11834 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011835 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080011836 <p>This is used for sizing the gralloc buffers for
11837JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011838 </td>
11839 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011840
11841
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011842 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011843 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011844
11845
11846
11847 <!-- end of kind -->
11848 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011849 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011850
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011851 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011852 <tr>
11853 <th class="th_name">Property Name</th>
11854 <th class="th_type">Type</th>
11855 <th class="th_description">Description</th>
11856 <th class="th_units">Units</th>
11857 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011858 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011859 <th class="th_tags">Tags</th>
11860 </tr>
11861 </thead>
11862
11863 <tbody>
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011874 <tr class="entry" id="dynamic_android.jpeg.gpsLocation">
11875 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011876 " rowspan="3">
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011877 android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
11878 </td>
11879 <td class="entry_type">
11880 <span class="entry_type_name">byte</span>
11881
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011882 <span class="entry_type_visibility"> [java_public as location]</span>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011883
11884 <span class="entry_type_synthetic">[synthetic] </span>
11885
Igor Murashkinca256272014-10-02 15:27:09 -070011886 <span class="entry_type_hwlevel">[legacy] </span>
11887
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011888
11889
11890
11891 </td> <!-- entry_type -->
11892
11893 <td class="entry_description">
11894 <p>A location object to use when generating image GPS metadata.<wbr/></p>
11895 </td>
11896
11897 <td class="entry_units">
11898 </td>
11899
11900 <td class="entry_range">
11901 </td>
11902
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011903 <td class="entry_hal_version">
11904 <p>3.<wbr/>2</p>
11905 </td>
11906
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011907 <td class="entry_tags">
11908 </td>
11909
11910 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011911 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011912 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011913 </tr>
11914 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011915 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011916 <p>Setting a location object in a request will include the GPS coordinates of the location
11917into any JPEG images captured based on the request.<wbr/> These coordinates can then be
11918viewed by anyone who receives the JPEG image.<wbr/></p>
11919 </td>
11920 </tr>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011921
11922
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011923 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070011924 <!-- end of entry -->
11925
11926
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011927 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011928 <td class="entry_name
11929 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011930 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011931 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011932 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011933 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011934 <span class="entry_type_container">x</span>
11935
11936 <span class="entry_type_array">
11937 3
11938 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011939 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070011940
11941
Igor Murashkinca256272014-10-02 15:27:09 -070011942 <span class="entry_type_hwlevel">[legacy] </span>
11943
Igor Murashkin6c936c12014-05-13 14:51:49 -070011944
Igor Murashkin0b080452013-12-27 15:30:25 -080011945 <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 -080011946
11947
11948 </td> <!-- entry_type -->
11949
11950 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011951 <p>GPS coordinates to include in output JPEG
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011952EXIF.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011953 </td>
11954
11955 <td class="entry_units">
11956 </td>
11957
11958 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011959 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011960 </td>
11961
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011962 <td class="entry_hal_version">
11963 <p>3.<wbr/>2</p>
11964 </td>
11965
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011966 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011967 <ul class="entry_tags">
11968 <li><a href="#tag_BC">BC</a></li>
11969 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011970 </td>
11971
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011972 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011973
11974
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080011975 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011976 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011977
11978
11979 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Igor Murashkin6c936c12014-05-13 14:51:49 -070011980 <td class="entry_name
11981 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011982 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011983 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011984 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011985 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011986
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070011987 <span class="entry_type_visibility"> [ndk_public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011988
11989
Igor Murashkinca256272014-10-02 15:27:09 -070011990 <span class="entry_type_hwlevel">[legacy] </span>
11991
Igor Murashkin6c936c12014-05-13 14:51:49 -070011992
11993
11994
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011995 </td> <!-- entry_type -->
11996
11997 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011998 <p>32 characters describing GPS algorithm to
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070011999include in EXIF.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012000 </td>
12001
12002 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012003 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012004 </td>
12005
12006 <td class="entry_range">
12007 </td>
12008
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012009 <td class="entry_hal_version">
12010 <p>3.<wbr/>2</p>
12011 </td>
12012
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012013 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012014 <ul class="entry_tags">
12015 <li><a href="#tag_BC">BC</a></li>
12016 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012017 </td>
12018
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012019 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012020
12021
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012022 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012023 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012024
12025
12026 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012027 <td class="entry_name
12028 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012029 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012030 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012031 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012032 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012033
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070012034 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012035
12036
Igor Murashkinca256272014-10-02 15:27:09 -070012037 <span class="entry_type_hwlevel">[legacy] </span>
12038
Igor Murashkin6c936c12014-05-13 14:51:49 -070012039
12040
12041
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012042 </td> <!-- entry_type -->
12043
12044 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012045 <p>Time GPS fix was made to include in
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012046EXIF.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012047 </td>
12048
12049 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012050 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012051 </td>
12052
12053 <td class="entry_range">
12054 </td>
12055
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012056 <td class="entry_hal_version">
12057 <p>3.<wbr/>2</p>
12058 </td>
12059
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012060 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012061 <ul class="entry_tags">
12062 <li><a href="#tag_BC">BC</a></li>
12063 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012064 </td>
12065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012066 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012067
12068
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012069 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012070 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012071
12072
12073 <tr class="entry" id="dynamic_android.jpeg.orientation">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012074 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012075 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012076 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012079 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012080
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012081 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012082
12083
Igor Murashkinca256272014-10-02 15:27:09 -070012084 <span class="entry_type_hwlevel">[legacy] </span>
12085
Igor Murashkin6c936c12014-05-13 14:51:49 -070012086
12087
12088
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012089 </td> <!-- entry_type -->
12090
12091 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012092 <p>The orientation for a JPEG image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012093 </td>
12094
12095 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012096 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012097 </td>
12098
12099 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012100 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012101 </td>
12102
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012103 <td class="entry_hal_version">
12104 <p>3.<wbr/>2</p>
12105 </td>
12106
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012107 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012108 <ul class="entry_tags">
12109 <li><a href="#tag_BC">BC</a></li>
12110 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012111 </td>
12112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012113 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012114 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012115 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012116 </tr>
12117 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012118 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012119 <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
12120to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
12121upright.<wbr/></p>
12122<p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
Yin-Chia Yeh58a8b192015-03-27 13:54:56 -070012123rotate the image data to match this orientation.<wbr/> When the image data is rotated,<wbr/>
12124the thumbnail data will also be rotated.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012125<p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
12126by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
Emilian Peevfb438722018-03-28 11:17:14 +010012127<p>To translate from the device orientation given by the Android sensor APIs for camera
12128sensors which are not EXTERNAL,<wbr/> the following sample code may be used:</p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012129<pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
12130 if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
12131 int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
12132
12133 //<wbr/> Round device orientation to a multiple of 90
12134 deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
12135
12136 //<wbr/> Reverse device orientation for front-facing cameras
12137 boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
12138 if (facingFront) deviceOrientation = -deviceOrientation;
12139
12140 //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
12141 //<wbr/> the image upright relative to the device orientation
12142 int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
12143
12144 return jpegOrientation;
12145}
12146</code></pre>
Emilian Peevfb438722018-03-28 11:17:14 +010012147<p>For EXTERNAL cameras the sensor orientation will always be set to 0 and the facing will
12148also be set to EXTERNAL.<wbr/> The above code is not relevant in such case.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012149 </td>
12150 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012151
12152
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012153 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012154 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012155
12156
12157 <tr class="entry" id="dynamic_android.jpeg.quality">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012158 <td class="entry_name
12159 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012160 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012161 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012162 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012163 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012164
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012165 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012166
12167
Igor Murashkinca256272014-10-02 15:27:09 -070012168 <span class="entry_type_hwlevel">[legacy] </span>
12169
Igor Murashkin6c936c12014-05-13 14:51:49 -070012170
12171
12172
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012173 </td> <!-- entry_type -->
12174
12175 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012176 <p>Compression quality of the final JPEG
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070012177image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012178 </td>
12179
12180 <td class="entry_units">
12181 </td>
12182
12183 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012184 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012185 </td>
12186
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012187 <td class="entry_hal_version">
12188 <p>3.<wbr/>2</p>
12189 </td>
12190
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012191 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012192 <ul class="entry_tags">
12193 <li><a href="#tag_BC">BC</a></li>
12194 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012195 </td>
12196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012197 </tr>
12198 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012199 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012200 </tr>
12201 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012202 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070012203 <p>85-95 is typical usage range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012204 </td>
12205 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012206
12207
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012208 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012209 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012210
12211
12212 <tr class="entry" id="dynamic_android.jpeg.size">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012213 <td class="entry_name
12214 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012215 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012216 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012217 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012218 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012219
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012220 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012221
12222
Igor Murashkin6c936c12014-05-13 14:51:49 -070012223
12224
12225
Igor Murashkinca256272014-10-02 15:27:09 -070012226
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012227 </td> <!-- entry_type -->
12228
12229 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012230 <p>The size of the compressed JPEG image,<wbr/> in
12231bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012232 </td>
12233
12234 <td class="entry_units">
12235 </td>
12236
12237 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012238 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012239 </td>
12240
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012241 <td class="entry_hal_version">
12242 <p>3.<wbr/>2</p>
12243 </td>
12244
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012245 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070012246 <ul class="entry_tags">
12247 <li><a href="#tag_FUTURE">FUTURE</a></li>
12248 </ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012249 </td>
12250
12251 </tr>
12252 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012253 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012254 </tr>
12255 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012256 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080012257 <p>If no JPEG output is produced for the request,<wbr/>
12258this must be 0.<wbr/></p>
12259<p>Otherwise,<wbr/> this describes the real size of the compressed
12260JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012261if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
12262has <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 -080012263the JPEG stream will be 1000000 bytes,<wbr/> of which the first
12264500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012265 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012266 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012267
12268
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012269 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012270 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012271
12272
12273 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012274 <td class="entry_name
12275 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012276 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012277 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012278 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012279 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012280
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012281 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012282
12283
Igor Murashkinca256272014-10-02 15:27:09 -070012284 <span class="entry_type_hwlevel">[legacy] </span>
12285
Igor Murashkin6c936c12014-05-13 14:51:49 -070012286
12287
12288
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012289 </td> <!-- entry_type -->
12290
12291 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012292 <p>Compression quality of JPEG
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070012293thumbnail.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012294 </td>
12295
12296 <td class="entry_units">
12297 </td>
12298
12299 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012300 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012301 </td>
12302
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012303 <td class="entry_hal_version">
12304 <p>3.<wbr/>2</p>
12305 </td>
12306
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012307 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012308 <ul class="entry_tags">
12309 <li><a href="#tag_BC">BC</a></li>
12310 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012311 </td>
12312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012313 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012314
12315
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012316 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012317 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012318
12319
12320 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012321 <td class="entry_name
Zhijun He5fb671c2014-05-21 17:51:05 -070012322 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012323 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012324 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012325 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012326 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012327 <span class="entry_type_container">x</span>
12328
12329 <span class="entry_type_array">
12330 2
12331 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012332 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012333
12334
Igor Murashkinca256272014-10-02 15:27:09 -070012335 <span class="entry_type_hwlevel">[legacy] </span>
12336
Igor Murashkin6c936c12014-05-13 14:51:49 -070012337
12338
12339
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012340 </td> <!-- entry_type -->
12341
12342 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070012343 <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012344 </td>
12345
12346 <td class="entry_units">
12347 </td>
12348
12349 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012350 <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012351 </td>
12352
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012353 <td class="entry_hal_version">
12354 <p>3.<wbr/>2</p>
12355 </td>
12356
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012357 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012358 <ul class="entry_tags">
12359 <li><a href="#tag_BC">BC</a></li>
12360 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012361 </td>
12362
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012363 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012364 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012365 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012366 </tr>
12367 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012368 <td class="entry_details" colspan="6">
Zhijun Hef90eeaf2014-01-16 12:13:35 -080012369 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
12370but the captured JPEG will still be a valid image.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012371<p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
12372should have the same aspect ratio as the main JPEG output.<wbr/></p>
Zhijun He5fb671c2014-05-21 17:51:05 -070012373<p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
12374ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
12375For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
1237616:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
12377generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
12378Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
Yin-Chia Yeh390230b2015-06-22 15:50:05 -070012379<p>When an <a href="#controls_android.jpeg.orientation">android.<wbr/>jpeg.<wbr/>orientation</a> of non-zero degree is requested,<wbr/>
12380the camera device will handle thumbnail rotation in one of the following ways:</p>
12381<ul>
12382<li>Set the <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>
12383 and keep jpeg and thumbnail image data unrotated.<wbr/></li>
12384<li>Rotate the jpeg and thumbnail image data and not set
12385 <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>.<wbr/> In this
12386 case,<wbr/> LIMITED or FULL hardware level devices will report rotated thumnail size in
12387 capture result,<wbr/> so the width and height will be interchanged if 90 or 270 degree
12388 orientation is requested.<wbr/> LEGACY device will always report unrotated thumbnail
12389 size.<wbr/></li>
12390</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012391 </td>
12392 </tr>
12393
Zhijun He5fb671c2014-05-21 17:51:05 -070012394 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012395 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He5fb671c2014-05-21 17:51:05 -070012396 </tr>
12397 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012398 <td class="entry_details" colspan="6">
Zhijun He5fb671c2014-05-21 17:51:05 -070012399 <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
12400The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
12401The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
12402thumbnail image cropping.<wbr/></p>
12403 </td>
12404 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012405
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012406 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012407 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012408
12409
12410
12411 <!-- end of kind -->
12412 </tbody>
12413
12414 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012415 <tr><td colspan="7" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012416
12417
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012418 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012419
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012420 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012421 <tr>
12422 <th class="th_name">Property Name</th>
12423 <th class="th_type">Type</th>
12424 <th class="th_description">Description</th>
12425 <th class="th_units">Units</th>
12426 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012427 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012428 <th class="th_tags">Tags</th>
12429 </tr>
12430 </thead>
12431
12432 <tbody>
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443 <tr class="entry" id="controls_android.lens.aperture">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012444 <td class="entry_name
12445 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012446 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012447 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012448 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012449 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012450
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012451 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012452
12453
Igor Murashkinca256272014-10-02 15:27:09 -070012454 <span class="entry_type_hwlevel">[full] </span>
12455
Igor Murashkin6c936c12014-05-13 14:51:49 -070012456
12457
12458
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012459 </td> <!-- entry_type -->
12460
12461 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012462 <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
12463effective aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012464 </td>
12465
12466 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012467 The f-number (f/<wbr/>N)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012468 </td>
12469
12470 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012471 <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 -080012472 </td>
12473
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012474 <td class="entry_hal_version">
12475 <p>3.<wbr/>2</p>
12476 </td>
12477
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012478 <td class="entry_tags">
12479 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012480 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012481 </ul>
12482 </td>
12483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012484 </tr>
12485 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012486 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012487 </tr>
12488 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012489 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012490 <p>Setting this value is only supported on the camera devices that have a variable
12491aperture lens.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -080012492<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
12493this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080012494<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
Zhijun He1b58d382014-01-10 10:22:53 -080012495to achieve manual exposure control.<wbr/></p>
12496<p>The requested aperture value may take several frames to reach the
12497requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -080012498aperture size in capture result metadata while the aperture is changing.<wbr/>
12499While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -080012500<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
12501the ON modes,<wbr/> this will be overridden by the camera device
12502auto-exposure algorithm,<wbr/> the overridden values are then provided
12503back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012504 </td>
12505 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012506
12507
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012508 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012509 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012510
12511
12512 <tr class="entry" id="controls_android.lens.filterDensity">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012513 <td class="entry_name
12514 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012515 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012518 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012519
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012520 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012521
12522
Igor Murashkinca256272014-10-02 15:27:09 -070012523 <span class="entry_type_hwlevel">[full] </span>
12524
Igor Murashkin6c936c12014-05-13 14:51:49 -070012525
12526
12527
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012528 </td> <!-- entry_type -->
12529
12530 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012531 <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012532 </td>
12533
12534 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012535 Exposure Value (EV)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012536 </td>
12537
12538 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012539 <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 -080012540 </td>
12541
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012542 <td class="entry_hal_version">
12543 <p>3.<wbr/>2</p>
12544 </td>
12545
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012546 <td class="entry_tags">
12547 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012548 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012549 </ul>
12550 </td>
12551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012552 </tr>
12553 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012554 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012555 </tr>
12556 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012557 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012558 <p>This control will not be supported on most camera devices.<wbr/></p>
Ruben Brunk83eb3032014-01-15 16:12:07 -080012559<p>Lens filters are typically used to lower the amount of light the
12560sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
12561step is the standard logarithmic representation,<wbr/> which are
12562non-negative,<wbr/> and inversely proportional to the amount of light
12563hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
12564in no reduction of the incoming light,<wbr/> and setting this to 2 would
12565mean that the filter is set to reduce incoming light by two stops
12566(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -080012567<p>It may take several frames before the lens filter density changes
12568to the requested value.<wbr/> While the filter density is still changing,<wbr/>
12569<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012570 </td>
12571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012572
12573
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012574 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012576
12577
12578 <tr class="entry" id="controls_android.lens.focalLength">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012579 <td class="entry_name
12580 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012581 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012582 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012583 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012584 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012585
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012586 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012587
12588
Igor Murashkinca256272014-10-02 15:27:09 -070012589 <span class="entry_type_hwlevel">[legacy] </span>
12590
Igor Murashkin6c936c12014-05-13 14:51:49 -070012591
12592
12593
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012594 </td> <!-- entry_type -->
12595
12596 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012597 <p>The desired lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012598 </td>
12599
12600 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012601 Millimeters
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012602 </td>
12603
12604 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -080012605 <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 -080012606 </td>
12607
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012608 <td class="entry_hal_version">
12609 <p>3.<wbr/>2</p>
12610 </td>
12611
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012612 <td class="entry_tags">
12613 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012614 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012615 </ul>
12616 </td>
12617
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012618 </tr>
12619 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012620 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012621 </tr>
12622 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012623 <td class="entry_details" colspan="6">
Ruben Brunkac9bbb92014-01-15 18:39:35 -080012624 <p>This setting controls the physical focal length of the camera
12625device's lens.<wbr/> Changing the focal length changes the field of
12626view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
12627<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
12628setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -080012629frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -080012630While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
12631be set to MOVING.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012632<p>Optical zoom will not be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012633 </td>
12634 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012635
12636
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012637 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012638 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012639
12640
12641 <tr class="entry" id="controls_android.lens.focusDistance">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012642 <td class="entry_name
12643 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012644 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012645 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012646 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012647 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012648
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012649 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012650
12651
Igor Murashkinca256272014-10-02 15:27:09 -070012652 <span class="entry_type_hwlevel">[full] </span>
12653
Igor Murashkin6c936c12014-05-13 14:51:49 -070012654
12655
12656
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012657 </td> <!-- entry_type -->
12658
12659 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012660 <p>Desired distance to plane of sharpest focus,<wbr/>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070012661measured from frontmost surface of the lens.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012662 </td>
12663
12664 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012665 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012666 </td>
12667
12668 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012669 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012670 </td>
12671
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012672 <td class="entry_hal_version">
12673 <p>3.<wbr/>2</p>
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_BC">BC</a></li>
12679 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012680 </ul>
12681 </td>
12682
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012683 </tr>
12684 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012685 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012686 </tr>
12687 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012688 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012689 <p>This control can be used for setting manual focus,<wbr/> on devices that support
12690the MANUAL_<wbr/>SENSOR capability and have a variable-focus lens (see
12691<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>).<wbr/></p>
12692<p>A value of <code>0.<wbr/>0f</code> means infinity focus.<wbr/> The value set will be clamped to
12693<code>[0.<wbr/>0f,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>.<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -080012694<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
12695instantaneously,<wbr/> and it may take several frames before the lens
12696can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
12697<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -070012698<p>LEGACY devices support at most setting this to <code>0.<wbr/>0f</code>
12699for infinity focus.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012700 </td>
12701 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012702
12703
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012704 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012705 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012706
12707
12708 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012709 <td class="entry_name
12710 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012711 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012712 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012713 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012714 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012715
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012716 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012717
Igor Murashkin6c936c12014-05-13 14:51:49 -070012718
Igor Murashkinca256272014-10-02 15:27:09 -070012719 <span class="entry_type_hwlevel">[limited] </span>
12720
Igor Murashkin6c936c12014-05-13 14:51:49 -070012721
12722
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012723 <ul class="entry_type_enum">
12724 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080012725 <span class="entry_type_enum_name">OFF (v3.2)</span>
Ruben Brunk218639c2014-01-15 18:09:41 -080012726 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012727 </li>
12728 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080012729 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070012730 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk218639c2014-01-15 18:09:41 -080012731 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012732 </li>
12733 </ul>
12734
12735 </td> <!-- entry_type -->
12736
12737 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -080012738 <p>Sets whether the camera device uses optical image stabilization (OIS)
12739when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012740 </td>
12741
12742 <td class="entry_units">
12743 </td>
12744
12745 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -080012746 <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 -080012747 </td>
12748
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012749 <td class="entry_hal_version">
12750 <p>3.<wbr/>2</p>
12751 </td>
12752
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012753 <td class="entry_tags">
12754 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012755 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012756 </ul>
12757 </td>
12758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012759 </tr>
12760 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012761 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012762 </tr>
12763 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012764 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070012765 <p>OIS is used to compensate for motion blur due to small
12766movements of the camera during capture.<wbr/> Unlike digital image
12767stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
12768makes use of mechanical elements to stabilize the camera
12769sensor,<wbr/> and thus allows for longer exposure times before
12770camera shake becomes apparent.<wbr/></p>
Zhijun He91449c82014-06-12 10:43:32 -070012771<p>Switching between different optical stabilization modes may take several
12772frames to initialize,<wbr/> the camera device will report the current mode in
12773capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
12774optical stabilization modes in the first several capture results may still
12775be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012776<p>If a camera device supports both OIS and digital image stabilization
12777(<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
12778interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070012779<p>Not all devices will support OIS; see
12780<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
12781available controls.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012782 </td>
12783 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012784
12785
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012786 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012787 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012788
12789
12790
12791 <!-- end of kind -->
12792 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012793 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012794
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012795 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012796 <tr>
12797 <th class="th_name">Property Name</th>
12798 <th class="th_type">Type</th>
12799 <th class="th_description">Description</th>
12800 <th class="th_units">Units</th>
12801 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012802 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012803 <th class="th_tags">Tags</th>
12804 </tr>
12805 </thead>
12806
12807 <tbody>
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820 <tr class="entry" id="static_android.lens.info.availableApertures">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012821 <td class="entry_name
12822 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012823 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012825 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012826 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012827 <span class="entry_type_container">x</span>
12828
12829 <span class="entry_type_array">
12830 n
12831 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012833
12834
Igor Murashkinca256272014-10-02 15:27:09 -070012835 <span class="entry_type_hwlevel">[full] </span>
12836
Igor Murashkin6c936c12014-05-13 14:51:49 -070012837
12838
12839
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012840 </td> <!-- entry_type -->
12841
12842 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012843 <p>List of aperture size values for <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a> that are
12844supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012845 </td>
12846
12847 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012848 The aperture f-number
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012849 </td>
12850
12851 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852 </td>
12853
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012854 <td class="entry_hal_version">
12855 <p>3.<wbr/>2</p>
12856 </td>
12857
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012858 <td class="entry_tags">
12859 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012860 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012861 </ul>
12862 </td>
12863
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012864 </tr>
12865 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012866 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012867 </tr>
12868 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012869 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012870 <p>If the camera device doesn't support a variable lens aperture,<wbr/>
12871this list will contain only one value,<wbr/> which is the fixed aperture size.<wbr/></p>
12872<p>If the camera device supports a variable aperture,<wbr/> the aperture values
Zhijun He1b58d382014-01-10 10:22:53 -080012873in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012874 </td>
12875 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012876
12877
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012878 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012879 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012880
12881
12882 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012883 <td class="entry_name
12884 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012885 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012886 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012887 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012888 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012889 <span class="entry_type_container">x</span>
12890
12891 <span class="entry_type_array">
12892 n
12893 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012894 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012895
12896
Igor Murashkinca256272014-10-02 15:27:09 -070012897 <span class="entry_type_hwlevel">[full] </span>
12898
Igor Murashkin6c936c12014-05-13 14:51:49 -070012899
12900
12901
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012902 </td> <!-- entry_type -->
12903
12904 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012905 <p>List of neutral density filter values for
12906<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012907 </td>
12908
12909 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012910 Exposure value (EV)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012911 </td>
12912
12913 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012914 <p>Values are &gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012915 </td>
12916
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012917 <td class="entry_hal_version">
12918 <p>3.<wbr/>2</p>
12919 </td>
12920
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012921 <td class="entry_tags">
12922 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012923 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012924 </ul>
12925 </td>
12926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012927 </tr>
12928 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012929 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012930 </tr>
12931 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012932 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012933 <p>If a neutral density filter is not supported by this camera device,<wbr/>
12934this list will contain only 0.<wbr/> Otherwise,<wbr/> this list will include every
12935filter density supported by the camera device,<wbr/> in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012936 </td>
12937 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012938
12939
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012940 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012941 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012942
12943
12944 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Igor Murashkin6c936c12014-05-13 14:51:49 -070012945 <td class="entry_name
12946 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012947 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012948 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012949 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012950 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012951 <span class="entry_type_container">x</span>
12952
12953 <span class="entry_type_array">
12954 n
12955 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012956 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070012957
12958
Igor Murashkinca256272014-10-02 15:27:09 -070012959 <span class="entry_type_hwlevel">[legacy] </span>
12960
Igor Murashkin6c936c12014-05-13 14:51:49 -070012961
Ruben Brunkac9bbb92014-01-15 18:39:35 -080012962 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012963
12964
12965 </td> <!-- entry_type -->
12966
12967 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012968 <p>List of focal lengths for <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a> that are supported by this camera
12969device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012970 </td>
12971
12972 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012973 Millimeters
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012974 </td>
12975
12976 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012977 <p>Values are &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012978 </td>
12979
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012980 <td class="entry_hal_version">
12981 <p>3.<wbr/>2</p>
12982 </td>
12983
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012984 <td class="entry_tags">
12985 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012986 <li><a href="#tag_BC">BC</a></li>
12987 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012988 </ul>
12989 </td>
12990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012991 </tr>
12992 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012993 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012994 </tr>
12995 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080012996 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070012997 <p>If optical zoom is not supported,<wbr/> this list will only contain
12998a single value corresponding to the fixed focal length of the
12999device.<wbr/> Otherwise,<wbr/> this list will include every focal length supported
13000by the camera device,<wbr/> in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013001 </td>
13002 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013003
13004
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013005 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013006 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013007
13008
13009 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013010 <td class="entry_name
13011 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013012 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013013 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013014 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013015 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013016 <span class="entry_type_container">x</span>
13017
13018 <span class="entry_type_array">
13019 n
13020 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070013021 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070013022
13023
Igor Murashkinca256272014-10-02 15:27:09 -070013024 <span class="entry_type_hwlevel">[limited] </span>
13025
Igor Murashkin6c936c12014-05-13 14:51:49 -070013026
Igor Murashkin0b080452013-12-27 15:30:25 -080013027 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013028
13029
13030 </td> <!-- entry_type -->
13031
13032 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013033 <p>List of optical image stabilization (OIS) modes for
13034<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013035 </td>
13036
13037 <td class="entry_units">
13038 </td>
13039
13040 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013041 <p>Any value listed in <a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013042 </td>
13043
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013044 <td class="entry_hal_version">
13045 <p>3.<wbr/>2</p>
13046 </td>
13047
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013048 <td class="entry_tags">
13049 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013050 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013051 </ul>
13052 </td>
13053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013054 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -080013055 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013056 <th class="th_details" colspan="6">Details</th>
Ruben Brunk218639c2014-01-15 18:09:41 -080013057 </tr>
13058 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013059 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013060 <p>If OIS is not supported by a given camera device,<wbr/> this list will
Ruben Brunk218639c2014-01-15 18:09:41 -080013061contain only OFF.<wbr/></p>
13062 </td>
13063 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013064
13065
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013066 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013067 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013068
13069
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013070 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013071 <td class="entry_name
13072 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013073 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013076 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013077
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013078 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013079
13080
Igor Murashkinca256272014-10-02 15:27:09 -070013081 <span class="entry_type_hwlevel">[limited] </span>
13082
Igor Murashkin6c936c12014-05-13 14:51:49 -070013083
13084
13085
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013086 </td> <!-- entry_type -->
13087
13088 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013089 <p>Hyperfocal distance for this lens.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013090 </td>
13091
13092 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013093 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013094 </td>
13095
13096 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013097 <p>If lens is fixed focus,<wbr/> &gt;= 0.<wbr/> If lens has focuser unit,<wbr/> the value is
13098within <code>(0.<wbr/>0f,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013099 </td>
13100
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013101 <td class="entry_hal_version">
13102 <p>3.<wbr/>2</p>
13103 </td>
13104
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013105 <td class="entry_tags">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013106 </td>
13107
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013108 </tr>
13109 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013110 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013111 </tr>
13112 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013113 <td class="entry_details" colspan="6">
Zhijun He27afb782014-04-29 19:23:08 -070013114 <p>If the lens is not fixed focus,<wbr/> the camera device will report this
Zhijun Hef92c76a2014-02-06 01:40:35 -080013115field when <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> is APPROXIMATE or CALIBRATED.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013116 </td>
13117 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013118
13119
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013120 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013121 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013122
13123
13124 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013125 <td class="entry_name
Igor Murashkin7b721082014-06-19 15:45:58 -070013126 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013127 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013130 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013133
13134
Igor Murashkinca256272014-10-02 15:27:09 -070013135 <span class="entry_type_hwlevel">[limited] </span>
13136
Igor Murashkin6c936c12014-05-13 14:51:49 -070013137
13138
13139
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013140 </td> <!-- entry_type -->
13141
13142 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013143 <p>Shortest distance from frontmost surface
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013144of the lens that can be brought into sharp focus.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013145 </td>
13146
13147 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013148 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149 </td>
13150
13151 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013152 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013153 </td>
13154
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013155 <td class="entry_hal_version">
13156 <p>3.<wbr/>2</p>
13157 </td>
13158
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013159 <td class="entry_tags">
13160 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013161 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013162 </ul>
13163 </td>
13164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013165 </tr>
13166 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013167 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013168 </tr>
13169 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013170 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013171 <p>If the lens is fixed-focus,<wbr/> this will be
Zhijun Hef92c76a2014-02-06 01:40:35 -0800131720.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013173 </td>
13174 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013175
Igor Murashkin7b721082014-06-19 15:45:58 -070013176 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013177 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin7b721082014-06-19 15:45:58 -070013178 </tr>
13179 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013180 <td class="entry_details" colspan="6">
Igor Murashkin7b721082014-06-19 15:45:58 -070013181 <p>Mandatory for FULL devices; LIMITED devices
13182must always set this value to 0 for fixed-focus; and may omit
13183the minimum focus distance otherwise.<wbr/></p>
13184<p>This field is also mandatory for all devices advertising
13185the MANUAL_<wbr/>SENSOR capability.<wbr/></p>
13186 </td>
13187 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013188
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013189 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013190 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013191
13192
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013193 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013194 <td class="entry_name
13195 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013196 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013197 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013198 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013199 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013200 <span class="entry_type_container">x</span>
13201
13202 <span class="entry_type_array">
13203 2
13204 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070013205 <span class="entry_type_visibility"> [ndk_public as size]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070013206
13207
Igor Murashkinca256272014-10-02 15:27:09 -070013208 <span class="entry_type_hwlevel">[full] </span>
13209
Igor Murashkin6c936c12014-05-13 14:51:49 -070013210
Zhijun He25b8ac52014-02-24 09:49:37 -080013211 <div class="entry_type_notes">width and height (N,<wbr/> M) of lens shading map provided by the camera device.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013212
13213
13214 </td> <!-- entry_type -->
13215
13216 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013217 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013218 </td>
13219
13220 <td class="entry_units">
13221 </td>
13222
13223 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013224 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013225 </td>
13226
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013227 <td class="entry_hal_version">
13228 <p>3.<wbr/>2</p>
13229 </td>
13230
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013231 <td class="entry_tags">
13232 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013233 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013234 </ul>
13235 </td>
13236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013237 </tr>
13238 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013239 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013240 </tr>
13241 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013242 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080013243 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
13244must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013245 </td>
13246 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013247
13248
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013249 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013250 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013251
Zhijun Hef92c76a2014-02-06 01:40:35 -080013252
13253 <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013254 <td class="entry_name
Yin-Chia Yeh52f65842014-08-18 10:44:21 -070013255 " rowspan="5">
Zhijun Hef92c76a2014-02-06 01:40:35 -080013256 android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
13257 </td>
13258 <td class="entry_type">
13259 <span class="entry_type_name entry_type_name_enum">byte</span>
13260
13261 <span class="entry_type_visibility"> [public]</span>
13262
Igor Murashkin6c936c12014-05-13 14:51:49 -070013263
Igor Murashkinca256272014-10-02 15:27:09 -070013264 <span class="entry_type_hwlevel">[limited] </span>
13265
Igor Murashkin6c936c12014-05-13 14:51:49 -070013266
13267
Zhijun Hef92c76a2014-02-06 01:40:35 -080013268 <ul class="entry_type_enum">
13269 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080013270 <span class="entry_type_enum_name">UNCALIBRATED (v3.2)</span>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013271 <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070013272<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
13273<p>Setting the lens to the same focus distance on separate occasions may
Zhijun Hef92c76a2014-02-06 01:40:35 -080013274result in a different real focus distance,<wbr/> depending on factors such
13275as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
13276and the device temperature.<wbr/> The focus distance value will still be
13277in the range of <code>[0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>,<wbr/> where 0
13278represents the farthest focus.<wbr/></p></span>
13279 </li>
13280 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080013281 <span class="entry_type_enum_name">APPROXIMATE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070013282 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
13283<p>However,<wbr/> setting the lens to the same focus distance
13284on separate occasions may result in a different real
13285focus distance,<wbr/> depending on factors such as the
13286orientation of the device,<wbr/> the age of the focusing
13287mechanism,<wbr/> and the device temperature.<wbr/></p></span>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013288 </li>
13289 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080013290 <span class="entry_type_enum_name">CALIBRATED (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070013291 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
13292is calibrated.<wbr/></p>
13293<p>The lens mechanism is calibrated so that setting the
13294same focus distance is repeatable on multiple
13295occasions with good accuracy,<wbr/> and the focus distance
13296corresponds to the real physical distance to the plane
13297of best focus.<wbr/></p></span>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013298 </li>
13299 </ul>
13300
13301 </td> <!-- entry_type -->
13302
13303 <td class="entry_description">
13304 <p>The lens focus distance calibration quality.<wbr/></p>
13305 </td>
13306
13307 <td class="entry_units">
13308 </td>
13309
13310 <td class="entry_range">
13311 </td>
13312
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013313 <td class="entry_hal_version">
13314 <p>3.<wbr/>2</p>
13315 </td>
13316
Zhijun Hef92c76a2014-02-06 01:40:35 -080013317 <td class="entry_tags">
13318 <ul class="entry_tags">
13319 <li><a href="#tag_V1">V1</a></li>
13320 </ul>
13321 </td>
13322
13323 </tr>
13324 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013325 <th class="th_details" colspan="6">Details</th>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013326 </tr>
13327 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013328 <td class="entry_details" colspan="6">
Zhijun Hef92c76a2014-02-06 01:40:35 -080013329 <p>The lens focus distance calibration quality determines the reliability of
13330focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
13331<a href="#dynamic_android.lens.focusRange">android.<wbr/>lens.<wbr/>focus<wbr/>Range</a>,<wbr/> <a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a>,<wbr/> and
13332<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013333<p>APPROXIMATE and CALIBRATED devices report the focus metadata in
13334units of diopters (1/<wbr/>meter),<wbr/> so <code>0.<wbr/>0f</code> represents focusing at infinity,<wbr/>
13335and increasing positive numbers represent focusing closer and closer
13336to the camera device.<wbr/> The focus distance control also uses diopters
13337on these devices.<wbr/></p>
13338<p>UNCALIBRATED devices do not use units that are directly comparable
13339to any real physical measurement,<wbr/> but <code>0.<wbr/>0f</code> still represents farthest
13340focus,<wbr/> and <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> represents the
13341nearest focus the device can achieve.<wbr/></p>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013342 </td>
13343 </tr>
13344
Yin-Chia Yeh52f65842014-08-18 10:44:21 -070013345 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013346 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh52f65842014-08-18 10:44:21 -070013347 </tr>
13348 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013349 <td class="entry_details" colspan="6">
Yin-Chia Yeh52f65842014-08-18 10:44:21 -070013350 <p>For devices advertise APPROXIMATE quality or higher,<wbr/> diopters 0 (infinity
13351focus) must work.<wbr/> When autofocus is disabled (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> == OFF)
13352and the lens focus distance is set to 0 diopters
13353(<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> == 0),<wbr/> the lens will move to focus at infinity
13354and is stably focused at infinity even if the device tilts.<wbr/> It may take the
13355lens some time to move; during the move the lens state should be MOVING and
13356the output diopter value should be changing toward 0.<wbr/></p>
13357 </td>
13358 </tr>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013359
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013360 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun Hef92c76a2014-02-06 01:40:35 -080013361 <!-- end of entry -->
13362
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013363
13364
13365
13366
13367 <tr class="entry" id="static_android.lens.facing">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013368 <td class="entry_name
13369 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013370 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013371 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013372 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013373 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013374
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013375 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013376
Igor Murashkin6c936c12014-05-13 14:51:49 -070013377
Igor Murashkinca256272014-10-02 15:27:09 -070013378 <span class="entry_type_hwlevel">[legacy] </span>
13379
Igor Murashkin6c936c12014-05-13 14:51:49 -070013380
13381
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013382 <ul class="entry_type_enum">
13383 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080013384 <span class="entry_type_enum_name">FRONT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070013385 <span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013386 </li>
13387 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080013388 <span class="entry_type_enum_name">BACK (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070013389 <span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013390 </li>
Zhijun Hebe30d4f2015-01-12 15:06:16 -080013391 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080013392 <span class="entry_type_enum_name">EXTERNAL (v3.2)</span>
Zhijun Hebe30d4f2015-01-12 15:06:16 -080013393 <span class="entry_type_enum_notes"><p>The camera device is an external camera,<wbr/> and has no fixed facing relative to the
13394device's screen.<wbr/></p></span>
13395 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013396 </ul>
13397
13398 </td> <!-- entry_type -->
13399
13400 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013401 <p>Direction the camera faces relative to
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070013402device screen.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013403 </td>
13404
13405 <td class="entry_units">
13406 </td>
13407
13408 <td class="entry_range">
13409 </td>
13410
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013411 <td class="entry_hal_version">
13412 <p>3.<wbr/>2</p>
13413 </td>
13414
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013415 <td class="entry_tags">
13416 </td>
13417
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013418 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013419
13420
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013421 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013422 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013423
13424
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013425 <tr class="entry" id="static_android.lens.poseRotation">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013426 <td class="entry_name
13427 " rowspan="3">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013428 android.<wbr/>lens.<wbr/>pose<wbr/>Rotation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013429 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013430 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013431 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013432 <span class="entry_type_container">x</span>
13433
13434 <span class="entry_type_array">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013435 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013436 </span>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013437 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070013438
13439
13440
Igor Murashkinca256272014-10-02 15:27:09 -070013441
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013442
13443
13444 </td> <!-- entry_type -->
13445
13446 <td class="entry_description">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013447 <p>The orientation of the camera relative to the sensor
13448coordinate system.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013449 </td>
13450
13451 <td class="entry_units">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013452
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070013453 Quaternion coefficients
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013454
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013455 </td>
13456
13457 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013458 </td>
13459
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013460 <td class="entry_hal_version">
13461 <p>3.<wbr/>2</p>
13462 </td>
13463
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013464 <td class="entry_tags">
13465 <ul class="entry_tags">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013466 <li><a href="#tag_DEPTH">DEPTH</a></li>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013467 </ul>
13468 </td>
13469
13470 </tr>
13471 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013472 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013473 </tr>
13474 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013475 <td class="entry_details" colspan="6">
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070013476 <p>The four coefficients that describe the quaternion
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013477rotation from the Android sensor coordinate system to a
13478camera-aligned coordinate system where the X-axis is
13479aligned with the long side of the image sensor,<wbr/> the Y-axis
13480is aligned with the short side of the image sensor,<wbr/> and
13481the Z-axis is aligned with the optical axis of the sensor.<wbr/></p>
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070013482<p>To convert from the quaternion coefficients <code>(x,<wbr/>y,<wbr/>z,<wbr/>w)</code>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013483to the axis of rotation <code>(a_<wbr/>x,<wbr/> a_<wbr/>y,<wbr/> a_<wbr/>z)</code> and rotation
13484amount <code>theta</code>,<wbr/> the following formulas can be used:</p>
13485<pre><code> theta = 2 * acos(w)
13486a_<wbr/>x = x /<wbr/> sin(theta/<wbr/>2)
13487a_<wbr/>y = y /<wbr/> sin(theta/<wbr/>2)
13488a_<wbr/>z = z /<wbr/> sin(theta/<wbr/>2)
13489</code></pre>
13490<p>To create a 3x3 rotation matrix that applies the rotation
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070013491defined by this quaternion,<wbr/> the following matrix can be
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013492used:</p>
13493<pre><code>R = [ 1 - 2y^2 - 2z^2,<wbr/> 2xy - 2zw,<wbr/> 2xz + 2yw,<wbr/>
13494 2xy + 2zw,<wbr/> 1 - 2x^2 - 2z^2,<wbr/> 2yz - 2xw,<wbr/>
13495 2xz - 2yw,<wbr/> 2yz + 2xw,<wbr/> 1 - 2x^2 - 2y^2 ]
13496</code></pre>
13497<p>This matrix can then be used to apply the rotation to a
13498 column vector point with</p>
13499<p><code>p' = Rp</code></p>
13500<p>where <code>p</code> is in the device sensor coordinate system,<wbr/> and
13501 <code>p'</code> is in the camera-oriented coordinate system.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013502 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013503 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013504
13505
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013506 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013507 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013508
13509
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013510 <tr class="entry" id="static_android.lens.poseTranslation">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013511 <td class="entry_name
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013512 " rowspan="3">
13513 android.<wbr/>lens.<wbr/>pose<wbr/>Translation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013514 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013515 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013516 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013517 <span class="entry_type_container">x</span>
13518
13519 <span class="entry_type_array">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013520 3
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013521 </span>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013522 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013523
13524
Igor Murashkin6c936c12014-05-13 14:51:49 -070013525
13526
13527
Igor Murashkinca256272014-10-02 15:27:09 -070013528
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013529 </td> <!-- entry_type -->
13530
13531 <td class="entry_description">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013532 <p>Position of the camera optical center.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013533 </td>
13534
13535 <td class="entry_units">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013536 Meters
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013537 </td>
13538
13539 <td class="entry_range">
13540 </td>
13541
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013542 <td class="entry_hal_version">
13543 <p>3.<wbr/>2</p>
13544 </td>
13545
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013546 <td class="entry_tags">
13547 <ul class="entry_tags">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013548 <li><a href="#tag_DEPTH">DEPTH</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013549 </ul>
13550 </td>
13551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013552 </tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013553 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013554 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013555 </tr>
13556 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013557 <td class="entry_details" colspan="6">
Eino-Ville Talvala3014c132015-05-29 17:15:37 -070013558 <p>The position of the camera device's lens optical center,<wbr/>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080013559as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
13560<p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
13561is relative to the optical center of the largest camera device facing in the same
13562direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
13563coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
13564coordinate system,<wbr/> but not the origin.<wbr/></p>
13565<p>If this device is the largest or only camera device with a given facing,<wbr/> then this
13566position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
13567from the main sensor along the +X axis (to the right from the user's perspective) will
13568report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
13569<p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070013570the source camera <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> must be corrected for.<wbr/> Then the source
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080013571camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
13572<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
13573relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
13574camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
13575camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
13576coordinates.<wbr/></p>
13577<p>To compare this against a real image from the destination camera,<wbr/> the destination camera
13578image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
13579<p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
13580the center of the primary gyroscope on the device.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013581 </td>
13582 </tr>
13583
13584
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013585 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013586 <!-- end of entry -->
13587
13588
13589 <tr class="entry" id="static_android.lens.intrinsicCalibration">
13590 <td class="entry_name
13591 " rowspan="3">
13592 android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration
13593 </td>
13594 <td class="entry_type">
13595 <span class="entry_type_name">float</span>
13596 <span class="entry_type_container">x</span>
13597
13598 <span class="entry_type_array">
13599 5
13600 </span>
13601 <span class="entry_type_visibility"> [public]</span>
13602
13603
13604
13605
13606
13607
13608 </td> <!-- entry_type -->
13609
13610 <td class="entry_description">
13611 <p>The parameters for this camera device's intrinsic
13612calibration.<wbr/></p>
13613 </td>
13614
13615 <td class="entry_units">
13616
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070013617 Pixels in the
13618 android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
13619 coordinate system.<wbr/>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013620
13621 </td>
13622
13623 <td class="entry_range">
13624 </td>
13625
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013626 <td class="entry_hal_version">
13627 <p>3.<wbr/>2</p>
13628 </td>
13629
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013630 <td class="entry_tags">
13631 <ul class="entry_tags">
13632 <li><a href="#tag_DEPTH">DEPTH</a></li>
13633 </ul>
13634 </td>
13635
13636 </tr>
13637 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013638 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013639 </tr>
13640 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013641 <td class="entry_details" colspan="6">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013642 <p>The five calibration parameters that describe the
13643transform from camera-centric 3D coordinates to sensor
13644pixel coordinates:</p>
13645<pre><code>[f_<wbr/>x,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>x,<wbr/> c_<wbr/>y,<wbr/> s]
13646</code></pre>
13647<p>Where <code>f_<wbr/>x</code> and <code>f_<wbr/>y</code> are the horizontal and vertical
13648focal lengths,<wbr/> <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code> is the position of the optical
13649axis,<wbr/> and <code>s</code> is a skew parameter for the sensor plane not
13650being aligned with the lens plane.<wbr/></p>
13651<p>These are typically used within a transformation matrix K:</p>
13652<pre><code>K = [ f_<wbr/>x,<wbr/> s,<wbr/> c_<wbr/>x,<wbr/>
13653 0,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>y,<wbr/>
13654 0 0,<wbr/> 1 ]
13655</code></pre>
13656<p>which can then be combined with the camera pose rotation
13657<code>R</code> and translation <code>t</code> (<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> and
13658<a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>,<wbr/> respective) to calculate the
13659complete transform from world coordinates to pixel
13660coordinates:</p>
13661<pre><code>P = [ K 0 * [ R t
13662 0 1 ] 0 1 ]
13663</code></pre>
13664<p>and with <code>p_<wbr/>w</code> being a point in the world coordinate system
13665and <code>p_<wbr/>s</code> being a point in the camera active pixel array
13666coordinate system,<wbr/> and with the mapping including the
13667homogeneous division by z:</p>
13668<pre><code> p_<wbr/>h = (x_<wbr/>h,<wbr/> y_<wbr/>h,<wbr/> z_<wbr/>h) = P p_<wbr/>w
13669p_<wbr/>s = p_<wbr/>h /<wbr/> z_<wbr/>h
13670</code></pre>
13671<p>so <code>[x_<wbr/>s,<wbr/> y_<wbr/>s]</code> is the pixel coordinates of the world
13672point,<wbr/> <code>z_<wbr/>s = 1</code>,<wbr/> and <code>w_<wbr/>s</code> is a measurement of disparity
13673(depth) in pixel coordinates.<wbr/></p>
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070013674<p>Note that the coordinate system for this transform is the
13675<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> system,<wbr/>
13676where <code>(0,<wbr/>0)</code> is the top-left of the
13677preCorrectionActiveArraySize rectangle.<wbr/> Once the pose and
13678intrinsic calibration transforms have been applied to a
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070013679world point,<wbr/> then the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070013680transform needs to be applied,<wbr/> and the result adjusted to
13681be in the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> coordinate
13682system (where <code>(0,<wbr/> 0)</code> is the top-left of the
13683activeArraySize rectangle),<wbr/> to determine the final pixel
13684coordinate of the world point for processed (non-RAW)
13685output buffers.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013686 </td>
13687 </tr>
13688
13689
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013690 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013691 <!-- end of entry -->
13692
13693
13694 <tr class="entry" id="static_android.lens.radialDistortion">
13695 <td class="entry_name
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070013696 entry_name_deprecated
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013697 " rowspan="3">
13698 android.<wbr/>lens.<wbr/>radial<wbr/>Distortion
13699 </td>
13700 <td class="entry_type">
13701 <span class="entry_type_name">float</span>
13702 <span class="entry_type_container">x</span>
13703
13704 <span class="entry_type_array">
Ruben Brunk6ad70382015-06-12 10:19:40 -070013705 6
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013706 </span>
13707 <span class="entry_type_visibility"> [public]</span>
13708
13709
13710
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070013711 <span class="entry_type_deprecated">[deprecated] </span>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013712
13713
13714
13715 </td> <!-- entry_type -->
13716
13717 <td class="entry_description">
13718 <p>The correction coefficients to correct for this camera device's
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013719radial and tangential lens distortion.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013720 </td>
13721
13722 <td class="entry_units">
13723
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013724 Unitless coefficients.<wbr/>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013725
13726 </td>
13727
13728 <td class="entry_range">
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070013729 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013730 </td>
13731
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013732 <td class="entry_hal_version">
13733 <p>3.<wbr/>2</p>
13734 </td>
13735
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013736 <td class="entry_tags">
13737 <ul class="entry_tags">
13738 <li><a href="#tag_DEPTH">DEPTH</a></li>
13739 </ul>
13740 </td>
13741
13742 </tr>
13743 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013744 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013745 </tr>
13746 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013747 <td class="entry_details" colspan="6">
Ruben Brunk6ad70382015-06-12 10:19:40 -070013748 <p>Four radial distortion coefficients <code>[kappa_<wbr/>0,<wbr/> kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013749kappa_<wbr/>3]</code> and two tangential distortion coefficients
13750<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
13751lens's geometric distortion with the mapping equations:</p>
Ruben Brunk6ad70382015-06-12 10:19:40 -070013752<pre><code> x_<wbr/>c = x_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013753 kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
Ruben Brunk6ad70382015-06-12 10:19:40 -070013754 y_<wbr/>c = y_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013755 kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013756</code></pre>
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013757<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
13758input image that correspond to the pixel values in the
13759corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
13760<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
13761</code></pre>
13762<p>The pixel coordinates are defined in a normalized
13763coordinate system related to the
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070013764<a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> calibration fields.<wbr/>
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070013765Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> have <code>(0,<wbr/>0)</code> at the
13766lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>.<wbr/> The maximum magnitudes
13767of both x and y coordinates are normalized to be 1 at the
13768edge further from the optical center,<wbr/> so the range
13769for both dimensions is <code>-1 &lt;= x &lt;= 1</code>.<wbr/></p>
13770<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
13771optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>,<wbr/> and its magnitude
13772is therefore no larger than <code>|<wbr/>r|<wbr/> &lt;= sqrt(2)</code>.<wbr/></p>
13773<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080013774 </td>
13775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013776
13777
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013778 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013780
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080013781
13782 <tr class="entry" id="static_android.lens.poseReference">
13783 <td class="entry_name
13784 " rowspan="3">
13785 android.<wbr/>lens.<wbr/>pose<wbr/>Reference
13786 </td>
13787 <td class="entry_type">
13788 <span class="entry_type_name entry_type_name_enum">byte</span>
13789
13790 <span class="entry_type_visibility"> [public]</span>
13791
13792
13793
13794
13795
13796 <ul class="entry_type_enum">
13797 <li>
13798 <span class="entry_type_enum_name">PRIMARY_CAMERA (v3.3)</span>
13799 <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the optical center of
13800the largest camera device facing the same direction as this camera.<wbr/></p>
Eino-Ville Talvalabaf80472018-02-05 16:26:26 -080013801<p>This is the default value for API levels before Android P.<wbr/></p></span>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080013802 </li>
13803 <li>
13804 <span class="entry_type_enum_name">GYROSCOPE (v3.3)</span>
13805 <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the position of the
Eino-Ville Talvalabaf80472018-02-05 16:26:26 -080013806primary gyroscope of this Android device.<wbr/></p></span>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080013807 </li>
13808 </ul>
13809
13810 </td> <!-- entry_type -->
13811
13812 <td class="entry_description">
13813 <p>The origin for <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>.<wbr/></p>
13814 </td>
13815
13816 <td class="entry_units">
13817 </td>
13818
13819 <td class="entry_range">
13820 </td>
13821
13822 <td class="entry_hal_version">
13823 <p>3.<wbr/>3</p>
13824 </td>
13825
13826 <td class="entry_tags">
13827 </td>
13828
13829 </tr>
13830 <tr class="entries_header">
13831 <th class="th_details" colspan="6">Details</th>
13832 </tr>
13833 <tr class="entry_cont">
13834 <td class="entry_details" colspan="6">
13835 <p>Different calibration methods and use cases can produce better or worse results
13836depending on the selected coordinate origin.<wbr/></p>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080013837 </td>
13838 </tr>
13839
13840
13841 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
13842 <!-- end of entry -->
13843
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070013844
13845 <tr class="entry" id="static_android.lens.distortion">
13846 <td class="entry_name
13847 " rowspan="3">
13848 android.<wbr/>lens.<wbr/>distortion
13849 </td>
13850 <td class="entry_type">
13851 <span class="entry_type_name">float</span>
13852 <span class="entry_type_container">x</span>
13853
13854 <span class="entry_type_array">
13855 5
13856 </span>
13857 <span class="entry_type_visibility"> [public]</span>
13858
13859
13860
13861
13862
13863
13864 </td> <!-- entry_type -->
13865
13866 <td class="entry_description">
13867 <p>The correction coefficients to correct for this camera device's
13868radial and tangential lens distortion.<wbr/></p>
13869<p>Replaces the deprecated <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> field,<wbr/> which was
13870inconsistently defined.<wbr/></p>
13871 </td>
13872
13873 <td class="entry_units">
13874
13875 Unitless coefficients.<wbr/>
13876
13877 </td>
13878
13879 <td class="entry_range">
13880 </td>
13881
13882 <td class="entry_hal_version">
13883 <p>3.<wbr/>3</p>
13884 </td>
13885
13886 <td class="entry_tags">
13887 <ul class="entry_tags">
13888 <li><a href="#tag_DEPTH">DEPTH</a></li>
13889 </ul>
13890 </td>
13891
13892 </tr>
13893 <tr class="entries_header">
13894 <th class="th_details" colspan="6">Details</th>
13895 </tr>
13896 <tr class="entry_cont">
13897 <td class="entry_details" colspan="6">
13898 <p>Three radial distortion coefficients <code>[kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
13899kappa_<wbr/>3]</code> and two tangential distortion coefficients
13900<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
13901lens's geometric distortion with the mapping equations:</p>
13902<pre><code> x_<wbr/>c = x_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
13903 kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
13904 y_<wbr/>c = y_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
13905 kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
13906</code></pre>
13907<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
13908input image that correspond to the pixel values in the
13909corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
13910<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
13911</code></pre>
13912<p>The pixel coordinates are defined in a coordinate system
13913related to the <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
13914calibration fields; see that entry for details of the mapping stages.<wbr/>
13915Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code>
13916have <code>(0,<wbr/>0)</code> at the lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>,<wbr/> and
13917the range of the coordinates depends on the focal length
13918terms of the intrinsic calibration.<wbr/></p>
13919<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
13920optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>.<wbr/></p>
13921<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
13922 </td>
13923 </tr>
13924
13925
13926 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
13927 <!-- end of entry -->
13928
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013929
13930
13931 <!-- end of kind -->
13932 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013933 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013934
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013935 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013936 <tr>
13937 <th class="th_name">Property Name</th>
13938 <th class="th_type">Type</th>
13939 <th class="th_description">Description</th>
13940 <th class="th_units">Units</th>
13941 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013942 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013943 <th class="th_tags">Tags</th>
13944 </tr>
13945 </thead>
13946
13947 <tbody>
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958 <tr class="entry" id="dynamic_android.lens.aperture">
Igor Murashkin6c936c12014-05-13 14:51:49 -070013959 <td class="entry_name
13960 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013961 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013962 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013963 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013964 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013965
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013966 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013967
13968
Igor Murashkinca256272014-10-02 15:27:09 -070013969 <span class="entry_type_hwlevel">[full] </span>
13970
Igor Murashkin6c936c12014-05-13 14:51:49 -070013971
13972
13973
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013974 </td> <!-- entry_type -->
13975
13976 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013977 <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
13978effective aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013979 </td>
13980
13981 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070013982 The f-number (f/<wbr/>N)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013983 </td>
13984
13985 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013986 <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 -080013987 </td>
13988
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080013989 <td class="entry_hal_version">
13990 <p>3.<wbr/>2</p>
13991 </td>
13992
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013993 <td class="entry_tags">
13994 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013995 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013996 </ul>
13997 </td>
13998
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013999 </tr>
14000 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014001 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014002 </tr>
14003 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014004 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014005 <p>Setting this value is only supported on the camera devices that have a variable
14006aperture lens.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -080014007<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
14008this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080014009<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
Zhijun He1b58d382014-01-10 10:22:53 -080014010to achieve manual exposure control.<wbr/></p>
14011<p>The requested aperture value may take several frames to reach the
14012requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -080014013aperture size in capture result metadata while the aperture is changing.<wbr/>
14014While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Zhijun He1b58d382014-01-10 10:22:53 -080014015<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
14016the ON modes,<wbr/> this will be overridden by the camera device
14017auto-exposure algorithm,<wbr/> the overridden values are then provided
14018back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014019 </td>
14020 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014021
14022
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014023 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014024 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014025
14026
14027 <tr class="entry" id="dynamic_android.lens.filterDensity">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014028 <td class="entry_name
14029 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014030 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014031 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014032 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014033 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014034
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014035 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014036
14037
Igor Murashkinca256272014-10-02 15:27:09 -070014038 <span class="entry_type_hwlevel">[full] </span>
14039
Igor Murashkin6c936c12014-05-13 14:51:49 -070014040
14041
14042
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014043 </td> <!-- entry_type -->
14044
14045 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014046 <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014047 </td>
14048
14049 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014050 Exposure Value (EV)
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014051 </td>
14052
14053 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014054 <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 -080014055 </td>
14056
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014057 <td class="entry_hal_version">
14058 <p>3.<wbr/>2</p>
14059 </td>
14060
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014061 <td class="entry_tags">
14062 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014063 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014064 </ul>
14065 </td>
14066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014067 </tr>
14068 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014069 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014070 </tr>
14071 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014072 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014073 <p>This control will not be supported on most camera devices.<wbr/></p>
Ruben Brunk83eb3032014-01-15 16:12:07 -080014074<p>Lens filters are typically used to lower the amount of light the
14075sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
14076step is the standard logarithmic representation,<wbr/> which are
14077non-negative,<wbr/> and inversely proportional to the amount of light
14078hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
14079in no reduction of the incoming light,<wbr/> and setting this to 2 would
14080mean that the filter is set to reduce incoming light by two stops
14081(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -080014082<p>It may take several frames before the lens filter density changes
14083to the requested value.<wbr/> While the filter density is still changing,<wbr/>
14084<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014085 </td>
14086 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014087
14088
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014089 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014090 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014091
14092
14093 <tr class="entry" id="dynamic_android.lens.focalLength">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014094 <td class="entry_name
14095 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014096 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014097 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014098 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014099 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014100
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014101 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014102
14103
Igor Murashkinca256272014-10-02 15:27:09 -070014104 <span class="entry_type_hwlevel">[legacy] </span>
14105
Igor Murashkin6c936c12014-05-13 14:51:49 -070014106
14107
14108
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014109 </td> <!-- entry_type -->
14110
14111 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014112 <p>The desired lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014113 </td>
14114
14115 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014116 Millimeters
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014117 </td>
14118
14119 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -080014120 <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 -080014121 </td>
14122
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014123 <td class="entry_hal_version">
14124 <p>3.<wbr/>2</p>
14125 </td>
14126
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014127 <td class="entry_tags">
14128 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014129 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014130 </ul>
14131 </td>
14132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014133 </tr>
14134 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014135 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014136 </tr>
14137 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014138 <td class="entry_details" colspan="6">
Ruben Brunkac9bbb92014-01-15 18:39:35 -080014139 <p>This setting controls the physical focal length of the camera
14140device's lens.<wbr/> Changing the focal length changes the field of
14141view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
14142<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
14143setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -080014144frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -080014145While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
14146be set to MOVING.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014147<p>Optical zoom will not be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014148 </td>
14149 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014150
14151
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014152 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014153 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014154
14155
14156 <tr class="entry" id="dynamic_android.lens.focusDistance">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014157 <td class="entry_name
14158 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014159 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014160 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014161 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014162 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014163
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014164 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014165
14166
Igor Murashkinca256272014-10-02 15:27:09 -070014167 <span class="entry_type_hwlevel">[full] </span>
14168
Igor Murashkin6c936c12014-05-13 14:51:49 -070014169
14170
14171
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014172 </td> <!-- entry_type -->
14173
14174 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014175 <p>Desired distance to plane of sharpest focus,<wbr/>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070014176measured from frontmost surface of the lens.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014177 </td>
14178
14179 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014180 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014181 </td>
14182
14183 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080014184 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014185 </td>
14186
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014187 <td class="entry_hal_version">
14188 <p>3.<wbr/>2</p>
14189 </td>
14190
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014191 <td class="entry_tags">
14192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014193 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014194 </ul>
14195 </td>
14196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014197 </tr>
14198 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014199 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014200 </tr>
14201 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014202 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080014203 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014204 </td>
14205 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014206
14207
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014208 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014209 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014210
14211
14212 <tr class="entry" id="dynamic_android.lens.focusRange">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014213 <td class="entry_name
14214 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014215 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014216 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014217 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014218 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -070014219 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014220
Zhijun He50451ad2013-09-26 10:27:47 -070014221 <span class="entry_type_array">
14222 2
14223 </span>
Igor Murashkinb0f18b42014-05-30 10:51:40 -070014224 <span class="entry_type_visibility"> [public as pairFloatFloat]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070014225
14226
Igor Murashkinca256272014-10-02 15:27:09 -070014227 <span class="entry_type_hwlevel">[limited] </span>
14228
Igor Murashkin6c936c12014-05-13 14:51:49 -070014229
Igor Murashkin0b080452013-12-27 15:30:25 -080014230 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014231
14232
14233 </td> <!-- entry_type -->
14234
14235 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014236 <p>The range of scene distances that are in
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070014237sharp focus (depth of field).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014238 </td>
14239
14240 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014241 A pair of focus distances in diopters: (near,<wbr/>
14242 far); see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014243 </td>
14244
14245 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080014246 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014247 </td>
14248
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014249 <td class="entry_hal_version">
14250 <p>3.<wbr/>2</p>
14251 </td>
14252
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014253 <td class="entry_tags">
14254 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014255 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014256 </ul>
14257 </td>
14258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014259 </tr>
14260 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014261 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014262 </tr>
14263 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014264 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080014265 <p>If variable focus not supported,<wbr/> can still report
14266fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014267 </td>
14268 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014269
14270
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014271 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014272 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014273
14274
14275 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014276 <td class="entry_name
14277 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014278 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014280 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014281 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014282
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014283 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014284
Igor Murashkin6c936c12014-05-13 14:51:49 -070014285
Igor Murashkinca256272014-10-02 15:27:09 -070014286 <span class="entry_type_hwlevel">[limited] </span>
14287
Igor Murashkin6c936c12014-05-13 14:51:49 -070014288
14289
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014290 <ul class="entry_type_enum">
14291 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014292 <span class="entry_type_enum_name">OFF (v3.2)</span>
Ruben Brunk218639c2014-01-15 18:09:41 -080014293 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014294 </li>
14295 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014296 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014297 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk218639c2014-01-15 18:09:41 -080014298 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014299 </li>
14300 </ul>
14301
14302 </td> <!-- entry_type -->
14303
14304 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -080014305 <p>Sets whether the camera device uses optical image stabilization (OIS)
14306when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014307 </td>
14308
14309 <td class="entry_units">
14310 </td>
14311
14312 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -080014313 <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 -080014314 </td>
14315
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014316 <td class="entry_hal_version">
14317 <p>3.<wbr/>2</p>
14318 </td>
14319
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014320 <td class="entry_tags">
14321 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014322 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014323 </ul>
14324 </td>
14325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014326 </tr>
14327 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014328 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014329 </tr>
14330 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014331 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014332 <p>OIS is used to compensate for motion blur due to small
14333movements of the camera during capture.<wbr/> Unlike digital image
14334stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
14335makes use of mechanical elements to stabilize the camera
14336sensor,<wbr/> and thus allows for longer exposure times before
14337camera shake becomes apparent.<wbr/></p>
Zhijun He91449c82014-06-12 10:43:32 -070014338<p>Switching between different optical stabilization modes may take several
14339frames to initialize,<wbr/> the camera device will report the current mode in
14340capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
14341optical stabilization modes in the first several capture results may still
14342be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014343<p>If a camera device supports both OIS and digital image stabilization
14344(<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
14345interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014346<p>Not all devices will support OIS; see
14347<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
14348available controls.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014349 </td>
14350 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014351
14352
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014353 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014354 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014355
14356
14357 <tr class="entry" id="dynamic_android.lens.state">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014358 <td class="entry_name
14359 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014360 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014361 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014362 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014363 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014364
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014365 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014366
Igor Murashkin6c936c12014-05-13 14:51:49 -070014367
Igor Murashkinca256272014-10-02 15:27:09 -070014368 <span class="entry_type_hwlevel">[limited] </span>
14369
Igor Murashkin6c936c12014-05-13 14:51:49 -070014370
14371
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014372 <ul class="entry_type_enum">
14373 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014374 <span class="entry_type_enum_name">STATIONARY (v3.2)</span>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080014375 <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
14376<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014377 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -070014378 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014379 <span class="entry_type_enum_name">MOVING (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014380 <span class="entry_type_enum_notes"><p>One or several of the lens parameters
14381(<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
14382<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is
14383currently changing.<wbr/></p></span>
Igor Murashkin0e323a12013-09-06 11:50:48 -070014384 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014385 </ul>
14386
14387 </td> <!-- entry_type -->
14388
14389 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -080014390 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014391 </td>
14392
14393 <td class="entry_units">
14394 </td>
14395
14396 <td class="entry_range">
14397 </td>
14398
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014399 <td class="entry_hal_version">
14400 <p>3.<wbr/>2</p>
14401 </td>
14402
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014403 <td class="entry_tags">
14404 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014405 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014406 </ul>
14407 </td>
14408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014409 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -080014410 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014411 <th class="th_details" colspan="6">Details</th>
Zhijun He5169ce12014-01-24 16:48:25 -080014412 </tr>
14413 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014414 <td class="entry_details" colspan="6">
Zhijun He5169ce12014-01-24 16:48:25 -080014415 <p>For lens parameters <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
14416<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> when changes are requested,<wbr/>
14417they may take several frames to reach the requested values.<wbr/> This state indicates
14418the current status of the lens parameters.<wbr/></p>
14419<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
14420either because the parameters are all fixed,<wbr/> or because the lens has had enough
14421time to reach the most recently-requested values.<wbr/>
14422If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
14423<ul>
14424<li>Fixed focus (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> == 0</code>),<wbr/> which means
14425<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
14426<li>Fixed focal length (<a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a> contains single value),<wbr/>
14427which means the optical zoom is not supported.<wbr/></li>
14428<li>No ND filter (<a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a> contains only 0).<wbr/></li>
14429<li>Fixed aperture (<a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a> contains single value).<wbr/></li>
14430</ul>
14431<p>Then this state will always be STATIONARY.<wbr/></p>
14432<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
14433is changing.<wbr/></p>
14434 </td>
14435 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014436
14437
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014438 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014439 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014440
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014441
14442 <tr class="entry" id="dynamic_android.lens.poseRotation">
14443 <td class="entry_name
14444 " rowspan="3">
14445 android.<wbr/>lens.<wbr/>pose<wbr/>Rotation
14446 </td>
14447 <td class="entry_type">
14448 <span class="entry_type_name">float</span>
14449 <span class="entry_type_container">x</span>
14450
14451 <span class="entry_type_array">
14452 4
14453 </span>
14454 <span class="entry_type_visibility"> [public]</span>
14455
14456
14457
14458
14459
14460
14461 </td> <!-- entry_type -->
14462
14463 <td class="entry_description">
14464 <p>The orientation of the camera relative to the sensor
14465coordinate system.<wbr/></p>
14466 </td>
14467
14468 <td class="entry_units">
14469
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070014470 Quaternion coefficients
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014471
14472 </td>
14473
14474 <td class="entry_range">
14475 </td>
14476
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014477 <td class="entry_hal_version">
14478 <p>3.<wbr/>2</p>
14479 </td>
14480
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014481 <td class="entry_tags">
14482 <ul class="entry_tags">
14483 <li><a href="#tag_DEPTH">DEPTH</a></li>
14484 </ul>
14485 </td>
14486
14487 </tr>
14488 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014489 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014490 </tr>
14491 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014492 <td class="entry_details" colspan="6">
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070014493 <p>The four coefficients that describe the quaternion
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014494rotation from the Android sensor coordinate system to a
14495camera-aligned coordinate system where the X-axis is
14496aligned with the long side of the image sensor,<wbr/> the Y-axis
14497is aligned with the short side of the image sensor,<wbr/> and
14498the Z-axis is aligned with the optical axis of the sensor.<wbr/></p>
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070014499<p>To convert from the quaternion coefficients <code>(x,<wbr/>y,<wbr/>z,<wbr/>w)</code>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014500to the axis of rotation <code>(a_<wbr/>x,<wbr/> a_<wbr/>y,<wbr/> a_<wbr/>z)</code> and rotation
14501amount <code>theta</code>,<wbr/> the following formulas can be used:</p>
14502<pre><code> theta = 2 * acos(w)
14503a_<wbr/>x = x /<wbr/> sin(theta/<wbr/>2)
14504a_<wbr/>y = y /<wbr/> sin(theta/<wbr/>2)
14505a_<wbr/>z = z /<wbr/> sin(theta/<wbr/>2)
14506</code></pre>
14507<p>To create a 3x3 rotation matrix that applies the rotation
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070014508defined by this quaternion,<wbr/> the following matrix can be
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014509used:</p>
14510<pre><code>R = [ 1 - 2y^2 - 2z^2,<wbr/> 2xy - 2zw,<wbr/> 2xz + 2yw,<wbr/>
14511 2xy + 2zw,<wbr/> 1 - 2x^2 - 2z^2,<wbr/> 2yz - 2xw,<wbr/>
14512 2xz - 2yw,<wbr/> 2yz + 2xw,<wbr/> 1 - 2x^2 - 2y^2 ]
14513</code></pre>
14514<p>This matrix can then be used to apply the rotation to a
14515 column vector point with</p>
14516<p><code>p' = Rp</code></p>
14517<p>where <code>p</code> is in the device sensor coordinate system,<wbr/> and
14518 <code>p'</code> is in the camera-oriented coordinate system.<wbr/></p>
14519 </td>
14520 </tr>
14521
14522
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014523 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014524 <!-- end of entry -->
14525
14526
14527 <tr class="entry" id="dynamic_android.lens.poseTranslation">
14528 <td class="entry_name
14529 " rowspan="3">
14530 android.<wbr/>lens.<wbr/>pose<wbr/>Translation
14531 </td>
14532 <td class="entry_type">
14533 <span class="entry_type_name">float</span>
14534 <span class="entry_type_container">x</span>
14535
14536 <span class="entry_type_array">
14537 3
14538 </span>
14539 <span class="entry_type_visibility"> [public]</span>
14540
14541
14542
14543
14544
14545
14546 </td> <!-- entry_type -->
14547
14548 <td class="entry_description">
14549 <p>Position of the camera optical center.<wbr/></p>
14550 </td>
14551
14552 <td class="entry_units">
14553 Meters
14554 </td>
14555
14556 <td class="entry_range">
14557 </td>
14558
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014559 <td class="entry_hal_version">
14560 <p>3.<wbr/>2</p>
14561 </td>
14562
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014563 <td class="entry_tags">
14564 <ul class="entry_tags">
14565 <li><a href="#tag_DEPTH">DEPTH</a></li>
14566 </ul>
14567 </td>
14568
14569 </tr>
14570 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014571 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014572 </tr>
14573 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014574 <td class="entry_details" colspan="6">
Eino-Ville Talvala3014c132015-05-29 17:15:37 -070014575 <p>The position of the camera device's lens optical center,<wbr/>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080014576as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
14577<p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
14578is relative to the optical center of the largest camera device facing in the same
14579direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
14580coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
14581coordinate system,<wbr/> but not the origin.<wbr/></p>
14582<p>If this device is the largest or only camera device with a given facing,<wbr/> then this
14583position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
14584from the main sensor along the +X axis (to the right from the user's perspective) will
14585report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
14586<p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070014587the source camera <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> must be corrected for.<wbr/> Then the source
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080014588camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
14589<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
14590relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
14591camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
14592camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
14593coordinates.<wbr/></p>
14594<p>To compare this against a real image from the destination camera,<wbr/> the destination camera
14595image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
14596<p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
14597the center of the primary gyroscope on the device.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014598 </td>
14599 </tr>
14600
14601
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014602 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014603 <!-- end of entry -->
14604
14605
14606 <tr class="entry" id="dynamic_android.lens.intrinsicCalibration">
14607 <td class="entry_name
14608 " rowspan="3">
14609 android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration
14610 </td>
14611 <td class="entry_type">
14612 <span class="entry_type_name">float</span>
14613 <span class="entry_type_container">x</span>
14614
14615 <span class="entry_type_array">
14616 5
14617 </span>
14618 <span class="entry_type_visibility"> [public]</span>
14619
14620
14621
14622
14623
14624
14625 </td> <!-- entry_type -->
14626
14627 <td class="entry_description">
14628 <p>The parameters for this camera device's intrinsic
14629calibration.<wbr/></p>
14630 </td>
14631
14632 <td class="entry_units">
14633
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070014634 Pixels in the
14635 android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
14636 coordinate system.<wbr/>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014637
14638 </td>
14639
14640 <td class="entry_range">
14641 </td>
14642
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014643 <td class="entry_hal_version">
14644 <p>3.<wbr/>2</p>
14645 </td>
14646
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014647 <td class="entry_tags">
14648 <ul class="entry_tags">
14649 <li><a href="#tag_DEPTH">DEPTH</a></li>
14650 </ul>
14651 </td>
14652
14653 </tr>
14654 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014655 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014656 </tr>
14657 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014658 <td class="entry_details" colspan="6">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014659 <p>The five calibration parameters that describe the
14660transform from camera-centric 3D coordinates to sensor
14661pixel coordinates:</p>
14662<pre><code>[f_<wbr/>x,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>x,<wbr/> c_<wbr/>y,<wbr/> s]
14663</code></pre>
14664<p>Where <code>f_<wbr/>x</code> and <code>f_<wbr/>y</code> are the horizontal and vertical
14665focal lengths,<wbr/> <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code> is the position of the optical
14666axis,<wbr/> and <code>s</code> is a skew parameter for the sensor plane not
14667being aligned with the lens plane.<wbr/></p>
14668<p>These are typically used within a transformation matrix K:</p>
14669<pre><code>K = [ f_<wbr/>x,<wbr/> s,<wbr/> c_<wbr/>x,<wbr/>
14670 0,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>y,<wbr/>
14671 0 0,<wbr/> 1 ]
14672</code></pre>
14673<p>which can then be combined with the camera pose rotation
14674<code>R</code> and translation <code>t</code> (<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> and
14675<a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>,<wbr/> respective) to calculate the
14676complete transform from world coordinates to pixel
14677coordinates:</p>
14678<pre><code>P = [ K 0 * [ R t
14679 0 1 ] 0 1 ]
14680</code></pre>
14681<p>and with <code>p_<wbr/>w</code> being a point in the world coordinate system
14682and <code>p_<wbr/>s</code> being a point in the camera active pixel array
14683coordinate system,<wbr/> and with the mapping including the
14684homogeneous division by z:</p>
14685<pre><code> p_<wbr/>h = (x_<wbr/>h,<wbr/> y_<wbr/>h,<wbr/> z_<wbr/>h) = P p_<wbr/>w
14686p_<wbr/>s = p_<wbr/>h /<wbr/> z_<wbr/>h
14687</code></pre>
14688<p>so <code>[x_<wbr/>s,<wbr/> y_<wbr/>s]</code> is the pixel coordinates of the world
14689point,<wbr/> <code>z_<wbr/>s = 1</code>,<wbr/> and <code>w_<wbr/>s</code> is a measurement of disparity
14690(depth) in pixel coordinates.<wbr/></p>
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070014691<p>Note that the coordinate system for this transform is the
14692<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> system,<wbr/>
14693where <code>(0,<wbr/>0)</code> is the top-left of the
14694preCorrectionActiveArraySize rectangle.<wbr/> Once the pose and
14695intrinsic calibration transforms have been applied to a
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070014696world point,<wbr/> then the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070014697transform needs to be applied,<wbr/> and the result adjusted to
14698be in the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> coordinate
14699system (where <code>(0,<wbr/> 0)</code> is the top-left of the
14700activeArraySize rectangle),<wbr/> to determine the final pixel
14701coordinate of the world point for processed (non-RAW)
14702output buffers.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014703 </td>
14704 </tr>
14705
14706
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014707 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014708 <!-- end of entry -->
14709
14710
14711 <tr class="entry" id="dynamic_android.lens.radialDistortion">
14712 <td class="entry_name
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070014713 entry_name_deprecated
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014714 " rowspan="3">
14715 android.<wbr/>lens.<wbr/>radial<wbr/>Distortion
14716 </td>
14717 <td class="entry_type">
14718 <span class="entry_type_name">float</span>
14719 <span class="entry_type_container">x</span>
14720
14721 <span class="entry_type_array">
Ruben Brunk6ad70382015-06-12 10:19:40 -070014722 6
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014723 </span>
14724 <span class="entry_type_visibility"> [public]</span>
14725
14726
14727
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070014728 <span class="entry_type_deprecated">[deprecated] </span>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014729
14730
14731
14732 </td> <!-- entry_type -->
14733
14734 <td class="entry_description">
14735 <p>The correction coefficients to correct for this camera device's
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014736radial and tangential lens distortion.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014737 </td>
14738
14739 <td class="entry_units">
14740
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014741 Unitless coefficients.<wbr/>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014742
14743 </td>
14744
14745 <td class="entry_range">
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070014746 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014747 </td>
14748
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014749 <td class="entry_hal_version">
14750 <p>3.<wbr/>2</p>
14751 </td>
14752
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014753 <td class="entry_tags">
14754 <ul class="entry_tags">
14755 <li><a href="#tag_DEPTH">DEPTH</a></li>
14756 </ul>
14757 </td>
14758
14759 </tr>
14760 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014761 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014762 </tr>
14763 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014764 <td class="entry_details" colspan="6">
Ruben Brunk6ad70382015-06-12 10:19:40 -070014765 <p>Four radial distortion coefficients <code>[kappa_<wbr/>0,<wbr/> kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014766kappa_<wbr/>3]</code> and two tangential distortion coefficients
14767<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
14768lens's geometric distortion with the mapping equations:</p>
Ruben Brunk6ad70382015-06-12 10:19:40 -070014769<pre><code> x_<wbr/>c = x_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014770 kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
Ruben Brunk6ad70382015-06-12 10:19:40 -070014771 y_<wbr/>c = y_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014772 kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014773</code></pre>
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014774<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
14775input image that correspond to the pixel values in the
14776corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
14777<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
14778</code></pre>
14779<p>The pixel coordinates are defined in a normalized
14780coordinate system related to the
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070014781<a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> calibration fields.<wbr/>
Eino-Ville Talvalab5dd68b2015-05-29 16:03:31 -070014782Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> have <code>(0,<wbr/>0)</code> at the
14783lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>.<wbr/> The maximum magnitudes
14784of both x and y coordinates are normalized to be 1 at the
14785edge further from the optical center,<wbr/> so the range
14786for both dimensions is <code>-1 &lt;= x &lt;= 1</code>.<wbr/></p>
14787<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
14788optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>,<wbr/> and its magnitude
14789is therefore no larger than <code>|<wbr/>r|<wbr/> &lt;= sqrt(2)</code>.<wbr/></p>
14790<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014791 </td>
14792 </tr>
14793
14794
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014795 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080014796 <!-- end of entry -->
14797
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070014798
14799 <tr class="entry" id="dynamic_android.lens.distortion">
14800 <td class="entry_name
14801 " rowspan="3">
14802 android.<wbr/>lens.<wbr/>distortion
14803 </td>
14804 <td class="entry_type">
14805 <span class="entry_type_name">float</span>
14806 <span class="entry_type_container">x</span>
14807
14808 <span class="entry_type_array">
14809 5
14810 </span>
14811 <span class="entry_type_visibility"> [public]</span>
14812
14813
14814
14815
14816
14817
14818 </td> <!-- entry_type -->
14819
14820 <td class="entry_description">
14821 <p>The correction coefficients to correct for this camera device's
14822radial and tangential lens distortion.<wbr/></p>
14823<p>Replaces the deprecated <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> field,<wbr/> which was
14824inconsistently defined.<wbr/></p>
14825 </td>
14826
14827 <td class="entry_units">
14828
14829 Unitless coefficients.<wbr/>
14830
14831 </td>
14832
14833 <td class="entry_range">
14834 </td>
14835
14836 <td class="entry_hal_version">
14837 <p>3.<wbr/>3</p>
14838 </td>
14839
14840 <td class="entry_tags">
14841 <ul class="entry_tags">
14842 <li><a href="#tag_DEPTH">DEPTH</a></li>
14843 </ul>
14844 </td>
14845
14846 </tr>
14847 <tr class="entries_header">
14848 <th class="th_details" colspan="6">Details</th>
14849 </tr>
14850 <tr class="entry_cont">
14851 <td class="entry_details" colspan="6">
14852 <p>Three radial distortion coefficients <code>[kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
14853kappa_<wbr/>3]</code> and two tangential distortion coefficients
14854<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
14855lens's geometric distortion with the mapping equations:</p>
14856<pre><code> x_<wbr/>c = x_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
14857 kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
14858 y_<wbr/>c = y_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
14859 kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
14860</code></pre>
14861<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
14862input image that correspond to the pixel values in the
14863corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
14864<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
14865</code></pre>
14866<p>The pixel coordinates are defined in a coordinate system
14867related to the <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
14868calibration fields; see that entry for details of the mapping stages.<wbr/>
14869Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code>
14870have <code>(0,<wbr/>0)</code> at the lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>,<wbr/> and
14871the range of the coordinates depends on the focal length
14872terms of the intrinsic calibration.<wbr/></p>
14873<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
14874optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>.<wbr/></p>
14875<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
14876 </td>
14877 </tr>
14878
14879
14880 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
14881 <!-- end of entry -->
14882
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014883
14884
14885 <!-- end of kind -->
14886 </tbody>
14887
14888 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014889 <tr><td colspan="7" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014890
14891
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014892 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014893
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014894 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014895 <tr>
14896 <th class="th_name">Property Name</th>
14897 <th class="th_type">Type</th>
14898 <th class="th_description">Description</th>
14899 <th class="th_units">Units</th>
14900 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014901 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014902 <th class="th_tags">Tags</th>
14903 </tr>
14904 </thead>
14905
14906 <tbody>
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917 <tr class="entry" id="controls_android.noiseReduction.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070014918 <td class="entry_name
Zhijun He41d6f042015-01-15 18:17:24 -080014919 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014920 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014921 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014922 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014923 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014924
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014925 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014926
Igor Murashkin6c936c12014-05-13 14:51:49 -070014927
Igor Murashkinca256272014-10-02 15:27:09 -070014928 <span class="entry_type_hwlevel">[full] </span>
14929
Igor Murashkin6c936c12014-05-13 14:51:49 -070014930
14931
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014932 <ul class="entry_type_enum">
14933 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014934 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014935 <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014936 </li>
14937 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014938 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014939 <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -070014940output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
14941relative to sensor.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014942 </li>
14943 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014944 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070014945 <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
14946rate relative to sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014947 </li>
Zhijun He41d6f042015-01-15 18:17:24 -080014948 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014949 <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
Zhijun He41d6f042015-01-15 18:17:24 -080014950 <span class="entry_type_enum_optional">[optional]</span>
14951 <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
14952sensor output.<wbr/> </p></span>
14953 </li>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070014954 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080014955 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070014956 <span class="entry_type_enum_optional">[optional]</span>
14957 <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014958based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
14959or below have noise reduction applied,<wbr/> while higher-resolution streams have MINIMAL (if
14960supported) or no noise reduction applied (if MINIMAL is not supported.<wbr/>) The degree of
14961noise reduction for low-resolution streams is tuned so that frame rate is not impacted,<wbr/>
14962and the quality is equal to or better than FAST (since it is only applied to
14963lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070014964<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
14965with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
14966high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
14967produced via reprocessing when a user takes a picture.<wbr/> For such a use case,<wbr/> the
14968high-resolution buffers must not have noise reduction applied to maximize efficiency of
14969preview and to avoid over-applying noise filtering when reprocessing,<wbr/> while
14970low-resolution buffers (used for recording or preview,<wbr/> generally) need noise reduction
14971applied for reasonable preview quality.<wbr/></p>
14972<p>This mode is guaranteed to be supported by devices that support either the
14973YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
Chien-Yu Chend91ea142015-07-08 11:49:38 -070014974(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
14975be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070014976 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014977 </ul>
14978
14979 </td> <!-- entry_type -->
14980
14981 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070014982 <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014983 </td>
14984
14985 <td class="entry_units">
14986 </td>
14987
14988 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070014989 <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014990 </td>
14991
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080014992 <td class="entry_hal_version">
14993 <p>3.<wbr/>2</p>
14994 </td>
14995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014996 <td class="entry_tags">
14997 <ul class="entry_tags">
14998 <li><a href="#tag_V1">V1</a></li>
Zhijun He51379152015-04-24 17:59:50 -070014999 <li><a href="#tag_REPROC">REPROC</a></li>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015000 </ul>
15001 </td>
15002
15003 </tr>
15004 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015005 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015006 </tr>
15007 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015008 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070015009 <p>The noise reduction algorithm attempts to improve image quality by removing
Zhijun He41d6f042015-01-15 18:17:24 -080015010excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/></p>
15011<p>OFF means no noise reduction will be applied by the camera device,<wbr/> for both raw and
15012YUV domain.<wbr/></p>
15013<p>MINIMAL means that only sensor raw domain basic noise reduction is enabled ,<wbr/>to remove
15014demosaicing or other processing artifacts.<wbr/> For YUV_<wbr/>REPROCESSING,<wbr/> MINIMAL is same as OFF.<wbr/>
15015This mode is optional,<wbr/> may not be support by all devices.<wbr/> The application should check
15016<a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> before using it.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -080015017<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
15018will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
15019will use the highest-quality noise filtering algorithms,<wbr/>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070015020even if it slows down capture rate.<wbr/> FAST means the camera device will not
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -070015021slow down capture rate when applying noise filtering.<wbr/> FAST may be the same as MINIMAL if
15022MINIMAL is listed,<wbr/> or the same as OFF if any noise filtering will slow down capture rate.<wbr/>
15023Every output stream will have a similar amount of enhancement applied.<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070015024<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
15025buffer of high-resolution images during preview and reprocess image(s) from that buffer
15026into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
15027noise reduction to low-resolution streams (below maximum recording resolution) to maximize
15028preview quality,<wbr/> but does not apply noise reduction to high-resolution streams,<wbr/> since
15029those will be reprocessed later if necessary.<wbr/></p>
Zhijun He41d6f042015-01-15 18:17:24 -080015030<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera device
15031will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV domain noise reduction,<wbr/> respectively.<wbr/> The camera device
15032may adjust the noise reduction parameters for best image quality based on the
15033<a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> if it is set.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015034 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015035 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015036
Zhijun He41d6f042015-01-15 18:17:24 -080015037 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015038 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -080015039 </tr>
15040 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015041 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -080015042 <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
15043adjust the internal noise reduction parameters appropriately to get the best quality
15044images.<wbr/></p>
15045 </td>
15046 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015047
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015048 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015049 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015050
15051
15052 <tr class="entry" id="controls_android.noiseReduction.strength">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015053 <td class="entry_name
15054 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015055 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015058 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015060 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015061
15062
Igor Murashkin6c936c12014-05-13 14:51:49 -070015063
15064
15065
Igor Murashkinca256272014-10-02 15:27:09 -070015066
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015067 </td> <!-- entry_type -->
15068
15069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015070 <p>Control the amount of noise reduction
15071applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015072 </td>
15073
15074 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080015075 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015076 </td>
15077
15078 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015079 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015080 </td>
15081
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015082 <td class="entry_hal_version">
15083 <p>3.<wbr/>2</p>
15084 </td>
15085
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015086 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070015087 <ul class="entry_tags">
15088 <li><a href="#tag_FUTURE">FUTURE</a></li>
15089 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015090 </td>
15091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015092 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015093
15094
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015095 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015096 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015097
15098
15099
15100 <!-- end of kind -->
15101 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015102 <tr><td colspan="7" class="kind">static</td></tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015103
15104 <thead class="entries_header">
15105 <tr>
15106 <th class="th_name">Property Name</th>
15107 <th class="th_type">Type</th>
15108 <th class="th_description">Description</th>
15109 <th class="th_units">Units</th>
15110 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015111 <th class="th_hal_version">Initial HIDL HAL version</th>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015112 <th class="th_tags">Tags</th>
15113 </tr>
15114 </thead>
15115
15116 <tbody>
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127 <tr class="entry" id="static_android.noiseReduction.availableNoiseReductionModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015128 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070015129 " rowspan="5">
Ruben Brunkd14f7162014-03-04 15:01:25 -080015130 android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes
15131 </td>
15132 <td class="entry_type">
15133 <span class="entry_type_name">byte</span>
15134 <span class="entry_type_container">x</span>
15135
15136 <span class="entry_type_array">
15137 n
15138 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070015139 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070015140
15141
Igor Murashkinca256272014-10-02 15:27:09 -070015142 <span class="entry_type_hwlevel">[limited] </span>
15143
Igor Murashkin6c936c12014-05-13 14:51:49 -070015144
Ruben Brunkd14f7162014-03-04 15:01:25 -080015145 <div class="entry_type_notes">list of enums</div>
15146
15147
15148 </td> <!-- entry_type -->
15149
15150 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070015151 <p>List of noise reduction modes for <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> that are supported
15152by this camera device.<wbr/></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015153 </td>
15154
15155 <td class="entry_units">
15156 </td>
15157
15158 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070015159 <p>Any value listed in <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015160 </td>
15161
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015162 <td class="entry_hal_version">
15163 <p>3.<wbr/>2</p>
15164 </td>
15165
Ruben Brunkd14f7162014-03-04 15:01:25 -080015166 <td class="entry_tags">
15167 <ul class="entry_tags">
15168 <li><a href="#tag_V1">V1</a></li>
Zhijun He51379152015-04-24 17:59:50 -070015169 <li><a href="#tag_REPROC">REPROC</a></li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015170 </ul>
15171 </td>
15172
15173 </tr>
15174 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015175 <th class="th_details" colspan="6">Details</th>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015176 </tr>
15177 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015178 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070015179 <p>Full-capability camera devices will always support OFF and FAST.<wbr/></p>
Chien-Yu Chend91ea142015-07-08 11:49:38 -070015180<p>Camera devices that support YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING will support
15181ZERO_<wbr/>SHUTTER_<wbr/>LAG.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -070015182<p>Legacy-capability camera devices will only support FAST mode.<wbr/></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015183 </td>
15184 </tr>
15185
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070015186 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015187 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070015188 </tr>
15189 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015190 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070015191 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if noise reduction control is available
15192on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
15193That is,<wbr/> if the highest quality implementation on the camera device does not slow down
15194capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
15195 </td>
15196 </tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015197
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015198 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -080015199 <!-- end of entry -->
15200
15201
15202
15203 <!-- end of kind -->
15204 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015205 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015206
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015207 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015208 <tr>
15209 <th class="th_name">Property Name</th>
15210 <th class="th_type">Type</th>
15211 <th class="th_description">Description</th>
15212 <th class="th_units">Units</th>
15213 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015214 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015215 <th class="th_tags">Tags</th>
15216 </tr>
15217 </thead>
15218
15219 <tbody>
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015231 <td class="entry_name
Zhijun He41d6f042015-01-15 18:17:24 -080015232 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015233 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015234 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015235 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015236 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015237
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015238 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015239
Igor Murashkin6c936c12014-05-13 14:51:49 -070015240
Igor Murashkinca256272014-10-02 15:27:09 -070015241 <span class="entry_type_hwlevel">[full] </span>
15242
Igor Murashkin6c936c12014-05-13 14:51:49 -070015243
15244
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015245 <ul class="entry_type_enum">
15246 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015247 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070015248 <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015249 </li>
15250 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015251 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070015252 <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -070015253output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
15254relative to sensor.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015255 </li>
15256 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015257 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070015258 <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
15259rate relative to sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015260 </li>
Zhijun He41d6f042015-01-15 18:17:24 -080015261 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015262 <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
Zhijun He41d6f042015-01-15 18:17:24 -080015263 <span class="entry_type_enum_optional">[optional]</span>
15264 <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
15265sensor output.<wbr/> </p></span>
15266 </li>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070015267 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015268 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070015269 <span class="entry_type_enum_optional">[optional]</span>
15270 <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015271based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
15272or below have noise reduction applied,<wbr/> while higher-resolution streams have MINIMAL (if
15273supported) or no noise reduction applied (if MINIMAL is not supported.<wbr/>) The degree of
15274noise reduction for low-resolution streams is tuned so that frame rate is not impacted,<wbr/>
15275and the quality is equal to or better than FAST (since it is only applied to
15276lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070015277<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
15278with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
15279high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
15280produced via reprocessing when a user takes a picture.<wbr/> For such a use case,<wbr/> the
15281high-resolution buffers must not have noise reduction applied to maximize efficiency of
15282preview and to avoid over-applying noise filtering when reprocessing,<wbr/> while
15283low-resolution buffers (used for recording or preview,<wbr/> generally) need noise reduction
15284applied for reasonable preview quality.<wbr/></p>
15285<p>This mode is guaranteed to be supported by devices that support either the
15286YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
Chien-Yu Chend91ea142015-07-08 11:49:38 -070015287(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
15288be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070015289 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015290 </ul>
15291
15292 </td> <!-- entry_type -->
15293
15294 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070015295 <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015296 </td>
15297
15298 <td class="entry_units">
15299 </td>
15300
15301 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070015302 <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015303 </td>
15304
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015305 <td class="entry_hal_version">
15306 <p>3.<wbr/>2</p>
15307 </td>
15308
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015309 <td class="entry_tags">
15310 <ul class="entry_tags">
15311 <li><a href="#tag_V1">V1</a></li>
Zhijun He51379152015-04-24 17:59:50 -070015312 <li><a href="#tag_REPROC">REPROC</a></li>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015313 </ul>
15314 </td>
15315
15316 </tr>
15317 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015318 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015319 </tr>
15320 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015321 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070015322 <p>The noise reduction algorithm attempts to improve image quality by removing
Zhijun He41d6f042015-01-15 18:17:24 -080015323excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/></p>
15324<p>OFF means no noise reduction will be applied by the camera device,<wbr/> for both raw and
15325YUV domain.<wbr/></p>
15326<p>MINIMAL means that only sensor raw domain basic noise reduction is enabled ,<wbr/>to remove
15327demosaicing or other processing artifacts.<wbr/> For YUV_<wbr/>REPROCESSING,<wbr/> MINIMAL is same as OFF.<wbr/>
15328This mode is optional,<wbr/> may not be support by all devices.<wbr/> The application should check
15329<a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> before using it.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -080015330<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
15331will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
15332will use the highest-quality noise filtering algorithms,<wbr/>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070015333even if it slows down capture rate.<wbr/> FAST means the camera device will not
Chien-Yu Chen9365b4e2015-07-14 16:33:58 -070015334slow down capture rate when applying noise filtering.<wbr/> FAST may be the same as MINIMAL if
15335MINIMAL is listed,<wbr/> or the same as OFF if any noise filtering will slow down capture rate.<wbr/>
15336Every output stream will have a similar amount of enhancement applied.<wbr/></p>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070015337<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
15338buffer of high-resolution images during preview and reprocess image(s) from that buffer
15339into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
15340noise reduction to low-resolution streams (below maximum recording resolution) to maximize
15341preview quality,<wbr/> but does not apply noise reduction to high-resolution streams,<wbr/> since
15342those will be reprocessed later if necessary.<wbr/></p>
Zhijun He41d6f042015-01-15 18:17:24 -080015343<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera device
15344will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV domain noise reduction,<wbr/> respectively.<wbr/> The camera device
15345may adjust the noise reduction parameters for best image quality based on the
15346<a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> if it is set.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015347 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015348 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015349
Zhijun He41d6f042015-01-15 18:17:24 -080015350 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015351 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -080015352 </tr>
15353 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015354 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -080015355 <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
15356adjust the internal noise reduction parameters appropriately to get the best quality
15357images.<wbr/></p>
15358 </td>
15359 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015360
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015361 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015363
15364
15365
15366 <!-- end of kind -->
15367 </tbody>
15368
15369 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015370 <tr><td colspan="7" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015371
15372
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015373 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015374
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015375 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015376 <tr>
15377 <th class="th_name">Property Name</th>
15378 <th class="th_type">Type</th>
15379 <th class="th_description">Description</th>
15380 <th class="th_units">Units</th>
15381 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015382 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015383 <th class="th_tags">Tags</th>
15384 </tr>
15385 </thead>
15386
15387 <tbody>
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015399 <td class="entry_name
15400 entry_name_deprecated
15401 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080015402 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015403 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015405 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015406
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015407 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015408
15409
Igor Murashkinca256272014-10-02 15:27:09 -070015410
Igor Murashkin6c936c12014-05-13 14:51:49 -070015411 <span class="entry_type_deprecated">[deprecated] </span>
15412
15413
15414
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015415 </td> <!-- entry_type -->
15416
15417 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015418 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015419scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -080015420region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
15421and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015422 </td>
15423
15424 <td class="entry_units">
15425 </td>
15426
15427 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015428 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015429 </td>
15430
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015431 <td class="entry_hal_version">
15432 <p>3.<wbr/>2</p>
15433 </td>
15434
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015435 <td class="entry_tags">
15436 </td>
15437
15438 </tr>
15439 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015440 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015441 </tr>
15442 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015443 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080015444 <p>Normalized coordinates refer to those in the
15445(-1000,<wbr/>1000) range mentioned in the
15446android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015447<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -080015448sensor array-relative coordinates for all region data.<wbr/> Does
15449not need to be listed in static metadata.<wbr/> Support will be
15450removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015451 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015452 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015453
15454
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015455 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015456 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015457
15458
15459 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015460 <td class="entry_name
15461 entry_name_deprecated
15462 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080015463 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015466 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015467
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015468 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015469
15470
Igor Murashkinca256272014-10-02 15:27:09 -070015471
Igor Murashkin6c936c12014-05-13 14:51:49 -070015472 <span class="entry_type_deprecated">[deprecated] </span>
15473
15474
15475
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015476 </td> <!-- entry_type -->
15477
15478 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015479 <p>If set to 1,<wbr/> then the camera service always
15480switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
15481trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015482 </td>
15483
15484 <td class="entry_units">
15485 </td>
15486
15487 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015488 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015489 </td>
15490
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015491 <td class="entry_hal_version">
15492 <p>3.<wbr/>2</p>
15493 </td>
15494
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015495 <td class="entry_tags">
15496 </td>
15497
15498 </tr>
15499 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015500 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015501 </tr>
15502 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015503 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080015504 <p>HAL implementations should implement AF trigger
15505modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
15506CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
15507not need to be listed in static metadata.<wbr/> Support will be
15508removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015509 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015510 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015511
15512
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015513 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015514 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015515
15516
15517 <tr class="entry" id="static_android.quirks.useZslFormat">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015518 <td class="entry_name
15519 entry_name_deprecated
15520 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080015521 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015522 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015523 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015524 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015525
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015526 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015527
15528
Igor Murashkinca256272014-10-02 15:27:09 -070015529
Igor Murashkin6c936c12014-05-13 14:51:49 -070015530 <span class="entry_type_deprecated">[deprecated] </span>
15531
15532
15533
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015534 </td> <!-- entry_type -->
15535
15536 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015537 <p>If set to 1,<wbr/> the camera service uses
15538CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
15539HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
15540shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015541 </td>
15542
15543 <td class="entry_units">
15544 </td>
15545
15546 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015547 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015548 </td>
15549
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015550 <td class="entry_hal_version">
15551 <p>3.<wbr/>2</p>
15552 </td>
15553
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015554 <td class="entry_tags">
15555 </td>
15556
15557 </tr>
15558 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015559 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015560 </tr>
15561 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015562 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080015563 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015564to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -080015565zero-shutter-lag,<wbr/> instead of relying on an explicit
15566format setting.<wbr/> Does not need to be listed in static
15567metadata.<wbr/> Support will be removed in future versions of
15568camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015569 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015570 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015571
15572
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015573 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015574 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015575
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015576
15577 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015578 <td class="entry_name
15579 entry_name_deprecated
15580 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015581 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015582 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015583 <td class="entry_type">
15584 <span class="entry_type_name">byte</span>
15585
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -080015586 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015587
15588
Igor Murashkinca256272014-10-02 15:27:09 -070015589
Igor Murashkin6c936c12014-05-13 14:51:49 -070015590 <span class="entry_type_deprecated">[deprecated] </span>
15591
15592
15593
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015594 </td> <!-- entry_type -->
15595
15596 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015597 <p>If set to 1,<wbr/> the HAL will always split result
15598metadata for a single capture into multiple buffers,<wbr/>
15599returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015600 </td>
15601
15602 <td class="entry_units">
15603 </td>
15604
15605 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015606 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015607 </td>
15608
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015609 <td class="entry_hal_version">
15610 <p>3.<wbr/>2</p>
15611 </td>
15612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015613 <td class="entry_tags">
15614 </td>
15615
15616 </tr>
15617 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015618 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015619 </tr>
15620 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015621 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080015622 <p>Does not need to be listed in static
15623metadata.<wbr/> Support for partial results will be reworked in
15624future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015625working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -080015626consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015627 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015628 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015629
Igor Murashkin7761a222014-01-27 16:06:38 -080015630 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015631 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin7761a222014-01-27 16:06:38 -080015632 </tr>
15633 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015634 <td class="entry_details" colspan="6">
Igor Murashkin7761a222014-01-27 16:06:38 -080015635 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
15636for information on how to implement partial results.<wbr/></p>
15637 </td>
15638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015639
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015640 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015641 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015642
15643
15644
15645 <!-- end of kind -->
15646 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015647 <tr><td colspan="7" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015648
15649 <thead class="entries_header">
15650 <tr>
15651 <th class="th_name">Property Name</th>
15652 <th class="th_type">Type</th>
15653 <th class="th_description">Description</th>
15654 <th class="th_units">Units</th>
15655 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015656 <th class="th_hal_version">Initial HIDL HAL version</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015657 <th class="th_tags">Tags</th>
15658 </tr>
15659 </thead>
15660
15661 <tbody>
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015673 <td class="entry_name
15674 entry_name_deprecated
15675 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015676 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015677 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015678 <td class="entry_type">
15679 <span class="entry_type_name entry_type_name_enum">byte</span>
15680
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -080015681 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015682
Igor Murashkin6c936c12014-05-13 14:51:49 -070015683
Igor Murashkinca256272014-10-02 15:27:09 -070015684
Igor Murashkin6c936c12014-05-13 14:51:49 -070015685 <span class="entry_type_deprecated">[deprecated] </span>
15686
15687
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015688 <ul class="entry_type_enum">
15689 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015690 <span class="entry_type_enum_name">FINAL (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080015691 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
15692for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015693 </li>
15694 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015695 <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080015696 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
15697capture.<wbr/> More result buffers for this capture will be sent
Zhijun He25b8ac52014-02-24 09:49:37 -080015698by the camera device,<wbr/> the last of which will be marked
Igor Murashkina10351a2014-01-15 17:05:22 -080015699FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015700 </li>
15701 </ul>
15702
15703 </td> <!-- entry_type -->
15704
15705 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015706 <p>Whether a result given to the framework is the
15707final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015708subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -080015709values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015710 </td>
15711
15712 <td class="entry_units">
15713 </td>
15714
15715 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015716 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
15717 <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015718 </td>
15719
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015720 <td class="entry_hal_version">
15721 <p>3.<wbr/>2</p>
15722 </td>
15723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015724 <td class="entry_tags">
15725 </td>
15726
15727 </tr>
15728 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015729 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015730 </tr>
15731 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015732 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080015733 <p>The entries in the result metadata buffers for a
15734single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015735FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -080015736requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
15737always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
15738before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
15739in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
15740capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
Zhijun He25b8ac52014-02-24 09:49:37 -080015741only be used by the camera device if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015742 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015743 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015744
Igor Murashkin7761a222014-01-27 16:06:38 -080015745 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015746 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin7761a222014-01-27 16:06:38 -080015747 </tr>
15748 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015749 <td class="entry_details" colspan="6">
Igor Murashkin7761a222014-01-27 16:06:38 -080015750 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
15751for information on how to implement partial results.<wbr/></p>
15752 </td>
15753 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015754
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015755 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015756 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -070015757
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015758
15759
15760 <!-- end of kind -->
15761 </tbody>
15762
15763 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015764 <tr><td colspan="7" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015765
15766
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015767 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015768
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015769 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015770 <tr>
15771 <th class="th_name">Property Name</th>
15772 <th class="th_type">Type</th>
15773 <th class="th_description">Description</th>
15774 <th class="th_units">Units</th>
15775 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015776 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015777 <th class="th_tags">Tags</th>
15778 </tr>
15779 </thead>
15780
15781 <tbody>
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792 <tr class="entry" id="controls_android.request.frameCount">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015793 <td class="entry_name
15794 entry_name_deprecated
15795 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015796 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015797 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015798 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015799 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015800
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015801 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015802
15803
Igor Murashkinca256272014-10-02 15:27:09 -070015804
Igor Murashkin6c936c12014-05-13 14:51:49 -070015805 <span class="entry_type_deprecated">[deprecated] </span>
15806
15807
15808
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015809 </td> <!-- entry_type -->
15810
15811 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015812 <p>A frame counter set by the framework.<wbr/> Must
15813be maintained unchanged in output frame.<wbr/> This value monotonically
15814increases with every new result (that is,<wbr/> each new result has a unique
15815frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015816 </td>
15817
15818 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080015819 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015820 </td>
15821
15822 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015823 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
15824 <p>Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015825 </td>
15826
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015827 <td class="entry_hal_version">
15828 <p>3.<wbr/>2</p>
15829 </td>
15830
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015831 <td class="entry_tags">
15832 </td>
15833
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015834 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015835
15836
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015837 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015838 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015839
15840
15841 <tr class="entry" id="controls_android.request.id">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015842 <td class="entry_name
15843 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015844 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015845 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015846 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015847 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015848
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015849 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015850
15851
Igor Murashkin6c936c12014-05-13 14:51:49 -070015852
15853
15854
Igor Murashkinca256272014-10-02 15:27:09 -070015855
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015856 </td> <!-- entry_type -->
15857
15858 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015859 <p>An application-specified ID for the current
15860request.<wbr/> Must be maintained unchanged in output
15861frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015862 </td>
15863
15864 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080015865 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015866 </td>
15867
15868 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015869 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015870 </td>
15871
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015872 <td class="entry_hal_version">
15873 <p>3.<wbr/>2</p>
15874 </td>
15875
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015876 <td class="entry_tags">
15877 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080015878 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015879 </ul>
15880 </td>
15881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015882 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015883
15884
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015885 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015886 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015887
15888
15889 <tr class="entry" id="controls_android.request.inputStreams">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015890 <td class="entry_name
15891 entry_name_deprecated
15892 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080015893 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015894 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015895 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -070015896 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015897 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015898
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015899 <span class="entry_type_array">
15900 n
15901 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015902 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015903
15904
Igor Murashkinca256272014-10-02 15:27:09 -070015905
Igor Murashkin6c936c12014-05-13 14:51:49 -070015906 <span class="entry_type_deprecated">[deprecated] </span>
15907
15908
15909
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015910 </td> <!-- entry_type -->
15911
15912 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015913 <p>List which camera reprocess stream is used
15914for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015915 </td>
15916
15917 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080015918 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015919 </td>
15920
15921 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015922 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
15923 <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015924 </td>
15925
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015926 <td class="entry_hal_version">
15927 <p>3.<wbr/>2</p>
15928 </td>
15929
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015930 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015931 <ul class="entry_tags">
15932 <li><a href="#tag_HAL2">HAL2</a></li>
15933 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015934 </td>
15935
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015936 </tr>
15937 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015938 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015939 </tr>
15940 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015941 <td class="entry_details" colspan="6">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015942 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -080015943REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015944 </td>
15945 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015946
15947
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015948 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015949 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015950
15951
15952 <tr class="entry" id="controls_android.request.metadataMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070015953 <td class="entry_name
15954 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015955 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015956 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015957 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080015958 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015960 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015961
Igor Murashkin6c936c12014-05-13 14:51:49 -070015962
15963
15964
Igor Murashkinca256272014-10-02 15:27:09 -070015965
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015966 <ul class="entry_type_enum">
15967 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015968 <span class="entry_type_enum_name">NONE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080015969 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
15970for application-bound buffer data.<wbr/> If no
15971application-bound streams exist,<wbr/> no frame should be
15972placed in the output frame queue.<wbr/> If such streams
15973exist,<wbr/> a frame should be placed on the output queue
15974with null metadata but with the necessary output buffer
15975information.<wbr/> Timestamp information should still be
15976included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015977 </li>
15978 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080015979 <span class="entry_type_enum_name">FULL (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080015980 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
15981only be produced if they are separately
15982enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015983 </li>
15984 </ul>
15985
15986 </td> <!-- entry_type -->
15987
15988 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015989 <p>How much metadata to produce on
15990output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015991 </td>
15992
15993 <td class="entry_units">
15994 </td>
15995
15996 <td class="entry_range">
15997 </td>
15998
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080015999 <td class="entry_hal_version">
16000 <p>3.<wbr/>2</p>
16001 </td>
16002
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016003 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070016004 <ul class="entry_tags">
16005 <li><a href="#tag_FUTURE">FUTURE</a></li>
16006 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016007 </td>
16008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016009 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016010
16011
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016012 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016013 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016014
16015
16016 <tr class="entry" id="controls_android.request.outputStreams">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016017 <td class="entry_name
16018 entry_name_deprecated
16019 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080016020 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016021 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016022 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -070016023 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016024 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016025
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016026 <span class="entry_type_array">
16027 n
16028 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070016029 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016030
16031
Igor Murashkinca256272014-10-02 15:27:09 -070016032
Igor Murashkin6c936c12014-05-13 14:51:49 -070016033 <span class="entry_type_deprecated">[deprecated] </span>
16034
16035
16036
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016037 </td> <!-- entry_type -->
16038
16039 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080016040 <p>Lists which camera output streams image data
16041from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016042 </td>
16043
16044 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080016045 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016046 </td>
16047
16048 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016049 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
16050 <p>List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080016051created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016052 </td>
16053
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016054 <td class="entry_hal_version">
16055 <p>3.<wbr/>2</p>
16056 </td>
16057
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016058 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016059 <ul class="entry_tags">
16060 <li><a href="#tag_HAL2">HAL2</a></li>
16061 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016062 </td>
16063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016064 </tr>
16065 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016066 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016067 </tr>
16068 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016069 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080016070 <p>If no output streams are listed,<wbr/> then the image
16071data should simply be discarded.<wbr/> The image data must
16072still be captured for metadata and statistics production,<wbr/>
16073and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016074 </td>
16075 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016076
16077
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016078 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016079 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016080
16081
16082 <tr class="entry" id="controls_android.request.type">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016083 <td class="entry_name
16084 entry_name_deprecated
16085 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080016086 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016087 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016088 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080016089 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016090
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070016091 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016092
Igor Murashkin6c936c12014-05-13 14:51:49 -070016093
Igor Murashkinca256272014-10-02 15:27:09 -070016094
Igor Murashkin6c936c12014-05-13 14:51:49 -070016095 <span class="entry_type_deprecated">[deprecated] </span>
16096
16097
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016098 <ul class="entry_type_enum">
16099 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016100 <span class="entry_type_enum_name">CAPTURE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080016101 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
16102and process it according to the
16103settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016104 </li>
16105 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016106 <span class="entry_type_enum_name">REPROCESS (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080016107 <span class="entry_type_enum_notes"><p>Process previously captured data; the
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080016108<a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
Igor Murashkina10351a2014-01-15 17:05:22 -080016109source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
16110needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016111 </li>
16112 </ul>
16113
16114 </td> <!-- entry_type -->
16115
16116 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080016117 <p>The type of the request; either CAPTURE or
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016118REPROCESS.<wbr/> For legacy HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016119 </td>
16120
16121 <td class="entry_units">
16122 </td>
16123
16124 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016125 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016126 </td>
16127
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016128 <td class="entry_hal_version">
16129 <p>3.<wbr/>2</p>
16130 </td>
16131
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016132 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016133 <ul class="entry_tags">
16134 <li><a href="#tag_HAL2">HAL2</a></li>
16135 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016136 </td>
16137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016139
16140
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016141 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016142 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016143
16144
16145
16146 <!-- end of kind -->
16147 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016148 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016149
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070016150 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016151 <tr>
16152 <th class="th_name">Property Name</th>
16153 <th class="th_type">Type</th>
16154 <th class="th_description">Description</th>
16155 <th class="th_units">Units</th>
16156 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016157 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016158 <th class="th_tags">Tags</th>
16159 </tr>
16160 </thead>
16161
16162 <tbody>
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016174 <td class="entry_name
16175 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080016176 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016177 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016178 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080016179 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016180 <span class="entry_type_container">x</span>
16181
16182 <span class="entry_type_array">
16183 3
16184 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070016185 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016186
16187
Igor Murashkinca256272014-10-02 15:27:09 -070016188 <span class="entry_type_hwlevel">[legacy] </span>
16189
Igor Murashkin6c936c12014-05-13 14:51:49 -070016190
16191
16192
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016193 </td> <!-- entry_type -->
16194
16195 <td class="entry_description">
Zhijun He12744b22014-01-22 15:58:57 -080016196 <p>The maximum numbers of different types of output streams
16197that can be configured and used simultaneously by a camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016198 </td>
16199
16200 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016201 </td>
16202
16203 <td class="entry_range">
Zhijun He3e6b6182014-04-24 11:17:25 -070016204 <p>For processed (and stalling) format streams,<wbr/> &gt;= 1.<wbr/></p>
16205<p>For Raw format (either stalling or non-stalling) streams,<wbr/> &gt;= 0.<wbr/></p>
16206<p>For processed (but not stalling) format streams,<wbr/> &gt;= 3
Zhijun He2e76d002014-02-12 13:37:03 -080016207for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
16208&gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016209 </td>
16210
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016211 <td class="entry_hal_version">
16212 <p>3.<wbr/>2</p>
16213 </td>
16214
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016215 <td class="entry_tags">
16216 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080016217 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016218 </ul>
16219 </td>
16220
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016221 </tr>
16222 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016223 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016224 </tr>
16225 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016226 <td class="entry_details" colspan="6">
Zhijun He12744b22014-01-22 15:58:57 -080016227 <p>This is a 3 element tuple that contains the max number of output simultaneous
Zhijun He3e6b6182014-04-24 11:17:25 -070016228streams for raw sensor,<wbr/> processed (but not stalling),<wbr/> and processed (and stalling)
16229formats respectively.<wbr/> For example,<wbr/> assuming that JPEG is typically a processed and
16230stalling stream,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
Zhijun He12744b22014-01-22 15:58:57 -080016231number is 3,<wbr/> and max JPEG stream number is 2,<wbr/> then this tuple should be <code>(1,<wbr/> 3,<wbr/> 2)</code>.<wbr/></p>
16232<p>This lists the upper bound of the number of output streams supported by
16233the camera device.<wbr/> Using more streams simultaneously may require more hardware and
Igor Murashkin35a108f2014-05-27 10:51:25 -070016234CPU resources that will consume more power.<wbr/> The image format for an output stream can
Zhijun He3e6b6182014-04-24 11:17:25 -070016235be any supported format provided by <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
16236The formats defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> can be catergorized
16237into the 3 stream types as below:</p>
Zhijun He12744b22014-01-22 15:58:57 -080016238<ul>
Zhijun He3e6b6182014-04-24 11:17:25 -070016239<li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.<wbr/>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016240 Typically <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">JPEG format</a>.<wbr/></li>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016241<li>Raw formats: <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">RAW_<wbr/>SENSOR</a>,<wbr/> <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">RAW10</a>,<wbr/> or
16242 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">RAW12</a>.<wbr/></li>
16243<li>Processed (but not-stalling): any non-RAW format without a stall duration.<wbr/> Typically
16244 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>,<wbr/>
16245 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21">NV21</a>,<wbr/> or <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YV12">YV12</a>.<wbr/></li>
Zhijun He12744b22014-01-22 15:58:57 -080016246</ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016247 </td>
16248 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016249
16250
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016251 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016252 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016253
16254
Igor Murashkin35a108f2014-05-27 10:51:25 -070016255 <tr class="entry" id="static_android.request.maxNumOutputRaw">
16256 <td class="entry_name
16257 " rowspan="3">
16258 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw
16259 </td>
16260 <td class="entry_type">
16261 <span class="entry_type_name">int32</span>
16262
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070016263 <span class="entry_type_visibility"> [java_public]</span>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016264
16265 <span class="entry_type_synthetic">[synthetic] </span>
16266
Igor Murashkinca256272014-10-02 15:27:09 -070016267 <span class="entry_type_hwlevel">[legacy] </span>
16268
Igor Murashkin35a108f2014-05-27 10:51:25 -070016269
16270
16271
16272 </td> <!-- entry_type -->
16273
16274 <td class="entry_description">
16275 <p>The maximum numbers of different types of output streams
16276that can be configured and used simultaneously by a camera device
16277for any <code>RAW</code> formats.<wbr/></p>
16278 </td>
16279
16280 <td class="entry_units">
16281 </td>
16282
16283 <td class="entry_range">
16284 <p>&gt;= 0</p>
16285 </td>
16286
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016287 <td class="entry_hal_version">
16288 <p>3.<wbr/>2</p>
16289 </td>
16290
Igor Murashkin35a108f2014-05-27 10:51:25 -070016291 <td class="entry_tags">
16292 </td>
16293
16294 </tr>
16295 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016296 <th class="th_details" colspan="6">Details</th>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016297 </tr>
16298 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016299 <td class="entry_details" colspan="6">
Igor Murashkin35a108f2014-05-27 10:51:25 -070016300 <p>This value contains the max number of output simultaneous
16301streams from the raw sensor.<wbr/></p>
16302<p>This lists the upper bound of the number of output streams supported by
16303the camera device.<wbr/> Using more streams simultaneously may require more hardware and
16304CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
16305be any <code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
16306<p>In particular,<wbr/> a <code>RAW</code> format is typically one of:</p>
16307<ul>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016308<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">RAW_<wbr/>SENSOR</a></li>
16309<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">RAW10</a></li>
16310<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">RAW12</a></li>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016311</ul>
Igor Murashkinca256272014-10-02 15:27:09 -070016312<p>LEGACY mode devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> LEGACY)
16313never support raw streams.<wbr/></p>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016314 </td>
16315 </tr>
16316
16317
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016318 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016319 <!-- end of entry -->
16320
16321
16322 <tr class="entry" id="static_android.request.maxNumOutputProc">
16323 <td class="entry_name
16324 " rowspan="3">
16325 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc
16326 </td>
16327 <td class="entry_type">
16328 <span class="entry_type_name">int32</span>
16329
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070016330 <span class="entry_type_visibility"> [java_public]</span>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016331
16332 <span class="entry_type_synthetic">[synthetic] </span>
16333
Igor Murashkinca256272014-10-02 15:27:09 -070016334 <span class="entry_type_hwlevel">[legacy] </span>
16335
Igor Murashkin35a108f2014-05-27 10:51:25 -070016336
16337
16338
16339 </td> <!-- entry_type -->
16340
16341 <td class="entry_description">
16342 <p>The maximum numbers of different types of output streams
16343that can be configured and used simultaneously by a camera device
16344for any processed (but not-stalling) formats.<wbr/></p>
16345 </td>
16346
16347 <td class="entry_units">
16348 </td>
16349
16350 <td class="entry_range">
16351 <p>&gt;= 3
16352for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
16353&gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
16354 </td>
16355
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016356 <td class="entry_hal_version">
16357 <p>3.<wbr/>2</p>
16358 </td>
16359
Igor Murashkin35a108f2014-05-27 10:51:25 -070016360 <td class="entry_tags">
16361 </td>
16362
16363 </tr>
16364 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016365 <th class="th_details" colspan="6">Details</th>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016366 </tr>
16367 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016368 <td class="entry_details" colspan="6">
Igor Murashkin35a108f2014-05-27 10:51:25 -070016369 <p>This value contains the max number of output simultaneous
16370streams for any processed (but not-stalling) formats.<wbr/></p>
16371<p>This lists the upper bound of the number of output streams supported by
16372the camera device.<wbr/> Using more streams simultaneously may require more hardware and
16373CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
16374be any non-<code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
16375<p>Processed (but not-stalling) is defined as any non-RAW format without a stall duration.<wbr/>
16376Typically:</p>
16377<ul>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016378<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a></li>
16379<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21">NV21</a></li>
16380<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YV12">YV12</a></li>
16381<li>Implementation-defined formats,<wbr/> i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#isOutputSupportedFor(Class)">StreamConfigurationMap#isOutputSupportedFor(Class)</a></li>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016382</ul>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016383<p>For full guarantees,<wbr/> query <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a> with a
16384processed format -- it will return 0 for a non-stalling stream.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070016385<p>LEGACY devices will support at least 2 processing/<wbr/>non-stalling streams.<wbr/></p>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016386 </td>
16387 </tr>
16388
16389
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016390 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016391 <!-- end of entry -->
16392
16393
16394 <tr class="entry" id="static_android.request.maxNumOutputProcStalling">
16395 <td class="entry_name
16396 " rowspan="3">
16397 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc<wbr/>Stalling
16398 </td>
16399 <td class="entry_type">
16400 <span class="entry_type_name">int32</span>
16401
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070016402 <span class="entry_type_visibility"> [java_public]</span>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016403
16404 <span class="entry_type_synthetic">[synthetic] </span>
16405
Igor Murashkinca256272014-10-02 15:27:09 -070016406 <span class="entry_type_hwlevel">[legacy] </span>
16407
Igor Murashkin35a108f2014-05-27 10:51:25 -070016408
16409
16410
16411 </td> <!-- entry_type -->
16412
16413 <td class="entry_description">
16414 <p>The maximum numbers of different types of output streams
16415that can be configured and used simultaneously by a camera device
16416for any processed (and stalling) formats.<wbr/></p>
16417 </td>
16418
16419 <td class="entry_units">
16420 </td>
16421
16422 <td class="entry_range">
16423 <p>&gt;= 1</p>
16424 </td>
16425
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016426 <td class="entry_hal_version">
16427 <p>3.<wbr/>2</p>
16428 </td>
16429
Igor Murashkin35a108f2014-05-27 10:51:25 -070016430 <td class="entry_tags">
16431 </td>
16432
16433 </tr>
16434 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016435 <th class="th_details" colspan="6">Details</th>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016436 </tr>
16437 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016438 <td class="entry_details" colspan="6">
Igor Murashkin35a108f2014-05-27 10:51:25 -070016439 <p>This value contains the max number of output simultaneous
16440streams for any processed (but not-stalling) formats.<wbr/></p>
16441<p>This lists the upper bound of the number of output streams supported by
16442the camera device.<wbr/> Using more streams simultaneously may require more hardware and
16443CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
16444be any non-<code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016445<p>A processed and stalling format is defined as any non-RAW format with a stallDurations
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016446&gt; 0.<wbr/> Typically only the <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">JPEG format</a> is a stalling format.<wbr/></p>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016447<p>For full guarantees,<wbr/> query <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a> with a
16448processed format -- it will return a non-0 value for a stalling stream.<wbr/></p>
Igor Murashkinca256272014-10-02 15:27:09 -070016449<p>LEGACY devices will support up to 1 processing/<wbr/>stalling stream.<wbr/></p>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016450 </td>
16451 </tr>
16452
16453
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016454 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin35a108f2014-05-27 10:51:25 -070016455 <!-- end of entry -->
16456
16457
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016458 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016459 <td class="entry_name
16460 entry_name_deprecated
16461 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080016462 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016463 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016464 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080016465 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016466 <span class="entry_type_container">x</span>
16467
16468 <span class="entry_type_array">
16469 1
16470 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070016471 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016472
16473
Igor Murashkinca256272014-10-02 15:27:09 -070016474
Igor Murashkin6c936c12014-05-13 14:51:49 -070016475 <span class="entry_type_deprecated">[deprecated] </span>
16476
16477
16478
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016479 </td> <!-- entry_type -->
16480
16481 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080016482 <p>How many reprocessing streams of any type
Zhijun He12744b22014-01-22 15:58:57 -080016483can be allocated at the same time.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016484 </td>
16485
16486 <td class="entry_units">
16487 </td>
16488
16489 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016490 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Zhijun He12744b22014-01-22 15:58:57 -080016491 <p>&gt;= 0</p>
16492 </td>
16493
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016494 <td class="entry_hal_version">
16495 <p>3.<wbr/>2</p>
16496 </td>
16497
Zhijun He12744b22014-01-22 15:58:57 -080016498 <td class="entry_tags">
16499 <ul class="entry_tags">
16500 <li><a href="#tag_HAL2">HAL2</a></li>
16501 </ul>
16502 </td>
16503
16504 </tr>
16505 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016506 <th class="th_details" colspan="6">Details</th>
Zhijun He12744b22014-01-22 15:58:57 -080016507 </tr>
16508 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016509 <td class="entry_details" colspan="6">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016510 <p>Only used by HAL2.<wbr/>x.<wbr/></p>
Zhijun He12744b22014-01-22 15:58:57 -080016511<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
16512 </td>
16513 </tr>
16514
16515
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016516 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He12744b22014-01-22 15:58:57 -080016517 <!-- end of entry -->
16518
16519
16520 <tr class="entry" id="static_android.request.maxNumInputStreams">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016521 <td class="entry_name
Zhijun He41d6f042015-01-15 18:17:24 -080016522 " rowspan="5">
Zhijun He12744b22014-01-22 15:58:57 -080016523 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
16524 </td>
16525 <td class="entry_type">
16526 <span class="entry_type_name">int32</span>
16527
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016528 <span class="entry_type_visibility"> [java_public]</span>
Zhijun He12744b22014-01-22 15:58:57 -080016529
16530
Igor Murashkinca256272014-10-02 15:27:09 -070016531 <span class="entry_type_hwlevel">[full] </span>
16532
Igor Murashkin6c936c12014-05-13 14:51:49 -070016533
16534
16535
Zhijun He12744b22014-01-22 15:58:57 -080016536 </td> <!-- entry_type -->
16537
16538 <td class="entry_description">
16539 <p>The maximum numbers of any type of input streams
16540that can be configured and used simultaneously by a camera device.<wbr/></p>
16541 </td>
16542
16543 <td class="entry_units">
16544 </td>
16545
16546 <td class="entry_range">
Zhijun Hedf726fa2014-06-25 08:35:53 -070016547 <p>0 or 1.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016548 </td>
16549
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016550 <td class="entry_hal_version">
16551 <p>3.<wbr/>2</p>
16552 </td>
16553
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016554 <td class="entry_tags">
Zhijun He51379152015-04-24 17:59:50 -070016555 <ul class="entry_tags">
16556 <li><a href="#tag_REPROC">REPROC</a></li>
16557 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016558 </td>
16559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016560 </tr>
Zhijun He12744b22014-01-22 15:58:57 -080016561 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016562 <th class="th_details" colspan="6">Details</th>
Zhijun He12744b22014-01-22 15:58:57 -080016563 </tr>
16564 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016565 <td class="entry_details" colspan="6">
Zhijun He12744b22014-01-22 15:58:57 -080016566 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016567<p>The image format for a input stream can be any supported format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/> When using an
16568input stream,<wbr/> there must be at least one output stream configured to to receive the
16569reprocessed images.<wbr/></p>
Zhijun He41d6f042015-01-15 18:17:24 -080016570<p>When an input stream and some output streams are used in a reprocessing request,<wbr/>
16571only the input buffer will be used to produce these output stream buffers,<wbr/> and a
16572new sensor image will not be captured.<wbr/></p>
Zhijun He12744b22014-01-22 15:58:57 -080016573<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070016574stream image format will be PRIVATE,<wbr/> the associated output stream image format
Zhijun He12744b22014-01-22 15:58:57 -080016575should be JPEG.<wbr/></p>
16576 </td>
16577 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016578
Zhijun He41d6f042015-01-15 18:17:24 -080016579 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016580 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -080016581 </tr>
16582 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016583 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -080016584 <p>For the reprocessing flow and controls,<wbr/> see
16585hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more details.<wbr/></p>
16586 </td>
16587 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080016588
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016589 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080016590 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016591
Igor Murashkina46e02f2014-01-09 17:43:38 -080016592
16593 <tr class="entry" id="static_android.request.pipelineMaxDepth">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016594 <td class="entry_name
16595 " rowspan="5">
Igor Murashkina46e02f2014-01-09 17:43:38 -080016596 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
16597 </td>
16598 <td class="entry_type">
16599 <span class="entry_type_name">byte</span>
16600
16601 <span class="entry_type_visibility"> [public]</span>
16602
16603
Igor Murashkinca256272014-10-02 15:27:09 -070016604 <span class="entry_type_hwlevel">[legacy] </span>
16605
Igor Murashkin6c936c12014-05-13 14:51:49 -070016606
16607
16608
Igor Murashkina46e02f2014-01-09 17:43:38 -080016609 </td> <!-- entry_type -->
16610
16611 <td class="entry_description">
16612 <p>Specifies the number of maximum pipeline stages a frame
16613has to go through from when it's exposed to when it's available
16614to the framework.<wbr/></p>
16615 </td>
16616
16617 <td class="entry_units">
16618 </td>
16619
16620 <td class="entry_range">
16621 </td>
16622
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016623 <td class="entry_hal_version">
16624 <p>3.<wbr/>2</p>
16625 </td>
16626
Igor Murashkina46e02f2014-01-09 17:43:38 -080016627 <td class="entry_tags">
16628 </td>
16629
16630 </tr>
16631 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016632 <th class="th_details" colspan="6">Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080016633 </tr>
16634 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016635 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080016636 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
16637one stage to readout) from the sensor.<wbr/> The ISP then usually adds
16638its own stages to do custom HW processing.<wbr/> Further stages may be
16639added by SW processing.<wbr/></p>
16640<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
16641processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
16642depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
16643the max pipeline depth.<wbr/></p>
16644<p>A pipeline depth of X stages is equivalent to a pipeline latency of
16645X frame intervals.<wbr/></p>
Zhijun He7defc682015-05-22 17:04:15 -070016646<p>This value will normally be 8 or less,<wbr/> however,<wbr/> for high speed capture session,<wbr/>
16647the max pipeline depth will be up to 8 x size of high speed capture request list.<wbr/></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080016648 </td>
16649 </tr>
16650
16651 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016652 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080016653 </tr>
16654 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016655 <td class="entry_details" colspan="6">
Zhijun He7defc682015-05-22 17:04:15 -070016656 <p>This value should be 4 or less,<wbr/> expect for the high speed recording session,<wbr/> where the
16657max batch sizes may be larger than 1.<wbr/></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080016658 </td>
16659 </tr>
16660
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016661 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080016662 <!-- end of entry -->
16663
Igor Murashkin2e291102014-01-10 14:18:30 -080016664
16665 <tr class="entry" id="static_android.request.partialResultCount">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016666 <td class="entry_name
16667 " rowspan="3">
Igor Murashkin2e291102014-01-10 14:18:30 -080016668 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
16669 </td>
16670 <td class="entry_type">
16671 <span class="entry_type_name">int32</span>
16672
16673 <span class="entry_type_visibility"> [public]</span>
16674
16675
Igor Murashkin6c936c12014-05-13 14:51:49 -070016676
16677
16678
Igor Murashkinca256272014-10-02 15:27:09 -070016679
Igor Murashkin2e291102014-01-10 14:18:30 -080016680 </td> <!-- entry_type -->
16681
16682 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016683 <p>Defines how many sub-components
Igor Murashkin2e291102014-01-10 14:18:30 -080016684a result will be composed of.<wbr/></p>
16685 </td>
16686
16687 <td class="entry_units">
16688 </td>
16689
16690 <td class="entry_range">
16691 <p>&gt;= 1</p>
16692 </td>
16693
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016694 <td class="entry_hal_version">
16695 <p>3.<wbr/>2</p>
16696 </td>
16697
Igor Murashkin2e291102014-01-10 14:18:30 -080016698 <td class="entry_tags">
16699 </td>
16700
16701 </tr>
16702 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016703 <th class="th_details" colspan="6">Details</th>
Igor Murashkin2e291102014-01-10 14:18:30 -080016704 </tr>
16705 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016706 <td class="entry_details" colspan="6">
Igor Murashkin2e291102014-01-10 14:18:30 -080016707 <p>In order to combat the pipeline latency,<wbr/> partial results
16708may be delivered to the application layer from the camera device as
16709soon as they are available.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016710<p>Optional; defaults to 1.<wbr/> A value of 1 means that partial
16711results are not supported,<wbr/> and only the final TotalCaptureResult will
16712be produced by the camera device.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070016713<p>A typical use case for this might be: after requesting an
16714auto-focus (AF) lock the new AF state might be available 50%
16715of the way through the pipeline.<wbr/> The camera device could
16716then immediately dispatch this state via a partial result to
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016717the application,<wbr/> and the rest of the metadata via later
16718partial results.<wbr/></p>
Igor Murashkin2e291102014-01-10 14:18:30 -080016719 </td>
16720 </tr>
16721
16722
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016723 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin2e291102014-01-10 14:18:30 -080016724 <!-- end of entry -->
16725
Igor Murashkin57d570d2014-02-06 15:35:37 -080016726
16727 <tr class="entry" id="static_android.request.availableCapabilities">
Igor Murashkin6c936c12014-05-13 14:51:49 -070016728 <td class="entry_name
16729 " rowspan="5">
Igor Murashkin57d570d2014-02-06 15:35:37 -080016730 android.<wbr/>request.<wbr/>available<wbr/>Capabilities
16731 </td>
16732 <td class="entry_type">
16733 <span class="entry_type_name entry_type_name_enum">byte</span>
Zhijun Hec593aee2014-05-29 13:31:49 -070016734 <span class="entry_type_container">x</span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016735
Zhijun Hec593aee2014-05-29 13:31:49 -070016736 <span class="entry_type_array">
16737 n
16738 </span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016739 <span class="entry_type_visibility"> [public]</span>
16740
Igor Murashkin6c936c12014-05-13 14:51:49 -070016741
Igor Murashkinca256272014-10-02 15:27:09 -070016742 <span class="entry_type_hwlevel">[legacy] </span>
16743
Igor Murashkin6c936c12014-05-13 14:51:49 -070016744
16745
Igor Murashkin57d570d2014-02-06 15:35:37 -080016746 <ul class="entry_type_enum">
16747 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016748 <span class="entry_type_enum_name">BACKWARD_COMPATIBLE (v3.2)</span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016749 <span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
16750device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070016751supports.<wbr/></p>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016752<p>This capability is listed by all normal devices,<wbr/> and
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070016753indicates that the camera device has a feature set
16754that's comparable to the baseline requirements for the
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016755older android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
16756<p>Devices with the DEPTH_<wbr/>OUTPUT capability might not list this
16757capability,<wbr/> indicating that they support only depth measurement,<wbr/>
16758not standard color output.<wbr/></p></span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016759 </li>
16760 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016761 <span class="entry_type_enum_name">MANUAL_SENSOR (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016762 <span class="entry_type_enum_optional">[optional]</span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016763 <span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016764as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
Zhijun He5fb671c2014-05-21 17:51:05 -070016765The camera device supports basic manual control of the sensor image
16766acquisition related stages.<wbr/> This means the following controls are
16767guaranteed to be supported:</p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016768<ul>
Zhijun He5fb671c2014-05-21 17:51:05 -070016769<li>Manual frame duration control<ul>
16770<li><a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a></li>
16771<li><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
Zhijun He5fb671c2014-05-21 17:51:05 -070016772</ul>
16773</li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016774<li>Manual exposure control<ul>
16775<li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
16776<li><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
16777</ul>
16778</li>
16779<li>Manual sensitivity control<ul>
16780<li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
16781<li><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016782</ul>
16783</li>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016784<li>Manual lens control (if the lens is adjustable)<ul>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016785<li>android.<wbr/>lens.<wbr/>*</li>
16786</ul>
16787</li>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016788<li>Manual flash control (if a flash unit is present)<ul>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016789<li>android.<wbr/>flash.<wbr/>*</li>
16790</ul>
16791</li>
16792<li>Manual black level locking<ul>
16793<li><a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a></li>
16794</ul>
16795</li>
Yin-Chia Yehe36c5ed2015-04-02 14:31:53 -070016796<li>Auto exposure lock<ul>
16797<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
16798</ul>
16799</li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016800</ul>
16801<p>If any of the above 3A algorithms are enabled,<wbr/> then the camera
16802device will accurately report the values applied by 3A in the
Zhijun He5fb671c2014-05-21 17:51:05 -070016803result.<wbr/></p>
16804<p>A given camera device may also support additional manual sensor controls,<wbr/>
Ruben Brunk6285c4d2014-06-18 17:13:19 -070016805but this capability only covers the above list of controls.<wbr/></p>
16806<p>If this is supported,<wbr/> <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> will
16807additionally return a min frame duration that is greater than
16808zero for each supported size-format combination.<wbr/></p></span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016809 </li>
16810 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016811 <span class="entry_type_enum_name">MANUAL_POST_PROCESSING (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016812 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He5fb671c2014-05-21 17:51:05 -070016813 <span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
16814The camera device supports basic manual control of the image post-processing
16815stages.<wbr/> This means the following controls are guaranteed to be supported:</p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016816<ul>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080016817<li>
16818<p>Manual tonemap control</p>
16819<ul>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070016820<li><a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a></li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016821<li><a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></li>
16822<li><a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></li>
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070016823<li><a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a></li>
16824<li><a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a></li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016825</ul>
16826</li>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080016827<li>
16828<p>Manual white balance control</p>
16829<ul>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016830<li><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a></li>
16831<li><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a></li>
16832</ul>
16833</li>
Zhijun Hedf726fa2014-06-25 08:35:53 -070016834<li>Manual lens shading map control<ul>
16835<li><a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></li>
16836<li><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016837<li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a></li>
16838<li><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a></li>
16839</ul>
16840</li>
Zhijun He450e01c2014-07-01 18:27:42 -070016841<li>Manual aberration correction control (if aberration correction is supported)<ul>
Zhijun He33776412014-08-18 10:55:33 -070016842<li><a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></li>
16843<li><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></li>
Zhijun He450e01c2014-07-01 18:27:42 -070016844</ul>
16845</li>
Yin-Chia Yehe36c5ed2015-04-02 14:31:53 -070016846<li>Auto white balance lock<ul>
16847<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
16848</ul>
16849</li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016850</ul>
16851<p>If auto white balance is enabled,<wbr/> then the camera device
16852will accurately report the values applied by AWB in the result.<wbr/></p>
Zhijun He5fb671c2014-05-21 17:51:05 -070016853<p>A given camera device may also support additional post-processing
16854controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016855 </li>
16856 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016857 <span class="entry_type_enum_name">RAW (v3.2)</span>
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070016858 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070016859 <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
16860metadata for interpreting them.<wbr/></p>
16861<p>Devices supporting the RAW capability allow both for
16862saving DNG files,<wbr/> and for direct application processing of
16863raw sensor images.<wbr/></p>
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070016864<ul>
16865<li>RAW_<wbr/>SENSOR is supported as an output format.<wbr/></li>
16866<li>The maximum available resolution for RAW_<wbr/>SENSOR streams
16867 will match either the value in
16868 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
Eino-Ville Talvala04292692015-11-08 18:58:27 -080016869 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070016870<li>All DNG-related optional metadata entries are provided
16871 by the camera device.<wbr/></li>
16872</ul></span>
16873 </li>
16874 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016875 <span class="entry_type_enum_name">PRIVATE_REPROCESSING (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016876 <span class="entry_type_enum_optional">[optional]</span>
Zhijun He41d6f042015-01-15 18:17:24 -080016877 <span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag reprocessing use case.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016878<ul>
Zhijun He41d6f042015-01-15 18:17:24 -080016879<li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016880<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> is supported as an output/<wbr/>input format,<wbr/>
16881 that is,<wbr/> <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> is included in the lists of
16882 formats returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputFormats">StreamConfigurationMap#getOutputFormats</a>.<wbr/></li>
16883<li><a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getValidOutputFormatsForInput">StreamConfigurationMap#getValidOutputFormatsForInput</a>
16884 returns non empty int[] for each supported input format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/></li>
16885<li>Each size returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputSizes">getInputSizes(ImageFormat.<wbr/>PRIVATE)</a> is also included in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">getOutputSizes(ImageFormat.<wbr/>PRIVATE)</a></li>
16886<li>Using <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> does not cause a frame rate drop
16887 relative to the sensor's maximum capture rate (at that resolution).<wbr/></li>
16888<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> will be reprocessable into both
16889 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and
16890 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070016891<li>The maximum available resolution for PRIVATE streams
Igor Murashkin57d570d2014-02-06 15:35:37 -080016892 (both input/<wbr/>output) will match the maximum available
16893 resolution of JPEG streams.<wbr/></li>
Zhijun He51379152015-04-24 17:59:50 -070016894<li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
Zhijun He41d6f042015-01-15 18:17:24 -080016895<li>Only below controls are effective for reprocessing requests and
16896 will be present in capture results,<wbr/> other controls in reprocess
16897 requests will be ignored by the camera device.<wbr/><ul>
16898<li>android.<wbr/>jpeg.<wbr/>*</li>
16899<li><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></li>
16900<li><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></li>
16901</ul>
16902</li>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070016903<li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> and
16904 <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a> will both list ZERO_<wbr/>SHUTTER_<wbr/>LAG as a supported mode.<wbr/></li>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070016905</ul></span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080016906 </li>
Ruben Brunka43690a2014-11-11 11:47:03 -080016907 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016908 <span class="entry_type_enum_name">READ_SENSOR_SETTINGS (v3.2)</span>
Ruben Brunka43690a2014-11-11 11:47:03 -080016909 <span class="entry_type_enum_optional">[optional]</span>
16910 <span class="entry_type_enum_notes"><p>The camera device supports accurately reporting the sensor settings for many of
16911the sensor controls while the built-in 3A algorithm is running.<wbr/> This allows
16912reporting of sensor settings even when these settings cannot be manually changed.<wbr/></p>
16913<p>The values reported for the following controls are guaranteed to be available
16914in the CaptureResult,<wbr/> including when 3A is enabled:</p>
16915<ul>
16916<li>Exposure control<ul>
16917<li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
16918</ul>
16919</li>
16920<li>Sensitivity control<ul>
16921<li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
16922</ul>
16923</li>
16924<li>Lens controls (if the lens is adjustable)<ul>
16925<li><a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a></li>
16926<li><a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a></li>
16927</ul>
16928</li>
16929</ul>
16930<p>This capability is a subset of the MANUAL_<wbr/>SENSOR control capability,<wbr/> and will
16931always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
16932 </li>
Eino-Ville Talvala0f0d7952014-10-02 18:27:34 -070016933 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016934 <span class="entry_type_enum_name">BURST_CAPTURE (v3.2)</span>
Eino-Ville Talvala0f0d7952014-10-02 18:27:34 -070016935 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvalaa92c2b72015-06-17 11:32:55 -070016936 <span class="entry_type_enum_notes"><p>The camera device supports capturing high-resolution images at &gt;= 20 frames per
16937second,<wbr/> in at least the uncompressed YUV format,<wbr/> when post-processing settings are set
16938to FAST.<wbr/> Additionally,<wbr/> maximum-resolution images can be captured at &gt;= 10 frames
16939per second.<wbr/> Here,<wbr/> 'high resolution' means at least 8 megapixels,<wbr/> or the maximum
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016940resolution of the device,<wbr/> whichever is smaller.<wbr/></p></span>
Eino-Ville Talvala0f0d7952014-10-02 18:27:34 -070016941 </li>
Zhijun He41d6f042015-01-15 18:17:24 -080016942 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016943 <span class="entry_type_enum_name">YUV_REPROCESSING (v3.2)</span>
Zhijun He41d6f042015-01-15 18:17:24 -080016944 <span class="entry_type_enum_optional">[optional]</span>
Chien-Yu Chen9e48beb2015-03-18 18:33:17 -070016945 <span class="entry_type_enum_notes"><p>The camera device supports the YUV_<wbr/>420_<wbr/>888 reprocessing use case,<wbr/> similar as
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070016946PRIVATE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
Zhijun He41d6f042015-01-15 18:17:24 -080016947following:</p>
16948<ul>
16949<li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016950<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> is supported as an output/<wbr/>input
16951 format,<wbr/> that is,<wbr/> YUV_<wbr/>420_<wbr/>888 is included in the lists of formats returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputFormats">StreamConfigurationMap#getOutputFormats</a>.<wbr/></li>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016952<li><a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getValidOutputFormatsForInput">StreamConfigurationMap#getValidOutputFormatsForInput</a>
16953 returns non-empty int[] for each supported input format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/></li>
16954<li>Each size returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputSizes">get<wbr/>Input<wbr/>Sizes(YUV_<wbr/>420_<wbr/>888)</a> is also included in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">get<wbr/>Output<wbr/>Sizes(YUV_<wbr/>420_<wbr/>888)</a></li>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016955<li>Using <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> does not cause a frame rate
16956 drop relative to the sensor's maximum capture rate (at that resolution).<wbr/></li>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016957<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> will be reprocessable into both
16958 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
16959<li>The maximum available resolution for <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> streams (both input/<wbr/>output) will match the
16960 maximum available resolution of <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> streams.<wbr/></li>
Zhijun He51379152015-04-24 17:59:50 -070016961<li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070016962<li>Only the below controls are effective for reprocessing requests and will be present
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016963 in capture results.<wbr/> The reprocess requests are from the original capture results
16964 that are associated with the intermediate <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> output buffers.<wbr/> All other controls in the
16965 reprocess requests will be ignored by the camera device.<wbr/><ul>
Zhijun He41d6f042015-01-15 18:17:24 -080016966<li>android.<wbr/>jpeg.<wbr/>*</li>
16967<li><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></li>
16968<li><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></li>
16969<li><a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a></li>
16970</ul>
16971</li>
Eino-Ville Talvala073e4582015-07-07 10:40:59 -070016972<li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> and
16973 <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a> will both list ZERO_<wbr/>SHUTTER_<wbr/>LAG as a supported mode.<wbr/></li>
Zhijun He41d6f042015-01-15 18:17:24 -080016974</ul></span>
16975 </li>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016976 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080016977 <span class="entry_type_enum_name">DEPTH_OUTPUT (v3.2)</span>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016978 <span class="entry_type_enum_optional">[optional]</span>
16979 <span class="entry_type_enum_notes"><p>The camera device can produce depth measurements from its field of view.<wbr/></p>
16980<p>This capability requires the camera device to support the following:</p>
16981<ul>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080016982<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH16">ImageFormat#DEPTH16</a> is supported as
16983 an output format.<wbr/></li>
16984<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH_POINT_CLOUD">Image<wbr/>Format#DEPTH_<wbr/>POINT_<wbr/>CLOUD</a> is
16985 optionally supported as an output format.<wbr/></li>
16986<li>This camera device,<wbr/> and all camera devices with the same <a href="#static_android.lens.facing">android.<wbr/>lens.<wbr/>facing</a>,<wbr/> will
16987 list the following calibration metadata entries in both <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>
16988 and <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">CaptureResult</a>:<ul>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016989<li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
16990<li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
Eino-Ville Talvalac572dfc2015-08-19 16:09:46 -070016991<li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070016992<li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a></li>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016993</ul>
16994</li>
16995<li>The <a href="#static_android.depth.depthIsExclusive">android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive</a> entry is listed by this device.<wbr/></li>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080016996<li>As of Android P,<wbr/> the <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> entry is listed by this device.<wbr/></li>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070016997<li>A LIMITED camera with only the DEPTH_<wbr/>OUTPUT capability does not have to support
16998 normal YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> and PRIV-format outputs.<wbr/> It only has to support the DEPTH16
16999 format.<wbr/></li>
17000</ul>
17001<p>Generally,<wbr/> depth output operates at a slower frame rate than standard color capture,<wbr/>
17002so the DEPTH16 and DEPTH_<wbr/>POINT_<wbr/>CLOUD formats will commonly have a stall duration that
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017003should be accounted for (see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>).<wbr/>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070017004On a device that supports both depth and color-based output,<wbr/> to enable smooth preview,<wbr/>
17005using a repeating burst is recommended,<wbr/> where a depth-output target is only included
17006once every N frames,<wbr/> where N is the ratio between preview output rate and depth output
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070017007rate,<wbr/> including depth stall time.<wbr/></p></span>
17008 </li>
Zhijun He7defc682015-05-22 17:04:15 -070017009 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080017010 <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO (v3.2)</span>
Zhijun He7defc682015-05-22 17:04:15 -070017011 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017012 <span class="entry_type_enum_notes"><p>The device supports constrained high speed video recording (frame rate &gt;=120fps) use
17013case.<wbr/> The camera device will support high speed capture session created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>,<wbr/> which
17014only accepts high speed request lists created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>.<wbr/></p>
17015<p>A camera device can still support high speed video streaming by advertising the high
17016speed FPS ranges in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a>.<wbr/> For this case,<wbr/> all
17017normal capture request per frame control and synchronization requirements will apply
17018to the high speed fps ranges,<wbr/> the same as all other fps ranges.<wbr/> This capability
17019describes the capability of a specialized operating mode with many limitations (see
17020below),<wbr/> which is only targeted at high speed video recording.<wbr/></p>
17021<p>The supported high speed video sizes and fps ranges are specified in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoFpsRanges">StreamConfigurationMap#getHighSpeedVideoFpsRanges</a>.<wbr/>
17022To get desired output frame rates,<wbr/> the application is only allowed to select video
17023size and FPS range combinations provided by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoSizes">StreamConfigurationMap#getHighSpeedVideoSizes</a>.<wbr/> The
17024fps range can be controlled via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
Zhijun He7defc682015-05-22 17:04:15 -070017025<p>In this capability,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
Zhijun He1a71d0d2015-06-16 19:44:18 -070017026ON,<wbr/> AUTO,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
Zhijun He7defc682015-05-22 17:04:15 -070017027controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
17028and post-processing parameters is possible.<wbr/> All other controls operate the
17029same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
17030android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
17031<ul>
17032<li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
17033<li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
17034<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
17035<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
17036<li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
17037<li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
17038<li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
17039<li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
17040<li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
17041<li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
17042</ul>
17043<p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
17044<ul>
17045<li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (TORCH mode only,<wbr/> automatic flash for still capture will not
17046work since aeMode is ON)</li>
17047<li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
17048<li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
17049<li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> (if it is supported)</li>
17050</ul>
17051<p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
17052be lower than what camera can output,<wbr/> depending on the destination Surfaces for
17053the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
17054the application need check if the video encoder is capable of supporting the
17055high frame rate for a given video size,<wbr/> or it will end up with lower recording
17056frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the actual preview frame
17057rate will be bounded by the screen refresh rate.<wbr/></p>
17058<p>The camera device will only support up to 2 high speed simultaneous output surfaces
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017059(preview and recording surfaces) in this mode.<wbr/> Above controls will be effective only
17060if all of below conditions are true:</p>
Zhijun He7defc682015-05-22 17:04:15 -070017061<ul>
17062<li>The application creates a camera capture session with no more than 2 surfaces via
17063<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/> The
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017064targeted surfaces must be preview surface (either from <a href="https://developer.android.com/reference/android/view/SurfaceView.html">SurfaceView</a> or <a href="https://developer.android.com/reference/android/graphics/SurfaceTexture.html">SurfaceTexture</a>) or recording
17065surface(either from <a href="https://developer.android.com/reference/android/media/MediaRecorder.html#getSurface">MediaRecorder#getSurface</a> or <a href="https://developer.android.com/reference/android/media/MediaCodec.html#createInputSurface">MediaCodec#createInputSurface</a>).<wbr/></li>
Zhijun He7defc682015-05-22 17:04:15 -070017066<li>The stream sizes are selected from the sizes reported by
17067<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoSizes">StreamConfigurationMap#getHighSpeedVideoSizes</a>.<wbr/></li>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017068<li>The FPS ranges are selected from <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoFpsRanges">StreamConfigurationMap#getHighSpeedVideoFpsRanges</a>.<wbr/></li>
Zhijun He7defc682015-05-22 17:04:15 -070017069</ul>
Eino-Ville Talvalaf55c1a82015-06-30 13:32:09 -070017070<p>When above conditions are NOT satistied,<wbr/>
Zhijun He7defc682015-05-22 17:04:15 -070017071<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
Eino-Ville Talvalaf55c1a82015-06-30 13:32:09 -070017072will fail.<wbr/></p>
Zhijun He7defc682015-05-22 17:04:15 -070017073<p>Switching to a FPS range that has different maximum FPS may trigger some camera device
17074reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
17075the application avoids unnecessary maximum target FPS changes as much as possible
17076during high speed streaming.<wbr/></p></span>
17077 </li>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080017078 <li>
17079 <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
17080 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvalabaf80472018-02-05 16:26:26 -080017081 <span class="entry_type_enum_notes"><p>The camera device supports the MOTION_<wbr/>TRACKING value for
17082<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a>,<wbr/> which limits maximum exposure time to 20 ms.<wbr/></p>
17083<p>This limits the motion blur of capture images,<wbr/> resulting in better image tracking
17084results for use cases such as image stabilization or augmented reality.<wbr/></p></span>
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080017085 </li>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017086 <li>
17087 <span class="entry_type_enum_name">LOGICAL_MULTI_CAMERA (v3.3)</span>
17088 <span class="entry_type_enum_optional">[optional]</span>
17089 <span class="entry_type_enum_notes"><p>The camera device is a logical camera backed by two or more physical cameras that are
17090also exposed to the application.<wbr/></p>
Shuzhen Wang1a5092e2018-05-23 09:07:11 -070017091<p>Camera application shouldn't assume that there are at most 1 rear camera and 1 front
17092camera in the system.<wbr/> For an application that switches between front and back cameras,<wbr/>
17093the recommendation is to switch between the first rear camera and the first front
17094camera in the list of supported camera devices.<wbr/></p>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017095<p>This capability requires the camera device to support the following:</p>
17096<ul>
17097<li>This camera device must list the following static metadata entries in <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>:<ul>
17098<li><a href="#static_android.logicalMultiCamera.physicalIds">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids</a></li>
17099<li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type</a></li>
17100</ul>
17101</li>
17102<li>The underlying physical cameras' static metadata must list the following entries,<wbr/>
17103 so that the application can correlate pixels from the physical streams:<ul>
17104<li><a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a></li>
17105<li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
17106<li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
17107<li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070017108<li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a></li>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017109</ul>
17110</li>
Shuzhen Wangd24b9702018-01-25 13:23:03 -080017111<li>The SENSOR_<wbr/>INFO_<wbr/>TIMESTAMP_<wbr/>SOURCE of the logical device and physical devices must be
17112 the same.<wbr/></li>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017113<li>The logical camera device must be LIMITED or higher device.<wbr/></li>
17114</ul>
17115<p>Both the logical camera device and its underlying physical devices support the
17116mandatory stream combinations required for their device levels.<wbr/></p>
17117<p>Additionally,<wbr/> for each guaranteed stream combination,<wbr/> the logical camera supports:</p>
17118<ul>
Shuzhen Wangd24b9702018-01-25 13:23:03 -080017119<li>For each guaranteed stream combination,<wbr/> the logical camera supports replacing one
17120 logical <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017121 or raw stream with two physical streams of the same size and format,<wbr/> each from a
17122 separate physical camera,<wbr/> given that the size and format are supported by both
17123 physical cameras.<wbr/></li>
Shuzhen Wangd24b9702018-01-25 13:23:03 -080017124<li>If the logical camera doesn't advertise RAW capability,<wbr/> but the underlying physical
17125 cameras do,<wbr/> the logical camera will support guaranteed stream combinations for RAW
17126 capability,<wbr/> except that the RAW streams will be physical streams,<wbr/> each from a separate
17127 physical camera.<wbr/> This is usually the case when the physical cameras have different
17128 sensor sizes.<wbr/></li>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017129</ul>
17130<p>Using physical streams in place of a logical stream of the same size and format will
17131not slow down the frame rate of the capture,<wbr/> as long as the minimum frame duration
17132of the physical and logical streams are the same.<wbr/></p></span>
17133 </li>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070017134 <li>
17135 <span class="entry_type_enum_name">MONOCHROME (v3.3)</span>
17136 <span class="entry_type_enum_optional">[optional]</span>
17137 <span class="entry_type_enum_notes"><p>The camera device is a monochrome camera that doesn't contain a color filter array,<wbr/>
Hidenari Koshimae9dcd0a52018-04-13 09:42:27 +090017138and the pixel values on U and V planes are all 128.<wbr/></p></span>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070017139 </li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017140 </ul>
17141
17142 </td> <!-- entry_type -->
17143
17144 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070017145 <p>List of capabilities that this camera device
Igor Murashkin57d570d2014-02-06 15:35:37 -080017146advertises as fully supporting.<wbr/></p>
17147 </td>
17148
17149 <td class="entry_units">
17150 </td>
17151
17152 <td class="entry_range">
17153 </td>
17154
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017155 <td class="entry_hal_version">
17156 <p>3.<wbr/>2</p>
17157 </td>
17158
Igor Murashkin57d570d2014-02-06 15:35:37 -080017159 <td class="entry_tags">
17160 </td>
17161
17162 </tr>
17163 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017164 <th class="th_details" colspan="6">Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017165 </tr>
17166 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017167 <td class="entry_details" colspan="6">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017168 <p>A capability is a contract that the camera device makes in order
17169to be able to satisfy one or more use cases.<wbr/></p>
17170<p>Listing a capability guarantees that the whole set of features
17171required to support a common use will all be available.<wbr/></p>
17172<p>Using a subset of the functionality provided by an unsupported
17173capability may be possible on a specific camera device implementation;
17174to do this query each of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a>,<wbr/>
17175<a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a>,<wbr/>
17176<a href="#static_android.request.availableCharacteristicsKeys">android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017177<p>The following capabilities are guaranteed to be available on
17178<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL devices:</p>
17179<ul>
17180<li>MANUAL_<wbr/>SENSOR</li>
Zhijun He5a1276a2014-06-02 16:46:03 -070017181<li>MANUAL_<wbr/>POST_<wbr/>PROCESSING</li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017182</ul>
17183<p>Other capabilities may be available on either FULL or LIMITED
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070017184devices,<wbr/> but the application should query this key to be sure.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017185 </td>
17186 </tr>
17187
17188 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017189 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017190 </tr>
17191 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017192 <td class="entry_details" colspan="6">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017193 <p>Additional constraint details per-capability will be available
17194in the Compatibility Test Suite.<wbr/></p>
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070017195<p>Minimum baseline requirements required for the
17196BACKWARD_<wbr/>COMPATIBLE capability are not explicitly listed.<wbr/>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017197Instead refer to "BC" tags and the camera CTS tests in the
Eino-Ville Talvala3310f822014-07-09 09:34:05 -070017198android.<wbr/>hardware.<wbr/>camera2.<wbr/>cts package.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017199<p>Listed controls that can be either request or result (e.<wbr/>g.<wbr/>
17200<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) must be available both in the
17201request and the result in order to be considered to be
17202capability-compliant.<wbr/></p>
17203<p>For example,<wbr/> if the HAL claims to support MANUAL control,<wbr/>
17204then exposure time must be configurable via the request <em>and</em>
17205the actual exposure applied must be available via
17206the result.<wbr/></p>
Ruben Brunk6285c4d2014-06-18 17:13:19 -070017207<p>If MANUAL_<wbr/>SENSOR is omitted,<wbr/> the HAL may choose to omit the
17208<a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> static property entirely.<wbr/></p>
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070017209<p>For PRIVATE_<wbr/>REPROCESSING and YUV_<wbr/>REPROCESSING capabilities,<wbr/> see
Zhijun He41d6f042015-01-15 18:17:24 -080017210hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more information.<wbr/></p>
Yin-Chia Yehfa2a8672015-04-24 16:52:26 -070017211<p>Devices that support the MANUAL_<wbr/>SENSOR capability must support the
17212CAMERA3_<wbr/>TEMPLATE_<wbr/>MANUAL template defined in camera3.<wbr/>h.<wbr/></p>
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070017213<p>Devices that support the PRIVATE_<wbr/>REPROCESSING capability or the
Yin-Chia Yehfa2a8672015-04-24 16:52:26 -070017214YUV_<wbr/>REPROCESSING capability must support the
17215CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template defined in camera3.<wbr/>h.<wbr/></p>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070017216<p>For DEPTH_<wbr/>OUTPUT,<wbr/> the depth-format keys
17217<a href="#static_android.depth.availableDepthStreamConfigurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stream<wbr/>Configurations</a>,<wbr/>
17218<a href="#static_android.depth.availableDepthMinFrameDurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Min<wbr/>Frame<wbr/>Durations</a>,<wbr/>
17219<a href="#static_android.depth.availableDepthStallDurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stall<wbr/>Durations</a> must be available,<wbr/> in
17220addition to the other keys explicitly mentioned in the DEPTH_<wbr/>OUTPUT
17221enum notes.<wbr/> The entry <a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a> must be available
17222if the DEPTH_<wbr/>POINT_<wbr/>CLOUD format is supported (HAL pixel format BLOB,<wbr/> dataspace
17223DEPTH).<wbr/></p>
Shuzhen Wang0144f582017-11-30 12:03:37 -080017224<p>For a camera device with LOGICAL_<wbr/>MULTI_<wbr/>CAMERA capability,<wbr/> it should operate in the
17225same way as a physical camera device based on its hardware level and capabilities.<wbr/>
17226It's recommended that its feature set is superset of that of individual physical cameras.<wbr/></p>
Shuzhen Wang1a5092e2018-05-23 09:07:11 -070017227<ul>
17228<li>
17229<p>In camera1 API,<wbr/> to maintain application compatibility,<wbr/> for each {logical_<wbr/>camera_<wbr/>id,<wbr/>
17230physical_<wbr/>camera_<wbr/>1_<wbr/>id,<wbr/> physical_<wbr/>camera_<wbr/>2_<wbr/>id,<wbr/> ...<wbr/>} combination,<wbr/> where logical_<wbr/>camera_<wbr/>id
17231is composed of physical_<wbr/>camera_<wbr/>N_<wbr/>id,<wbr/> camera framework will only advertise one camera id
17232(within the combination) that is frontmost in the HAL published camera id list.<wbr/></p>
17233</li>
17234<li>
17235<p>Camera HAL is strongly recommended to advertise camera devices with best feature,<wbr/>
17236power,<wbr/> performance,<wbr/> and latency tradeoffs at the front of the camera id list.<wbr/></p>
17237</li>
17238</ul>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070017239<p>For MONOCHROME,<wbr/> the camera device must also advertise BACKWARD_<wbr/>COMPATIBLE capability,<wbr/> and
17240it is exclusive of both RAW and MANUAL_<wbr/>POST_<wbr/>PROCESSING capabilities:</p>
17241<ul>
17242<li>
17243<p>To maintain backward compatibility,<wbr/> the camera device must support all
17244BACKWARD_<wbr/>COMPATIBLE required keys.<wbr/> The <a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a> key only contains
17245AUTO,<wbr/> and <a href="#dynamic_android.control.awbState">android.<wbr/>control.<wbr/>awb<wbr/>State</a> are either CONVERGED or LOCKED depending on
17246<a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>.<wbr/></p>
17247</li>
17248<li>
17249<p>A monochrome device doesn't need to advertise DNG related optional metadata tags.<wbr/></p>
17250</li>
17251<li>
17252<p><a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>,<wbr/> <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> and
17253<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are not applicable.<wbr/> So the camera device cannot
17254be a FULL device.<wbr/> However,<wbr/> the HAL can still advertise other individual capabilites.<wbr/></p>
17255</li>
17256<li>
17257<p>If the device supports tonemap control,<wbr/> only <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> is used.<wbr/>
17258CurveGreen and curveBlue are no-ops.<wbr/></p>
17259</li>
17260</ul>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017261 </td>
17262 </tr>
17263
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017264 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017265 <!-- end of entry -->
17266
17267
17268 <tr class="entry" id="static_android.request.availableRequestKeys">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017269 <td class="entry_name
17270 " rowspan="5">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017271 android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys
17272 </td>
17273 <td class="entry_type">
17274 <span class="entry_type_name">int32</span>
17275 <span class="entry_type_container">x</span>
17276
17277 <span class="entry_type_array">
17278 n
17279 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070017280 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017281
17282
Igor Murashkinca256272014-10-02 15:27:09 -070017283 <span class="entry_type_hwlevel">[legacy] </span>
17284
Igor Murashkin6c936c12014-05-13 14:51:49 -070017285
17286
17287
Igor Murashkin57d570d2014-02-06 15:35:37 -080017288 </td> <!-- entry_type -->
17289
17290 <td class="entry_description">
17291 <p>A list of all keys that the camera device has available
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070017292to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html">CaptureRequest</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017293 </td>
17294
17295 <td class="entry_units">
17296 </td>
17297
17298 <td class="entry_range">
17299 </td>
17300
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017301 <td class="entry_hal_version">
17302 <p>3.<wbr/>2</p>
17303 </td>
17304
Igor Murashkin57d570d2014-02-06 15:35:37 -080017305 <td class="entry_tags">
17306 </td>
17307
17308 </tr>
17309 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017310 <th class="th_details" colspan="6">Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017311 </tr>
17312 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017313 <td class="entry_details" colspan="6">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017314 <p>Attempting to set a key into a CaptureRequest that is not
17315listed here will result in an invalid request and will be rejected
17316by the camera device.<wbr/></p>
17317<p>This field can be used to query the feature set of a camera device
17318at a more granular level than capabilities.<wbr/> This is especially
17319important for optional keys that are not listed under any capability
17320in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017321 </td>
17322 </tr>
17323
17324 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017325 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017326 </tr>
17327 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017328 <td class="entry_details" colspan="6">
Emilian Peev39847542017-09-25 09:17:04 +010017329 <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
17330use the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017331<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
17332vendor extensions API and not against this field.<wbr/></p>
17333<p>The HAL must not consume any request tags that are not listed either
17334here or in the vendor tag list.<wbr/></p>
17335<p>The public camera2 API will always make the vendor tags visible
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070017336via
17337<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureRequestKeys">CameraCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017338 </td>
17339 </tr>
17340
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017341 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017342 <!-- end of entry -->
17343
17344
17345 <tr class="entry" id="static_android.request.availableResultKeys">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017346 <td class="entry_name
17347 " rowspan="5">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017348 android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys
17349 </td>
17350 <td class="entry_type">
17351 <span class="entry_type_name">int32</span>
17352 <span class="entry_type_container">x</span>
17353
17354 <span class="entry_type_array">
17355 n
17356 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070017357 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017358
17359
Igor Murashkinca256272014-10-02 15:27:09 -070017360 <span class="entry_type_hwlevel">[legacy] </span>
17361
Igor Murashkin6c936c12014-05-13 14:51:49 -070017362
17363
17364
Igor Murashkin57d570d2014-02-06 15:35:37 -080017365 </td> <!-- entry_type -->
17366
17367 <td class="entry_description">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017368 <p>A list of all keys that the camera device has available to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">CaptureResult</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017369 </td>
17370
17371 <td class="entry_units">
17372 </td>
17373
17374 <td class="entry_range">
17375 </td>
17376
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017377 <td class="entry_hal_version">
17378 <p>3.<wbr/>2</p>
17379 </td>
17380
Igor Murashkin57d570d2014-02-06 15:35:37 -080017381 <td class="entry_tags">
17382 </td>
17383
17384 </tr>
17385 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017386 <th class="th_details" colspan="6">Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017387 </tr>
17388 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017389 <td class="entry_details" colspan="6">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017390 <p>Attempting to get a key from a CaptureResult that is not
17391listed here will always return a <code>null</code> value.<wbr/> Getting a key from
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070017392a CaptureResult that is listed here will generally never return a <code>null</code>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017393value.<wbr/></p>
17394<p>The following keys may return <code>null</code> unless they are enabled:</p>
17395<ul>
17396<li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> (non-null iff <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON)</li>
17397</ul>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070017398<p>(Those sometimes-null keys will nevertheless be listed here
Igor Murashkin57d570d2014-02-06 15:35:37 -080017399if they are available.<wbr/>)</p>
17400<p>This field can be used to query the feature set of a camera device
17401at a more granular level than capabilities.<wbr/> This is especially
17402important for optional keys that are not listed under any capability
17403in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017404 </td>
17405 </tr>
17406
17407 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017408 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017409 </tr>
17410 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017411 <td class="entry_details" colspan="6">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017412 <p>Tags listed here must always have an entry in the result metadata,<wbr/>
17413even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
17414matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
Emilian Peev39847542017-09-25 09:17:04 +010017415<p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
17416use the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017417<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
17418vendor extensions API and not against this field.<wbr/></p>
17419<p>The HAL must not produce any result tags that are not listed either
17420here or in the vendor tag list.<wbr/></p>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070017421<p>The public camera2 API will always make the vendor tags visible via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017422 </td>
17423 </tr>
17424
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017425 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017426 <!-- end of entry -->
17427
17428
17429 <tr class="entry" id="static_android.request.availableCharacteristicsKeys">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017430 <td class="entry_name
17431 " rowspan="5">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017432 android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys
17433 </td>
17434 <td class="entry_type">
17435 <span class="entry_type_name">int32</span>
17436 <span class="entry_type_container">x</span>
17437
17438 <span class="entry_type_array">
17439 n
17440 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070017441 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017442
17443
Igor Murashkinca256272014-10-02 15:27:09 -070017444 <span class="entry_type_hwlevel">[legacy] </span>
17445
Igor Murashkin6c936c12014-05-13 14:51:49 -070017446
17447
17448
Igor Murashkin57d570d2014-02-06 15:35:37 -080017449 </td> <!-- entry_type -->
17450
17451 <td class="entry_description">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017452 <p>A list of all keys that the camera device has available to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017453 </td>
17454
17455 <td class="entry_units">
17456 </td>
17457
17458 <td class="entry_range">
17459 </td>
17460
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017461 <td class="entry_hal_version">
17462 <p>3.<wbr/>2</p>
17463 </td>
17464
Igor Murashkin57d570d2014-02-06 15:35:37 -080017465 <td class="entry_tags">
17466 </td>
17467
17468 </tr>
17469 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017470 <th class="th_details" colspan="6">Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017471 </tr>
17472 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017473 <td class="entry_details" colspan="6">
Igor Murashkin57d570d2014-02-06 15:35:37 -080017474 <p>This entry follows the same rules as
17475<a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a> (except that it applies for
17476CameraCharacteristics instead of CaptureResult).<wbr/> See above for more
17477details.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017478 </td>
17479 </tr>
17480
17481 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017482 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017483 </tr>
17484 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017485 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070017486 <p>Keys listed here must always have an entry in the static info metadata,<wbr/>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017487even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
17488matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
Emilian Peev39847542017-09-25 09:17:04 +010017489<p>Vendor tags can listed here.<wbr/> Vendor tag metadata should also use
17490the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017491<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
17492vendor extensions API and not against this field.<wbr/></p>
17493<p>The HAL must not have any tags in its static info that are not listed
17494either here or in the vendor tag list.<wbr/></p>
17495<p>The public camera2 API will always make the vendor tags visible
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070017496via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getKeys">CameraCharacteristics#getKeys</a>.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017497 </td>
17498 </tr>
17499
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017500 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin57d570d2014-02-06 15:35:37 -080017501 <!-- end of entry -->
17502
Emilian Peevb0134d02017-11-17 13:20:12 +000017503
17504 <tr class="entry" id="static_android.request.availableSessionKeys">
17505 <td class="entry_name
17506 " rowspan="5">
17507 android.<wbr/>request.<wbr/>available<wbr/>Session<wbr/>Keys
17508 </td>
17509 <td class="entry_type">
17510 <span class="entry_type_name">int32</span>
17511 <span class="entry_type_container">x</span>
17512
17513 <span class="entry_type_array">
17514 n
17515 </span>
17516 <span class="entry_type_visibility"> [ndk_public]</span>
17517
17518
17519 <span class="entry_type_hwlevel">[legacy] </span>
17520
17521
17522
17523
17524 </td> <!-- entry_type -->
17525
17526 <td class="entry_description">
17527 <p>A subset of the available request keys that the camera device
17528can pass as part of the capture session initialization.<wbr/></p>
17529 </td>
17530
17531 <td class="entry_units">
17532 </td>
17533
17534 <td class="entry_range">
17535 </td>
17536
17537 <td class="entry_hal_version">
Emilian Peev17324ba2018-01-10 13:47:40 +000017538 <p>3.<wbr/>3</p>
Emilian Peevb0134d02017-11-17 13:20:12 +000017539 </td>
17540
17541 <td class="entry_tags">
17542 </td>
17543
17544 </tr>
17545 <tr class="entries_header">
17546 <th class="th_details" colspan="6">Details</th>
17547 </tr>
17548 <tr class="entry_cont">
17549 <td class="entry_details" colspan="6">
17550 <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which
17551contains a list of keys that are difficult to apply per-frame and
17552can result in unexpected delays when modified during the capture session
17553lifetime.<wbr/> Typical examples include parameters that require a
17554time-consuming hardware re-configuration or internal camera pipeline
17555change.<wbr/> For performance reasons we advise clients to pass their initial
Chien-Yu Chen11f62a52018-01-11 11:32:52 -080017556values as part of
Eino-Ville Talvala808558e2017-12-07 13:12:11 -080017557<a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
Emilian Peevb0134d02017-11-17 13:20:12 +000017558Once the camera capture session is enabled it is also recommended to avoid
17559changing them from their initial values set in
17560<a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
17561Control over session parameters can still be exerted in capture requests
17562but clients should be aware and expect delays during their application.<wbr/>
17563An example usage scenario could look like this:</p>
17564<ul>
17565<li>The camera client starts by quering the session parameter key list via
17566 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></li>
17567<li>Before triggering the capture session create sequence,<wbr/> a capture request
17568 must be built via
17569 <a href="https://developer.android.com/reference/CameraDevice.html#createCaptureRequest">CameraDevice#createCaptureRequest</a>
17570 using an appropriate template matching the particular use case.<wbr/></li>
17571<li>The client should go over the list of session parameters and check
17572 whether some of the keys listed matches with the parameters that
17573 they intend to modify as part of the first capture request.<wbr/></li>
17574<li>If there is no such match,<wbr/> the capture request can be passed
17575 unmodified to
17576 <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
17577<li>If matches do exist,<wbr/> the client should update the respective values
17578 and pass the request to
17579 <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
17580<li>After the capture session initialization completes the session parameter
17581 key list can continue to serve as reference when posting or updating
17582 further requests.<wbr/> As mentioned above further changes to session
17583 parameters should ideally be avoided,<wbr/> if updates are necessary
17584 however clients could expect a delay/<wbr/>glitch during the
17585 parameter switch.<wbr/></li>
17586</ul>
17587 </td>
17588 </tr>
17589
17590 <tr class="entries_header">
17591 <th class="th_details" colspan="6">HAL Implementation Details</th>
17592 </tr>
17593 <tr class="entry_cont">
17594 <td class="entry_details" colspan="6">
Emilian Peevfc803e22018-05-15 11:18:04 +010017595 <p>If <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> is part of the session parameters and constrained high
17596speed mode is enabled,<wbr/> then only modifications of the maximum framerate value will be
17597monitored by the framework and can trigger camera re-configuration.<wbr/> For more information
17598about framerate ranges during constrained high speed sessions see
17599<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/>
17600Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
Emilian Peevb0134d02017-11-17 13:20:12 +000017601use the extensions C api (refer to
17602android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Stream<wbr/>Configuration.<wbr/>session<wbr/>Params for more details).<wbr/></p>
17603<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
17604vendor extensions API and not against this field.<wbr/></p>
17605<p>The HAL must not consume any request tags in the session parameters that
17606are not listed either here or in the vendor tag list.<wbr/></p>
17607<p>The public camera2 API will always make the vendor tags visible
17608via
17609<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></p>
17610 </td>
17611 </tr>
17612
17613 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
17614 <!-- end of entry -->
17615
Emilian Peevb52eadf2018-01-18 19:09:57 +000017616
17617 <tr class="entry" id="static_android.request.availablePhysicalCameraRequestKeys">
17618 <td class="entry_name
17619 " rowspan="5">
17620 android.<wbr/>request.<wbr/>available<wbr/>Physical<wbr/>Camera<wbr/>Request<wbr/>Keys
17621 </td>
17622 <td class="entry_type">
17623 <span class="entry_type_name">int32</span>
17624 <span class="entry_type_container">x</span>
17625
17626 <span class="entry_type_array">
17627 n
17628 </span>
17629 <span class="entry_type_visibility"> [hidden]</span>
17630
17631
17632 <span class="entry_type_hwlevel">[limited] </span>
17633
17634
17635
17636
17637 </td> <!-- entry_type -->
17638
17639 <td class="entry_description">
17640 <p>A subset of the available request keys that can be overriden for
17641physical devices backing a logical multi-camera.<wbr/></p>
17642 </td>
17643
17644 <td class="entry_units">
17645 </td>
17646
17647 <td class="entry_range">
17648 </td>
17649
17650 <td class="entry_hal_version">
17651 <p>3.<wbr/>3</p>
17652 </td>
17653
17654 <td class="entry_tags">
17655 </td>
17656
17657 </tr>
17658 <tr class="entries_header">
17659 <th class="th_details" colspan="6">Details</th>
17660 </tr>
17661 <tr class="entry_cont">
17662 <td class="entry_details" colspan="6">
17663 <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which contains a list
17664of keys that can be overriden using <a href="https://developer.android.com/reference/CaptureRequest/Builder.html#setPhysicalCameraKey">Builder#setPhysicalCameraKey</a>.<wbr/>
17665The respective value of such request key can be obtained by calling
17666<a href="https://developer.android.com/reference/CaptureRequest/Builder.html#getPhysicalCameraKey">Builder#getPhysicalCameraKey</a>.<wbr/> Capture requests that contain
17667individual physical device requests must be built via
Emilian Peev62d01d52018-02-06 16:08:38 +000017668<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureRequest(int,">Set)</a>.<wbr/></p>
Emilian Peevb52eadf2018-01-18 19:09:57 +000017669 </td>
17670 </tr>
17671
17672 <tr class="entries_header">
17673 <th class="th_details" colspan="6">HAL Implementation Details</th>
17674 </tr>
17675 <tr class="entry_cont">
17676 <td class="entry_details" colspan="6">
17677 <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
17678use the extensions C api (refer to
17679android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Capture<wbr/>Request.<wbr/>physical<wbr/>Camera<wbr/>Settings for more
17680details).<wbr/></p>
17681<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
17682vendor extensions API and not against this field.<wbr/></p>
17683<p>The HAL must not consume any request tags in the session parameters that
17684are not listed either here or in the vendor tag list.<wbr/></p>
Emilian Peev62d01d52018-02-06 16:08:38 +000017685<p>There should be no overlap between this set of keys and the available session keys
17686<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a> along
17687with any other controls that can have impact on the dual-camera sync.<wbr/></p>
Emilian Peevb52eadf2018-01-18 19:09:57 +000017688<p>The public camera2 API will always make the vendor tags visible
17689via
17690<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailablePhysicalCameraRequestKeys">CameraCharacteristics#getAvailablePhysicalCameraRequestKeys</a>.<wbr/></p>
17691 </td>
17692 </tr>
17693
17694 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
17695 <!-- end of entry -->
17696
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017697
17698
17699 <!-- end of kind -->
17700 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017701 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017702
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070017703 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017704 <tr>
17705 <th class="th_name">Property Name</th>
17706 <th class="th_type">Type</th>
17707 <th class="th_description">Description</th>
17708 <th class="th_units">Units</th>
17709 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017710 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017711 <th class="th_tags">Tags</th>
17712 </tr>
17713 </thead>
17714
17715 <tbody>
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726 <tr class="entry" id="dynamic_android.request.frameCount">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017727 <td class="entry_name
Igor Murashkin757ec242014-07-25 16:55:18 -070017728 entry_name_deprecated
Igor Murashkin6c936c12014-05-13 14:51:49 -070017729 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080017730 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017731 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017732 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080017733 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017734
Igor Murashkin757ec242014-07-25 16:55:18 -070017735 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017736
17737
Igor Murashkinca256272014-10-02 15:27:09 -070017738
Igor Murashkin757ec242014-07-25 16:55:18 -070017739 <span class="entry_type_deprecated">[deprecated] </span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070017740
17741
17742
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017743 </td> <!-- entry_type -->
17744
17745 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080017746 <p>A frame counter set by the framework.<wbr/> This value monotonically
17747increases with every new result (that is,<wbr/> each new result has a unique
17748frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017749 </td>
17750
17751 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080017752 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017753 </td>
17754
17755 <td class="entry_range">
Igor Murashkin757ec242014-07-25 16:55:18 -070017756 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080017757 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017758 </td>
17759
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017760 <td class="entry_hal_version">
17761 <p>3.<wbr/>2</p>
17762 </td>
17763
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017764 <td class="entry_tags">
17765 </td>
17766
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017767 </tr>
17768 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017769 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017770 </tr>
17771 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017772 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080017773 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017774 </td>
17775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017776
17777
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017778 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017780
17781
17782 <tr class="entry" id="dynamic_android.request.id">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017783 <td class="entry_name
17784 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080017785 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017786 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017787 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080017788 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017789
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070017790 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017791
17792
Igor Murashkin6c936c12014-05-13 14:51:49 -070017793
17794
17795
Igor Murashkinca256272014-10-02 15:27:09 -070017796
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017797 </td> <!-- entry_type -->
17798
17799 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080017800 <p>An application-specified ID for the current
17801request.<wbr/> Must be maintained unchanged in output
17802frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017803 </td>
17804
17805 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080017806 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017807 </td>
17808
17809 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080017810 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017811 </td>
17812
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017813 <td class="entry_hal_version">
17814 <p>3.<wbr/>2</p>
17815 </td>
17816
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017817 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080017818 <ul class="entry_tags">
17819 <li><a href="#tag_V1">V1</a></li>
17820 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017821 </td>
17822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017823 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017824
17825
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017826 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017827 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017828
17829
17830 <tr class="entry" id="dynamic_android.request.metadataMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017831 <td class="entry_name
17832 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080017833 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017834 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017835 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080017836 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017837
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070017838 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017839
Igor Murashkin6c936c12014-05-13 14:51:49 -070017840
17841
17842
Igor Murashkinca256272014-10-02 15:27:09 -070017843
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017844 <ul class="entry_type_enum">
17845 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080017846 <span class="entry_type_enum_name">NONE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080017847 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
17848for application-bound buffer data.<wbr/> If no
17849application-bound streams exist,<wbr/> no frame should be
17850placed in the output frame queue.<wbr/> If such streams
17851exist,<wbr/> a frame should be placed on the output queue
17852with null metadata but with the necessary output buffer
17853information.<wbr/> Timestamp information should still be
17854included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017855 </li>
17856 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080017857 <span class="entry_type_enum_name">FULL (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080017858 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
17859only be produced if they are separately
17860enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017861 </li>
17862 </ul>
17863
17864 </td> <!-- entry_type -->
17865
17866 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080017867 <p>How much metadata to produce on
17868output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017869 </td>
17870
17871 <td class="entry_units">
17872 </td>
17873
17874 <td class="entry_range">
17875 </td>
17876
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017877 <td class="entry_hal_version">
17878 <p>3.<wbr/>2</p>
17879 </td>
17880
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017881 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070017882 <ul class="entry_tags">
17883 <li><a href="#tag_FUTURE">FUTURE</a></li>
17884 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017885 </td>
17886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017887 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017888
17889
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017890 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017891 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017892
17893
17894 <tr class="entry" id="dynamic_android.request.outputStreams">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017895 <td class="entry_name
17896 entry_name_deprecated
17897 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080017898 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017899 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017900 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -070017901 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070017902 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017903
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070017904 <span class="entry_type_array">
17905 n
17906 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070017907 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017908
17909
Igor Murashkinca256272014-10-02 15:27:09 -070017910
Igor Murashkin6c936c12014-05-13 14:51:49 -070017911 <span class="entry_type_deprecated">[deprecated] </span>
17912
17913
17914
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017915 </td> <!-- entry_type -->
17916
17917 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080017918 <p>Lists which camera output streams image data
17919from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017920 </td>
17921
17922 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080017923 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017924 </td>
17925
17926 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017927 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
17928 <p>List must only include streams that have been
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080017929created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017930 </td>
17931
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017932 <td class="entry_hal_version">
17933 <p>3.<wbr/>2</p>
17934 </td>
17935
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017936 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070017937 <ul class="entry_tags">
17938 <li><a href="#tag_HAL2">HAL2</a></li>
17939 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017940 </td>
17941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017942 </tr>
17943 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017944 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017945 </tr>
17946 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017947 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080017948 <p>If no output streams are listed,<wbr/> then the image
17949data should simply be discarded.<wbr/> The image data must
17950still be captured for metadata and statistics production,<wbr/>
17951and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017952 </td>
17953 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080017954
17955
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017956 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080017957 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080017958
Igor Murashkina46e02f2014-01-09 17:43:38 -080017959
17960 <tr class="entry" id="dynamic_android.request.pipelineDepth">
Igor Murashkin6c936c12014-05-13 14:51:49 -070017961 <td class="entry_name
17962 " rowspan="5">
Igor Murashkina46e02f2014-01-09 17:43:38 -080017963 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
17964 </td>
17965 <td class="entry_type">
17966 <span class="entry_type_name">byte</span>
17967
17968 <span class="entry_type_visibility"> [public]</span>
17969
17970
Igor Murashkinca256272014-10-02 15:27:09 -070017971 <span class="entry_type_hwlevel">[legacy] </span>
17972
Igor Murashkin6c936c12014-05-13 14:51:49 -070017973
17974
17975
Igor Murashkina46e02f2014-01-09 17:43:38 -080017976 </td> <!-- entry_type -->
17977
17978 <td class="entry_description">
17979 <p>Specifies the number of pipeline stages the frame went
17980through from when it was exposed to when the final completed result
17981was available to the framework.<wbr/></p>
17982 </td>
17983
17984 <td class="entry_units">
17985 </td>
17986
17987 <td class="entry_range">
17988 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
17989 </td>
17990
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080017991 <td class="entry_hal_version">
17992 <p>3.<wbr/>2</p>
17993 </td>
17994
Igor Murashkina46e02f2014-01-09 17:43:38 -080017995 <td class="entry_tags">
17996 </td>
17997
17998 </tr>
17999 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018000 <th class="th_details" colspan="6">Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080018001 </tr>
18002 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018003 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080018004 <p>Depending on what settings are used in the request,<wbr/> and
18005what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
18006and some pipeline stages skipped.<wbr/></p>
18007<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
18008 </td>
18009 </tr>
18010
18011 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018012 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080018013 </tr>
18014 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018015 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080018016 <p>This value must always represent the accurate count of how many
18017pipeline stages were actually used.<wbr/></p>
18018 </td>
18019 </tr>
18020
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018021 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080018022 <!-- end of entry -->
18023
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018024
18025
18026 <!-- end of kind -->
18027 </tbody>
18028
18029 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018030 <tr><td colspan="7" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018031
18032
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018033 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018034
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070018035 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018036 <tr>
18037 <th class="th_name">Property Name</th>
18038 <th class="th_type">Type</th>
18039 <th class="th_description">Description</th>
18040 <th class="th_units">Units</th>
18041 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018042 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018043 <th class="th_tags">Tags</th>
18044 </tr>
18045 </thead>
18046
18047 <tbody>
18048
18049
18050
18051
18052
18053
18054
18055
18056
18057
18058 <tr class="entry" id="controls_android.scaler.cropRegion">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018059 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018060 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080018061 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018062 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018063 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018064 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018065 <span class="entry_type_container">x</span>
18066
18067 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070018068 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018069 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070018070 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018071
18072
Igor Murashkinca256272014-10-02 15:27:09 -070018073 <span class="entry_type_hwlevel">[legacy] </span>
18074
Igor Murashkin6c936c12014-05-13 14:51:49 -070018075
18076
18077
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018078 </td> <!-- entry_type -->
18079
18080 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018081 <p>The desired region of the sensor to read out for this capture.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018082 </td>
18083
18084 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018085 Pixel coordinates relative to
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018086 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018087 </td>
18088
18089 <td class="entry_range">
18090 </td>
18091
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018092 <td class="entry_hal_version">
18093 <p>3.<wbr/>2</p>
18094 </td>
18095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018096 <td class="entry_tags">
18097 <ul class="entry_tags">
18098 <li><a href="#tag_BC">BC</a></li>
18099 </ul>
18100 </td>
18101
18102 </tr>
18103 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018104 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018105 </tr>
18106 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018107 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018108 <p>This control can be used to implement digital zoom.<wbr/></p>
18109<p>The crop region coordinate system is based off
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018110<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with <code>(0,<wbr/> 0)</code> being the
18111top-left corner of the sensor active array.<wbr/></p>
18112<p>Output streams use this rectangle to produce their output,<wbr/>
18113cropping to a smaller region if necessary to maintain the
18114stream's aspect ratio,<wbr/> then scaling the sensor input to
18115match the output's configured resolution.<wbr/></p>
18116<p>The crop region is applied after the RAW to other color
18117space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
18118(e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
18119croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
Zhijun He507458b2014-05-21 11:11:10 -070018120<p>For non-raw streams,<wbr/> any additional per-stream cropping will
18121be done to maximize the final pixel area of the stream.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080018122<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018123ratio,<wbr/> then 4:3 streams will use the exact crop
18124region.<wbr/> 16:9 streams will further crop vertically
Igor Murashkin0b080452013-12-27 15:30:25 -080018125(letterbox).<wbr/></p>
18126<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018127outputs will crop horizontally (pillarbox),<wbr/> and 16:9
18128streams will match exactly.<wbr/> These additional crops will
Igor Murashkin0b080452013-12-27 15:30:25 -080018129be centered within the crop region.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018130<p>The width and height of the crop region cannot
18131be set to be smaller than
18132<code>floor( activeArraySize.<wbr/>width /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code> and
18133<code>floor( activeArraySize.<wbr/>height /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code>,<wbr/> respectively.<wbr/></p>
18134<p>The camera device may adjust the crop region to account
18135for rounding and other hardware requirements; the final
18136crop region used will be included in the output capture
18137result.<wbr/></p>
18138 </td>
18139 </tr>
18140
18141 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018142 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018143 </tr>
18144 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018145 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018146 <p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080018147times,<wbr/> no matter what the relative aspect ratios of the
18148crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080018149corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080018150larger than active pixel array.<wbr/> Width and height may be
18151rounded to nearest larger supportable width,<wbr/> especially
18152for raw output,<wbr/> where only a few fixed scales may be
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018153possible.<wbr/></p>
Zhijun He7defc682015-05-22 17:04:15 -070018154<p>For a set of output streams configured,<wbr/> if the sensor output is cropped to a smaller
18155size than active array size,<wbr/> the HAL need follow below cropping rules:</p>
18156<ul>
18157<li>
18158<p>The HAL need handle the cropRegion as if the sensor crop size is the effective active
18159array size.<wbr/>More specifically,<wbr/> the HAL must transform the request cropRegion from
18160<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> to the sensor cropped pixel area size in this way:</p>
18161<ol>
18162<li>Translate the requested cropRegion w.<wbr/>r.<wbr/>t.,<wbr/> the left top corner of the sensor
18163cropped pixel area by (tx,<wbr/> ty),<wbr/>
Shuzhen Wang4db8bb82018-06-06 17:21:54 -070018164where <code>ty = sensorCrop.<wbr/>top * (sensorCrop.<wbr/>height /<wbr/> activeArraySize.<wbr/>height)</code>
Zhijun He7defc682015-05-22 17:04:15 -070018165and <code>tx = sensorCrop.<wbr/>left * (sensorCrop.<wbr/>width /<wbr/> activeArraySize.<wbr/>width)</code>.<wbr/> The
18166(sensorCrop.<wbr/>top,<wbr/> sensorCrop.<wbr/>left) is the coordinate based off the
18167<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
18168<li>Scale the width and height of requested cropRegion with scaling factor of
18169sensor<wbr/>Crop.<wbr/>width/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>width and sensor<wbr/>Crop.<wbr/>height/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>height
18170respectively.<wbr/>
18171Once this new cropRegion is calculated,<wbr/> the HAL must use this region to crop the image
18172with regard to the sensor crop size (effective active array size).<wbr/> The HAL still need
18173follow the general cropping rule for this new cropRegion and effective active
18174array size.<wbr/></li>
18175</ol>
18176</li>
18177<li>
18178<p>The HAL must report the cropRegion with regard to <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>
18179The HAL need convert the new cropRegion generated above w.<wbr/>r.<wbr/>t.,<wbr/> full active array size.<wbr/>
18180The reported cropRegion may be slightly different with the requested cropRegion since
18181the HAL may adjust the crop region to account for rounding,<wbr/> conversion error,<wbr/> or other
18182hardware limitations.<wbr/></p>
18183</li>
18184</ul>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070018185<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018186 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018187 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018188
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018189 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018190 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018191
18192
18193
18194 <!-- end of kind -->
18195 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018196 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018197
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070018198 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018199 <tr>
18200 <th class="th_name">Property Name</th>
18201 <th class="th_type">Type</th>
18202 <th class="th_description">Description</th>
18203 <th class="th_units">Units</th>
18204 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018205 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018206 <th class="th_tags">Tags</th>
18207 </tr>
18208 </thead>
18209
18210 <tbody>
18211
18212
18213
18214
18215
18216
18217
18218
18219
18220
18221 <tr class="entry" id="static_android.scaler.availableFormats">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018222 <td class="entry_name
18223 entry_name_deprecated
18224 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080018225 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018226 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018227 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018228 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018229 <span class="entry_type_container">x</span>
18230
18231 <span class="entry_type_array">
18232 n
18233 </span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070018234 <span class="entry_type_visibility"> [hidden as imageFormat]</span>
18235
18236
Igor Murashkinca256272014-10-02 15:27:09 -070018237
Igor Murashkin6c936c12014-05-13 14:51:49 -070018238 <span class="entry_type_deprecated">[deprecated] </span>
18239
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018240
18241 <ul class="entry_type_enum">
18242 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018243 <span class="entry_type_enum_name">RAW16 (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018244 <span class="entry_type_enum_optional">[optional]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018245 <span class="entry_type_enum_value">0x20</span>
Ruben Brunk8f48c182014-02-04 18:27:20 -080018246 <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018247buffers with 16-bit pixels.<wbr/></p>
18248<p>Buffers of this format are typically expected to have a
18249Bayer Color Filter Array (CFA) layout,<wbr/> which is given in
18250<a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors with
18251CFAs that are not representable by a format in
18252<a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not
18253use this format.<wbr/></p>
Ruben Brunk8f48c182014-02-04 18:27:20 -080018254<p>Buffers of this format will also follow the constraints given for
18255RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
Ruben Brunkae4f9c02015-06-12 16:43:51 -070018256<p>This format is intended to give users access to the full contents
18257of the buffers coming directly from the image sensor prior to any
18258cropping or scaling operations,<wbr/> and all coordinate systems for
18259metadata used for this format are relative to the size of the
18260active region of the image sensor before any geometric distortion
18261correction has been applied (i.<wbr/>e.<wbr/>
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070018262<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>).<wbr/> Supported
Ruben Brunkae4f9c02015-06-12 16:43:51 -070018263dimensions for this format are limited to the full dimensions of
18264the sensor (e.<wbr/>g.<wbr/> either <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
Eino-Ville Talvala7d09eff2015-06-16 11:36:01 -070018265<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> will be the
Ruben Brunkae4f9c02015-06-12 16:43:51 -070018266only supported output size).<wbr/></p>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080018267<p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for
18268the full set of performance guarantees.<wbr/></p></span>
Ruben Brunk8f48c182014-02-04 18:27:20 -080018269 </li>
18270 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018271 <span class="entry_type_enum_name">RAW_OPAQUE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018272 <span class="entry_type_enum_optional">[optional]</span>
Ruben Brunk8f48c182014-02-04 18:27:20 -080018273 <span class="entry_type_enum_value">0x24</span>
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080018274 <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE (or
18275<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_PRIVATE">RAW_<wbr/>PRIVATE</a>
18276as referred in public API) is a format for raw image buffers
18277coming from an image sensor.<wbr/></p>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018278<p>The actual structure of buffers of this format is
Ruben Brunk8f48c182014-02-04 18:27:20 -080018279platform-specific,<wbr/> but must follow several constraints:</p>
18280<ol>
18281<li>No image post-processing operations may have been applied to
18282buffers of this type.<wbr/> These buffers contain raw image data coming
18283directly from the image sensor.<wbr/></li>
18284<li>If a buffer of this format is passed to the camera device for
18285reprocessing,<wbr/> the resulting images will be identical to the images
18286produced if the buffer had come directly from the sensor and was
18287processed with the same settings.<wbr/></li>
18288</ol>
18289<p>The intended use for this format is to allow access to the native
18290raw format buffers coming directly from the camera sensor without
18291any additional conversions or decrease in framerate.<wbr/></p>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080018292<p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for the full set of
Ruben Brunk8f48c182014-02-04 18:27:20 -080018293performance guarantees.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018294 </li>
18295 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018296 <span class="entry_type_enum_name">YV12 (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018297 <span class="entry_type_enum_optional">[optional]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018298 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080018299 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018300 </li>
18301 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018302 <span class="entry_type_enum_name">YCrCb_420_SP (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018303 <span class="entry_type_enum_optional">[optional]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018304 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080018305 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018306 </li>
18307 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018308 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED (v3.2)</span>
Zhijun Hec2eebff2013-05-16 17:49:35 -070018309 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -080018310 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -070018311 </li>
18312 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018313 <span class="entry_type_enum_name">YCbCr_420_888 (v3.2)</span>
Zhijun Hec2eebff2013-05-16 17:49:35 -070018314 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080018315 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -070018316 </li>
18317 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080018318 <span class="entry_type_enum_name">BLOB (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018319 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -080018320 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018321 </li>
18322 </ul>
18323
18324 </td> <!-- entry_type -->
18325
18326 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080018327 <p>The list of image formats that are supported by this
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018328camera device for output streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018329 </td>
18330
18331 <td class="entry_units">
18332 </td>
18333
18334 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018335 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018336 </td>
18337
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018338 <td class="entry_hal_version">
18339 <p>3.<wbr/>2</p>
18340 </td>
18341
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018342 <td class="entry_tags">
18343 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080018344 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018345 </ul>
18346 </td>
18347
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018348 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080018349 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018350 <th class="th_details" colspan="6">Details</th>
Zhijun Heb8317e22014-01-16 09:47:07 -080018351 </tr>
18352 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018353 <td class="entry_details" colspan="6">
Zhijun Heb8317e22014-01-16 09:47:07 -080018354 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
18355<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
18356 </td>
18357 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018358
Zhijun Heb8317e22014-01-16 09:47:07 -080018359 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018360 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Heb8317e22014-01-16 09:47:07 -080018361 </tr>
18362 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018363 <td class="entry_details" colspan="6">
Zhijun Heb8317e22014-01-16 09:47:07 -080018364 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
18365system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
18366<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
18367gralloc module will select a format based on the usage flags provided
18368by the camera HAL device and the other endpoint of the stream.<wbr/> It is
18369usually used by preview and recording streams,<wbr/> where the application doesn't
18370need access the image data.<wbr/></p>
18371<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
18372needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
18373<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
Ruben Brunk8f48c182014-02-04 18:27:20 -080018374<p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
18375recommended that any information used by the camera device when
18376processing images is fully expressed by the result metadata
18377for that image buffer.<wbr/></p>
Zhijun Heb8317e22014-01-16 09:47:07 -080018378 </td>
18379 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018380
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018381 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018382 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018383
18384
18385 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018386 <td class="entry_name
18387 entry_name_deprecated
18388 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080018389 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018390 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018391 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018392 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018393 <span class="entry_type_container">x</span>
18394
18395 <span class="entry_type_array">
18396 n
18397 </span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070018398 <span class="entry_type_visibility"> [hidden]</span>
18399
18400
Igor Murashkinca256272014-10-02 15:27:09 -070018401
Igor Murashkin6c936c12014-05-13 14:51:49 -070018402 <span class="entry_type_deprecated">[deprecated] </span>
18403
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018404
18405
18406 </td> <!-- entry_type -->
18407
18408 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080018409 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080018410for 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 -080018411 </td>
18412
18413 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018414 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018415 </td>
18416
18417 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018418 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
18419 <p>TODO: Remove property.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018420 </td>
18421
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018422 <td class="entry_hal_version">
18423 <p>3.<wbr/>2</p>
18424 </td>
18425
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018426 <td class="entry_tags">
18427 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080018428 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018429 </ul>
18430 </td>
18431
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018432 </tr>
18433 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018434 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018435 </tr>
18436 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018437 <td class="entry_details" colspan="6">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080018438 <p>This corresponds to the minimum steady-state frame duration when only
18439that JPEG stream is active and captured in a burst,<wbr/> with all
18440processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
18441<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018442frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080018443durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018444 </td>
18445 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018446
18447
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018448 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018449 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018450
18451
18452 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018453 <td class="entry_name
18454 entry_name_deprecated
18455 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080018456 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018457 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018458 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018459 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018460 <span class="entry_type_container">x</span>
18461
18462 <span class="entry_type_array">
18463 n x 2
18464 </span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070018465 <span class="entry_type_visibility"> [hidden as size]</span>
18466
18467
Igor Murashkinca256272014-10-02 15:27:09 -070018468
Igor Murashkin6c936c12014-05-13 14:51:49 -070018469 <span class="entry_type_deprecated">[deprecated] </span>
18470
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018471
18472
18473 </td> <!-- entry_type -->
18474
18475 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080018476 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018477 </td>
18478
18479 <td class="entry_units">
18480 </td>
18481
18482 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018483 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
18484 <p>TODO: Remove property.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018485 </td>
18486
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018487 <td class="entry_hal_version">
18488 <p>3.<wbr/>2</p>
18489 </td>
18490
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018491 <td class="entry_tags">
18492 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080018493 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018494 </ul>
18495 </td>
18496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018497 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080018498 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018499 <th class="th_details" colspan="6">Details</th>
Zhijun Heb8317e22014-01-16 09:47:07 -080018500 </tr>
18501 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018502 <td class="entry_details" colspan="6">
Zhijun Heb8317e22014-01-16 09:47:07 -080018503 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
18504sensor 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>
18505 </td>
18506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018507
Zhijun Heb8317e22014-01-16 09:47:07 -080018508 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018509 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Heb8317e22014-01-16 09:47:07 -080018510 </tr>
18511 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018512 <td class="entry_details" colspan="6">
Zhijun Heb8317e22014-01-16 09:47:07 -080018513 <p>The HAL must include sensor maximum resolution
18514(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
18515and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
18516 </td>
18517 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018518
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018519 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018520 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018521
18522
18523 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018524 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018525 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080018526 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018527 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018528 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070018529 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018530
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070018531 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018532
18533
Igor Murashkinca256272014-10-02 15:27:09 -070018534 <span class="entry_type_hwlevel">[legacy] </span>
18535
Igor Murashkin6c936c12014-05-13 14:51:49 -070018536
18537
18538
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018539 </td> <!-- entry_type -->
18540
18541 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070018542 <p>The maximum ratio between both active area width
18543and crop region width,<wbr/> and active area height and
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018544crop region height,<wbr/> for <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018545 </td>
18546
18547 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018548 Zoom scale factor
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018549 </td>
18550
18551 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080018552 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018553 </td>
18554
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018555 <td class="entry_hal_version">
18556 <p>3.<wbr/>2</p>
18557 </td>
18558
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018559 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070018560 <ul class="entry_tags">
18561 <li><a href="#tag_BC">BC</a></li>
18562 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018563 </td>
18564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018565 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018566 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018567 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018568 </tr>
18569 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018570 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018571 <p>This represents the maximum amount of zooming possible by
18572the camera device,<wbr/> or equivalently,<wbr/> the minimum cropping
18573window size.<wbr/></p>
18574<p>Crop regions that have a width or height that is smaller
18575than this ratio allows will be rounded up to the minimum
18576allowed size by the camera device.<wbr/></p>
18577 </td>
18578 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018579
18580
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018581 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018582 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018583
18584
18585 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018586 <td class="entry_name
18587 entry_name_deprecated
18588 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080018589 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018590 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018591 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018592 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018593 <span class="entry_type_container">x</span>
18594
18595 <span class="entry_type_array">
18596 n
18597 </span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070018598 <span class="entry_type_visibility"> [hidden]</span>
18599
18600
Igor Murashkinca256272014-10-02 15:27:09 -070018601
Igor Murashkin6c936c12014-05-13 14:51:49 -070018602 <span class="entry_type_deprecated">[deprecated] </span>
18603
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018604
18605
18606 </td> <!-- entry_type -->
18607
18608 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080018609 <p>For each available processed output size (defined in
18610<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
18611minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018612 </td>
18613
18614 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018615 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018616 </td>
18617
18618 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018619 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018620 </td>
18621
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018622 <td class="entry_hal_version">
18623 <p>3.<wbr/>2</p>
18624 </td>
18625
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018626 <td class="entry_tags">
18627 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080018628 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018629 </ul>
18630 </td>
18631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018632 </tr>
18633 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018634 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018635 </tr>
18636 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018637 <td class="entry_details" colspan="6">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080018638 <p>This should correspond to the frame duration when only that processed
18639stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
18640set to FAST.<wbr/></p>
18641<p>When multiple streams are configured,<wbr/> the minimum frame duration will
18642be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018643 </td>
18644 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018645
18646
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018647 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018648 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018649
18650
18651 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018652 <td class="entry_name
18653 entry_name_deprecated
18654 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080018655 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018656 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018657 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018658 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018659 <span class="entry_type_container">x</span>
18660
18661 <span class="entry_type_array">
18662 n x 2
18663 </span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070018664 <span class="entry_type_visibility"> [hidden as size]</span>
18665
18666
Igor Murashkinca256272014-10-02 15:27:09 -070018667
Igor Murashkin6c936c12014-05-13 14:51:49 -070018668 <span class="entry_type_deprecated">[deprecated] </span>
18669
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018670
18671
18672 </td> <!-- entry_type -->
18673
18674 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080018675 <p>The resolutions available for use with
18676processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
18677platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080018678encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018679 </td>
18680
18681 <td class="entry_units">
18682 </td>
18683
18684 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018685 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018686 </td>
18687
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018688 <td class="entry_hal_version">
18689 <p>3.<wbr/>2</p>
18690 </td>
18691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018692 <td class="entry_tags">
18693 <ul class="entry_tags">
18694 <li><a href="#tag_BC">BC</a></li>
18695 </ul>
18696 </td>
18697
18698 </tr>
18699 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018700 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018701 </tr>
18702 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018703 <td class="entry_details" colspan="6">
Zhijun Heb8317e22014-01-16 09:47:07 -080018704 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
18705<p>For a given use case,<wbr/> the actual maximum supported resolution
18706may be lower than what is listed here,<wbr/> depending on the destination
18707Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
18708the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
18709smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
18710can provide.<wbr/></p>
18711<p>Please reference the documentation for the image data destination to
18712check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018713 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018714 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018715
Zhijun Heb8317e22014-01-16 09:47:07 -080018716 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018717 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Heb8317e22014-01-16 09:47:07 -080018718 </tr>
18719 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018720 <td class="entry_details" colspan="6">
Zhijun Heb8317e22014-01-16 09:47:07 -080018721 <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/>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080018722the HAL must include all JPEG sizes listed in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>
Zhijun Heb8317e22014-01-16 09:47:07 -080018723and each below resolution if it is smaller than or equal to the sensor
18724maximum resolution (if they are not listed in JPEG sizes already):</p>
18725<ul>
18726<li>240p (320 x 240)</li>
18727<li>480p (640 x 480)</li>
18728<li>720p (1280 x 720)</li>
18729<li>1080p (1920 x 1080)</li>
18730</ul>
18731<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/>
18732the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
18733 </td>
18734 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018735
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018736 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018737 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018738
18739
18740 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018741 <td class="entry_name
18742 entry_name_deprecated
18743 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080018744 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018745 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018746 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018747 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018748 <span class="entry_type_container">x</span>
18749
18750 <span class="entry_type_array">
18751 n
18752 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070018753 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018754
18755
Igor Murashkinca256272014-10-02 15:27:09 -070018756
Igor Murashkin6c936c12014-05-13 14:51:49 -070018757 <span class="entry_type_deprecated">[deprecated] </span>
18758
18759
18760
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018761 </td> <!-- entry_type -->
18762
18763 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080018764 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080018765<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
18766supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018767 </td>
18768
18769 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070018770 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018771 </td>
18772
18773 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018774 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018775 </td>
18776
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018777 <td class="entry_hal_version">
18778 <p>3.<wbr/>2</p>
18779 </td>
18780
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018781 <td class="entry_tags">
18782 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080018783 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018784 </ul>
18785 </td>
18786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018787 </tr>
18788 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018789 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018790 </tr>
18791 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018792 <td class="entry_details" colspan="6">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080018793 <p>Should correspond to the frame duration when only the raw stream is
18794active.<wbr/></p>
18795<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018796frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080018797durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018798 </td>
18799 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018800
18801
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018802 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018803 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018804
18805
18806 <tr class="entry" id="static_android.scaler.availableRawSizes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018807 <td class="entry_name
18808 entry_name_deprecated
18809 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080018810 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018811 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018812 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080018813 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018814 <span class="entry_type_container">x</span>
18815
18816 <span class="entry_type_array">
18817 n x 2
18818 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070018819 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018820
18821
Igor Murashkinca256272014-10-02 15:27:09 -070018822
Igor Murashkin6c936c12014-05-13 14:51:49 -070018823 <span class="entry_type_deprecated">[deprecated] </span>
18824
18825
18826
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018827 </td> <!-- entry_type -->
18828
18829 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080018830 <p>The resolutions available for use with raw
18831sensor output streams,<wbr/> listed as width,<wbr/>
18832height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018833 </td>
18834
18835 <td class="entry_units">
18836 </td>
18837
18838 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018839 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018840 </td>
18841
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018842 <td class="entry_hal_version">
18843 <p>3.<wbr/>2</p>
18844 </td>
18845
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018846 <td class="entry_tags">
18847 </td>
18848
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018849 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080018850
18851
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018852 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080018853 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080018854
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018855
18856 <tr class="entry" id="static_android.scaler.availableInputOutputFormatsMap">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018857 <td class="entry_name
18858 " rowspan="5">
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018859 android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
18860 </td>
18861 <td class="entry_type">
18862 <span class="entry_type_name">int32</span>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018863
Chien-Yu Chen9e48beb2015-03-18 18:33:17 -070018864 <span class="entry_type_visibility"> [hidden as reprocessFormatsMap]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070018865
18866
Igor Murashkinca256272014-10-02 15:27:09 -070018867
Igor Murashkin6c936c12014-05-13 14:51:49 -070018868
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018869
18870
18871 </td> <!-- entry_type -->
18872
18873 <td class="entry_description">
18874 <p>The mapping of image formats that are supported by this
18875camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
18876 </td>
18877
18878 <td class="entry_units">
18879 </td>
18880
18881 <td class="entry_range">
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018882 </td>
18883
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018884 <td class="entry_hal_version">
18885 <p>3.<wbr/>2</p>
18886 </td>
18887
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018888 <td class="entry_tags">
Zhijun He51379152015-04-24 17:59:50 -070018889 <ul class="entry_tags">
18890 <li><a href="#tag_REPROC">REPROC</a></li>
18891 </ul>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018892 </td>
18893
18894 </tr>
18895 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018896 <th class="th_details" colspan="6">Details</th>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018897 </tr>
18898 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018899 <td class="entry_details" colspan="6">
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018900 <p>All camera devices with at least 1
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080018901<a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> will have at least one
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018902available input format.<wbr/></p>
18903<p>The camera device will support the following map of formats,<wbr/>
Zhijun He41d6f042015-01-15 18:17:24 -080018904if its dependent capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>) is supported:</p>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018905<table>
18906<thead>
18907<tr>
18908<th align="left">Input Format</th>
18909<th align="left">Output Format</th>
18910<th align="left">Capability</th>
18911</tr>
18912</thead>
18913<tbody>
18914<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070018915<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
18916<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070018917<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018918</tr>
18919<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070018920<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
18921<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070018922<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018923</tr>
18924<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070018925<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
18926<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Zhijun He41d6f042015-01-15 18:17:24 -080018927<td align="left">YUV_<wbr/>REPROCESSING</td>
18928</tr>
18929<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070018930<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
18931<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
Zhijun He41d6f042015-01-15 18:17:24 -080018932<td align="left">YUV_<wbr/>REPROCESSING</td>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018933</tr>
18934</tbody>
18935</table>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070018936<p>PRIVATE refers to a device-internal format that is not directly application-visible.<wbr/> A
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070018937PRIVATE input surface can be acquired by <a href="https://developer.android.com/reference/android/media/ImageReader.html#newInstance">ImageReader#newInstance</a>
18938with <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> as the format.<wbr/></p>
18939<p>For a PRIVATE_<wbr/>REPROCESSING-capable camera device,<wbr/> using the PRIVATE format as either input
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070018940or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">getOutputStallDuration(ImageFormat.<wbr/>PRIVATE,<wbr/> size)</a> is always 0),<wbr/></p>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018941<p>Attempting to configure an input stream with output streams not
18942listed as available in this map is not valid.<wbr/></p>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018943 </td>
18944 </tr>
18945
18946 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018947 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018948 </tr>
18949 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018950 <td class="entry_details" colspan="6">
Zhijun He3e6b6182014-04-24 11:17:25 -070018951 <p>For the formats,<wbr/> see <code>system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h</code> for a definition
Chien-Yu Chen9e48beb2015-03-18 18:33:17 -070018952of the image format enumerations.<wbr/> The PRIVATE format refers to the
18953HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED format.<wbr/> The HAL could determine
18954the actual format by using the gralloc usage flags.<wbr/>
Zhijun He41d6f042015-01-15 18:17:24 -080018955For ZSL use case in particular,<wbr/> the HAL could choose appropriate format (partially
18956processed YUV or RAW based format) by checking the format and GRALLOC_<wbr/>USAGE_<wbr/>HW_<wbr/>CAMERA_<wbr/>ZSL.<wbr/>
18957See camera3.<wbr/>h for more details.<wbr/></p>
Zhijun He3e6b6182014-04-24 11:17:25 -070018958<p>This value is encoded as a variable-size array-of-arrays.<wbr/>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018959The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
18960<code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
18961inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
18962<p>A code sample to read/<wbr/>write this encoding (with a device that
Zhijun He41d6f042015-01-15 18:17:24 -080018963supports reprocessing IMPLEMENTATION_<wbr/>DEFINED to YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
18964and reprocessing YUV_<wbr/>420_<wbr/>888 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018965<pre><code>//<wbr/> reading
18966int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
18967for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
18968 int32_<wbr/>t format = contents[i++];
18969 int32_<wbr/>t length = contents[i++];
18970 int32_<wbr/>t output_<wbr/>formats[length];
18971 memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
18972 length * sizeof(int32_<wbr/>t));
18973 i += length;
18974}
18975
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070018976//<wbr/> writing (static example,<wbr/> PRIVATE_<wbr/>REPROCESSING + YUV_<wbr/>REPROCESSING)
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018977int32_<wbr/>t[] contents = {
Zhijun He41d6f042015-01-15 18:17:24 -080018978 IMPLEMENTATION_<wbr/>DEFINED,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
18979 YUV_<wbr/>420_<wbr/>888,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018980};
18981update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
18982 sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
18983</code></pre>
18984<p>If the HAL claims to support any of the capabilities listed in the
18985above details,<wbr/> then it must also support all the input-output
18986combinations listed for that capability.<wbr/> It can optionally support
18987additional formats if it so chooses.<wbr/></p>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018988 </td>
18989 </tr>
18990
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080018991 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080018992 <!-- end of entry -->
18993
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080018994
18995 <tr class="entry" id="static_android.scaler.availableStreamConfigurations">
Igor Murashkin6c936c12014-05-13 14:51:49 -070018996 <td class="entry_name
18997 " rowspan="5">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080018998 android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations
18999 </td>
19000 <td class="entry_type">
19001 <span class="entry_type_name entry_type_name_enum">int32</span>
19002 <span class="entry_type_container">x</span>
19003
19004 <span class="entry_type_array">
19005 n x 4
19006 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070019007 <span class="entry_type_visibility"> [ndk_public as streamConfiguration]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019008
19009
Igor Murashkinca256272014-10-02 15:27:09 -070019010 <span class="entry_type_hwlevel">[legacy] </span>
19011
Igor Murashkin6c936c12014-05-13 14:51:49 -070019012
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019013
19014 <ul class="entry_type_enum">
19015 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080019016 <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019017 </li>
19018 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080019019 <span class="entry_type_enum_name">INPUT (v3.2)</span>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019020 </li>
19021 </ul>
19022
19023 </td> <!-- entry_type -->
19024
19025 <td class="entry_description">
19026 <p>The available stream configurations that this
19027camera device supports
19028(i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
19029 </td>
19030
19031 <td class="entry_units">
19032 </td>
19033
19034 <td class="entry_range">
19035 </td>
19036
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019037 <td class="entry_hal_version">
19038 <p>3.<wbr/>2</p>
19039 </td>
19040
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019041 <td class="entry_tags">
19042 </td>
19043
19044 </tr>
19045 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019046 <th class="th_details" colspan="6">Details</th>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019047 </tr>
19048 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019049 <td class="entry_details" colspan="6">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019050 <p>The configurations are listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code>
19051tuples.<wbr/></p>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019052<p>For a given use case,<wbr/> the actual maximum supported resolution
19053may be lower than what is listed here,<wbr/> depending on the destination
19054Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
19055the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
19056smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
19057can provide.<wbr/></p>
19058<p>Please reference the documentation for the image data destination to
19059check if it limits the maximum size for image data.<wbr/></p>
19060<p>Not all output formats may be supported in a configuration with
19061an input stream of a particular format.<wbr/> For more details,<wbr/> see
19062<a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
19063<p>The following table describes the minimum required output stream
19064configurations based on the hardware level
19065(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
19066<table>
19067<thead>
19068<tr>
19069<th align="center">Format</th>
19070<th align="center">Size</th>
19071<th align="center">Hardware Level</th>
19072<th align="center">Notes</th>
19073</tr>
19074</thead>
19075<tbody>
19076<tr>
19077<td align="center">JPEG</td>
19078<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
19079<td align="center">Any</td>
19080<td align="center"></td>
19081</tr>
19082<tr>
19083<td align="center">JPEG</td>
19084<td align="center">1920x1080 (1080p)</td>
19085<td align="center">Any</td>
19086<td align="center">if 1080p &lt;= activeArraySize</td>
19087</tr>
19088<tr>
19089<td align="center">JPEG</td>
19090<td align="center">1280x720 (720)</td>
19091<td align="center">Any</td>
19092<td align="center">if 720p &lt;= activeArraySize</td>
19093</tr>
19094<tr>
19095<td align="center">JPEG</td>
19096<td align="center">640x480 (480p)</td>
19097<td align="center">Any</td>
19098<td align="center">if 480p &lt;= activeArraySize</td>
19099</tr>
19100<tr>
19101<td align="center">JPEG</td>
19102<td align="center">320x240 (240p)</td>
19103<td align="center">Any</td>
19104<td align="center">if 240p &lt;= activeArraySize</td>
19105</tr>
19106<tr>
19107<td align="center">YUV_<wbr/>420_<wbr/>888</td>
19108<td align="center">all output sizes available for JPEG</td>
19109<td align="center">FULL</td>
19110<td align="center"></td>
19111</tr>
19112<tr>
19113<td align="center">YUV_<wbr/>420_<wbr/>888</td>
19114<td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
19115<td align="center">LIMITED</td>
19116<td align="center"></td>
19117</tr>
19118<tr>
19119<td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
19120<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
19121<td align="center">Any</td>
19122<td align="center"></td>
19123</tr>
19124</tbody>
19125</table>
19126<p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
19127mandatory stream configurations on a per-capability basis.<wbr/></p>
19128 </td>
19129 </tr>
19130
19131 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019132 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019133 </tr>
19134 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019135 <td class="entry_details" colspan="6">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019136 <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
19137of sensor maximum resolution for JPEG formats (regardless of hardware
19138level).<wbr/></p>
19139<p>(The following is a rewording of the above required table):</p>
Zhijun He5a1276a2014-06-02 16:46:03 -070019140<p>For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
19141<ul>
19142<li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
19143(e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
19144(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) has an aspect ratio other than these,<wbr/>
19145it does not have to be included in the supported JPEG sizes.<wbr/></li>
19146<li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
19147the dimensions being a multiple of 16.<wbr/></li>
19148</ul>
19149<p>Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
19150However,<wbr/> the largest JPEG size must be as close as possible to the sensor maximum
19151resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
19152additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
19153if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
19154ratio 4:3,<wbr/> the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
191553264x2448.<wbr/></p>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019156<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/>
19157the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
19158here as output streams.<wbr/></p>
19159<p>It must also include each below resolution if it is smaller than or
19160equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
19161formats),<wbr/> as output streams:</p>
19162<ul>
19163<li>240p (320 x 240)</li>
19164<li>480p (640 x 480)</li>
19165<li>720p (1280 x 720)</li>
19166<li>1080p (1920 x 1080)</li>
19167</ul>
19168<p>For LIMITED capability devices
19169(<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
19170the HAL only has to list up to the maximum video size
19171supported by the device.<wbr/></p>
19172<p>Regardless of hardware level,<wbr/> every output resolution available for
19173YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
19174<p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
19175<ul>
19176<li>availableFormats</li>
19177<li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
19178</ul>
19179 </td>
19180 </tr>
19181
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019182 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019183 <!-- end of entry -->
19184
19185
19186 <tr class="entry" id="static_android.scaler.availableMinFrameDurations">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019187 <td class="entry_name
19188 " rowspan="3">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019189 android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations
19190 </td>
19191 <td class="entry_type">
19192 <span class="entry_type_name">int64</span>
19193 <span class="entry_type_container">x</span>
19194
19195 <span class="entry_type_array">
19196 4 x n
19197 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070019198 <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019199
19200
Igor Murashkinca256272014-10-02 15:27:09 -070019201 <span class="entry_type_hwlevel">[legacy] </span>
19202
Igor Murashkin6c936c12014-05-13 14:51:49 -070019203
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019204
19205
19206 </td> <!-- entry_type -->
19207
19208 <td class="entry_description">
19209 <p>This lists the minimum frame duration for each
19210format/<wbr/>size combination.<wbr/></p>
19211 </td>
19212
19213 <td class="entry_units">
19214 (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
19215 </td>
19216
19217 <td class="entry_range">
19218 </td>
19219
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019220 <td class="entry_hal_version">
19221 <p>3.<wbr/>2</p>
19222 </td>
19223
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019224 <td class="entry_tags">
19225 <ul class="entry_tags">
Zhijun He5fb671c2014-05-21 17:51:05 -070019226 <li><a href="#tag_V1">V1</a></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019227 </ul>
19228 </td>
19229
19230 </tr>
19231 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019232 <th class="th_details" colspan="6">Details</th>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019233 </tr>
19234 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019235 <td class="entry_details" colspan="6">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019236 <p>This should correspond to the frame duration when only that
19237stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
19238set to either OFF or FAST.<wbr/></p>
19239<p>When multiple streams are used in a request,<wbr/> the minimum frame
19240duration will be max(individual stream min durations).<wbr/></p>
19241<p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
19242is the same regardless of whether the stream is input or output.<wbr/></p>
19243<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
19244<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
19245calculating the max frame rate.<wbr/></p>
19246 </td>
19247 </tr>
19248
19249
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019250 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019251 <!-- end of entry -->
19252
19253
19254 <tr class="entry" id="static_android.scaler.availableStallDurations">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019255 <td class="entry_name
19256 " rowspan="5">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019257 android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations
19258 </td>
19259 <td class="entry_type">
19260 <span class="entry_type_name">int64</span>
19261 <span class="entry_type_container">x</span>
19262
19263 <span class="entry_type_array">
19264 4 x n
19265 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070019266 <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019267
19268
Igor Murashkinca256272014-10-02 15:27:09 -070019269 <span class="entry_type_hwlevel">[legacy] </span>
19270
Igor Murashkin6c936c12014-05-13 14:51:49 -070019271
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019272
19273
19274 </td> <!-- entry_type -->
19275
19276 <td class="entry_description">
19277 <p>This lists the maximum stall duration for each
Zhijun He51379152015-04-24 17:59:50 -070019278output format/<wbr/>size combination.<wbr/></p>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019279 </td>
19280
19281 <td class="entry_units">
19282 (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
19283 </td>
19284
19285 <td class="entry_range">
19286 </td>
19287
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019288 <td class="entry_hal_version">
19289 <p>3.<wbr/>2</p>
19290 </td>
19291
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019292 <td class="entry_tags">
19293 <ul class="entry_tags">
Zhijun He5fb671c2014-05-21 17:51:05 -070019294 <li><a href="#tag_V1">V1</a></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019295 </ul>
19296 </td>
19297
19298 </tr>
19299 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019300 <th class="th_details" colspan="6">Details</th>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019301 </tr>
19302 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019303 <td class="entry_details" colspan="6">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019304 <p>A stall duration is how much extra time would get added
19305to the normal minimum frame duration for a repeating request
19306that has streams with non-zero stall.<wbr/></p>
19307<p>For example,<wbr/> consider JPEG captures which have the following
19308characteristics:</p>
19309<ul>
19310<li>JPEG streams act like processed YUV streams in requests for which
19311they are not included; in requests in which they are directly
19312referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
19313JPEG stream requires the underlying YUV data to always be ready for
19314use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
19315frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
19316<li>The JPEG processor can run concurrently to the rest of the camera
19317pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
19318</ul>
19319<p>In other words,<wbr/> using a repeating YUV request would result
19320in a steady frame rate (let's say it's 30 FPS).<wbr/> If a single
19321JPEG request is submitted periodically,<wbr/> the frame rate will stay
19322at 30 FPS (as long as we wait for the previous JPEG to return each
19323time).<wbr/> If we try to submit a repeating YUV + JPEG request,<wbr/> then
19324the frame rate will drop from 30 FPS.<wbr/></p>
19325<p>In general,<wbr/> submitting a new request with a non-0 stall time
19326stream will <em>not</em> cause a frame rate drop unless there are still
19327outstanding buffers for that stream from previous requests.<wbr/></p>
19328<p>Submitting a repeating request with streams (call this <code>S</code>)
19329is the same as setting the minimum frame duration from
19330the normal minimum frame duration corresponding to <code>S</code>,<wbr/> added with
19331the maximum stall duration for <code>S</code>.<wbr/></p>
19332<p>If interleaving requests with and without a stall duration,<wbr/>
19333a request will stall by the maximum of the remaining times
19334for each can-stall stream with outstanding buffers.<wbr/></p>
19335<p>This means that a stalling request will not have an exposure start
19336until the stall has completed.<wbr/></p>
19337<p>This should correspond to the stall duration when only that stream is
19338active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST
19339or OFF.<wbr/> Setting any of the processing modes to HIGH_<wbr/>QUALITY
19340effectively results in an indeterminate stall duration for all
19341streams in a request (the regular stall calculation rules are
19342ignored).<wbr/></p>
19343<p>The following formats may always have a stall duration:</p>
19344<ul>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019345<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></li>
19346<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">ImageFormat#RAW_<wbr/>SENSOR</a></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019347</ul>
19348<p>The following formats will never have a stall duration:</p>
19349<ul>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019350<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></li>
19351<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">ImageFormat#RAW10</a></li>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019352<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">ImageFormat#RAW12</a></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019353</ul>
19354<p>All other formats may or may not have an allowed stall duration on
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080019355a per-capability basis; refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019356for more details.<wbr/></p>
19357<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> for more information about
19358calculating the max frame rate (absent stalls).<wbr/></p>
19359 </td>
19360 </tr>
19361
19362 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019363 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019364 </tr>
19365 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019366 <td class="entry_details" colspan="6">
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019367 <p>If possible,<wbr/> it is recommended that all non-JPEG formats
Yin-Chia Yehf9801f42015-03-20 16:53:19 -070019368(such as RAW16) should not have a stall duration.<wbr/> RAW10,<wbr/> RAW12,<wbr/> RAW_<wbr/>OPAQUE
19369and IMPLEMENTATION_<wbr/>DEFINED must not have stall durations.<wbr/></p>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019370 </td>
19371 </tr>
19372
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019373 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019374 <!-- end of entry -->
19375
Igor Murashkin6c936c12014-05-13 14:51:49 -070019376
19377 <tr class="entry" id="static_android.scaler.streamConfigurationMap">
19378 <td class="entry_name
19379 " rowspan="5">
19380 android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map
19381 </td>
19382 <td class="entry_type">
19383 <span class="entry_type_name">int32</span>
19384
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070019385 <span class="entry_type_visibility"> [java_public as streamConfigurationMap]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019386
19387 <span class="entry_type_synthetic">[synthetic] </span>
19388
Igor Murashkinca256272014-10-02 15:27:09 -070019389 <span class="entry_type_hwlevel">[legacy] </span>
19390
Igor Murashkin6c936c12014-05-13 14:51:49 -070019391
19392
19393
19394 </td> <!-- entry_type -->
19395
19396 <td class="entry_description">
19397 <p>The available stream configurations that this
19398camera device supports; also includes the minimum frame durations
19399and the stall durations for each format/<wbr/>size combination.<wbr/></p>
19400 </td>
19401
19402 <td class="entry_units">
19403 </td>
19404
19405 <td class="entry_range">
19406 </td>
19407
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019408 <td class="entry_hal_version">
19409 <p>3.<wbr/>2</p>
19410 </td>
19411
Igor Murashkin6c936c12014-05-13 14:51:49 -070019412 <td class="entry_tags">
19413 </td>
19414
19415 </tr>
19416 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019417 <th class="th_details" colspan="6">Details</th>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019418 </tr>
19419 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019420 <td class="entry_details" colspan="6">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019421 <p>All camera devices will support sensor maximum resolution (defined by
19422<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) for the JPEG format.<wbr/></p>
19423<p>For a given use case,<wbr/> the actual maximum supported resolution
19424may be lower than what is listed here,<wbr/> depending on the destination
19425Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
19426the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
19427smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
19428can provide.<wbr/></p>
19429<p>Please reference the documentation for the image data destination to
19430check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019431<p>The following table describes the minimum required output stream
19432configurations based on the hardware level
19433(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
19434<table>
19435<thead>
19436<tr>
19437<th align="center">Format</th>
19438<th align="center">Size</th>
19439<th align="center">Hardware Level</th>
19440<th align="center">Notes</th>
19441</tr>
19442</thead>
19443<tbody>
19444<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019445<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Yin-Chia Yehfc57a582015-07-08 14:07:39 -070019446<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)</td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019447<td align="center">Any</td>
19448<td align="center"></td>
19449</tr>
19450<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019451<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019452<td align="center">1920x1080 (1080p)</td>
19453<td align="center">Any</td>
19454<td align="center">if 1080p &lt;= activeArraySize</td>
19455</tr>
19456<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019457<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Yin-Chia Yehfc57a582015-07-08 14:07:39 -070019458<td align="center">1280x720 (720p)</td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019459<td align="center">Any</td>
19460<td align="center">if 720p &lt;= activeArraySize</td>
19461</tr>
19462<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019463<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019464<td align="center">640x480 (480p)</td>
19465<td align="center">Any</td>
19466<td align="center">if 480p &lt;= activeArraySize</td>
19467</tr>
19468<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019469<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019470<td align="center">320x240 (240p)</td>
19471<td align="center">Any</td>
19472<td align="center">if 240p &lt;= activeArraySize</td>
19473</tr>
19474<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019475<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019476<td align="center">all output sizes available for JPEG</td>
19477<td align="center">FULL</td>
19478<td align="center"></td>
19479</tr>
19480<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019481<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019482<td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
19483<td align="center">LIMITED</td>
19484<td align="center"></td>
19485</tr>
19486<tr>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019487<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019488<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
19489<td align="center">Any</td>
19490<td align="center"></td>
19491</tr>
19492</tbody>
19493</table>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019494<p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a> for additional mandatory
19495stream configurations on a per-capability basis.<wbr/></p>
Yin-Chia Yehfc57a582015-07-08 14:07:39 -070019496<p>*1: For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
19497<ul>
19498<li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
19499(e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
19500(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) has an aspect ratio other than these,<wbr/>
19501it does not have to be included in the supported JPEG sizes.<wbr/></li>
19502<li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
19503the dimensions being a multiple of 16.<wbr/>
19504Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
19505However,<wbr/> the largest JPEG size will be as close as possible to the sensor maximum
19506resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
19507additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
19508if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
19509ratio 4:3,<wbr/> and the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
195103264x2448.<wbr/></li>
19511</ul>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019512 </td>
19513 </tr>
19514
19515 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019516 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019517 </tr>
19518 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019519 <td class="entry_details" colspan="6">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019520 <p>Do not set this property directly
19521(it is synthetic and will not be available at the HAL layer);
19522set the <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> instead.<wbr/></p>
Igor Murashkinefff0de2014-05-14 17:30:49 -070019523<p>Not all output formats may be supported in a configuration with
19524an input stream of a particular format.<wbr/> For more details,<wbr/> see
19525<a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019526<p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
19527of sensor maximum resolution for JPEG formats (regardless of hardware
19528level).<wbr/></p>
19529<p>(The following is a rewording of the above required table):</p>
19530<p>The HAL must include sensor maximum resolution (defined by
19531<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
19532<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/>
19533the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
19534here as output streams.<wbr/></p>
19535<p>It must also include each below resolution if it is smaller than or
19536equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
19537formats),<wbr/> as output streams:</p>
19538<ul>
19539<li>240p (320 x 240)</li>
19540<li>480p (640 x 480)</li>
19541<li>720p (1280 x 720)</li>
19542<li>1080p (1920 x 1080)</li>
19543</ul>
19544<p>For LIMITED capability devices
19545(<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
19546the HAL only has to list up to the maximum video size
19547supported by the device.<wbr/></p>
19548<p>Regardless of hardware level,<wbr/> every output resolution available for
19549YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
19550<p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
19551<ul>
19552<li>availableFormats</li>
19553<li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
19554</ul>
19555 </td>
19556 </tr>
19557
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019558 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019559 <!-- end of entry -->
19560
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019561
19562 <tr class="entry" id="static_android.scaler.croppingType">
19563 <td class="entry_name
19564 " rowspan="3">
19565 android.<wbr/>scaler.<wbr/>cropping<wbr/>Type
19566 </td>
19567 <td class="entry_type">
19568 <span class="entry_type_name entry_type_name_enum">byte</span>
19569
19570 <span class="entry_type_visibility"> [public]</span>
19571
19572
Igor Murashkinca256272014-10-02 15:27:09 -070019573 <span class="entry_type_hwlevel">[legacy] </span>
19574
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019575
19576
19577 <ul class="entry_type_enum">
19578 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080019579 <span class="entry_type_enum_name">CENTER_ONLY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070019580 <span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019581 </li>
19582 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080019583 <span class="entry_type_enum_name">FREEFORM (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070019584 <span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019585 </li>
19586 </ul>
19587
19588 </td> <!-- entry_type -->
19589
19590 <td class="entry_description">
19591 <p>The crop type that this camera device supports.<wbr/></p>
19592 </td>
19593
19594 <td class="entry_units">
19595 </td>
19596
19597 <td class="entry_range">
19598 </td>
19599
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019600 <td class="entry_hal_version">
19601 <p>3.<wbr/>2</p>
19602 </td>
19603
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019604 <td class="entry_tags">
19605 </td>
19606
19607 </tr>
19608 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019609 <th class="th_details" colspan="6">Details</th>
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019610 </tr>
19611 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019612 <td class="entry_details" colspan="6">
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019613 <p>When passing a non-centered crop region (<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>) to a camera
19614device that only supports CENTER_<wbr/>ONLY cropping,<wbr/> the camera device will move the
19615crop region to the center of the sensor active array (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>)
19616and keep the crop region width and height unchanged.<wbr/> The camera device will return the
19617final used crop region in metadata result <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
19618<p>Camera devices that support FREEFORM cropping will support any crop region that
19619is inside of the active array.<wbr/> The camera device will apply the same crop region and
19620return the final used crop region in capture result metadata <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
Eino-Ville Talvala593b8212015-06-30 16:33:57 -070019621<p>LEGACY capability devices will only support CENTER_<wbr/>ONLY cropping.<wbr/></p>
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019622 </td>
19623 </tr>
19624
19625
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019626 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun Hed0f25ca2014-05-21 15:29:07 -070019627 <!-- end of entry -->
19628
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019629
19630
19631 <!-- end of kind -->
19632 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019633 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019634
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070019635 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019636 <tr>
19637 <th class="th_name">Property Name</th>
19638 <th class="th_type">Type</th>
19639 <th class="th_description">Description</th>
19640 <th class="th_units">Units</th>
19641 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019642 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019643 <th class="th_tags">Tags</th>
19644 </tr>
19645 </thead>
19646
19647 <tbody>
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019659 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019660 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080019661 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080019662 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019663 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080019664 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019665 <span class="entry_type_container">x</span>
19666
19667 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070019668 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019669 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070019670 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019671
19672
Igor Murashkinca256272014-10-02 15:27:09 -070019673 <span class="entry_type_hwlevel">[legacy] </span>
19674
Igor Murashkin6c936c12014-05-13 14:51:49 -070019675
19676
19677
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019678 </td> <!-- entry_type -->
19679
19680 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019681 <p>The desired region of the sensor to read out for this capture.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019682 </td>
19683
19684 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019685 Pixel coordinates relative to
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019686 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019687 </td>
19688
19689 <td class="entry_range">
19690 </td>
19691
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019692 <td class="entry_hal_version">
19693 <p>3.<wbr/>2</p>
19694 </td>
19695
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019696 <td class="entry_tags">
19697 <ul class="entry_tags">
19698 <li><a href="#tag_BC">BC</a></li>
19699 </ul>
19700 </td>
19701
19702 </tr>
19703 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019704 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019705 </tr>
19706 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019707 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019708 <p>This control can be used to implement digital zoom.<wbr/></p>
19709<p>The crop region coordinate system is based off
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019710<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with <code>(0,<wbr/> 0)</code> being the
19711top-left corner of the sensor active array.<wbr/></p>
19712<p>Output streams use this rectangle to produce their output,<wbr/>
19713cropping to a smaller region if necessary to maintain the
19714stream's aspect ratio,<wbr/> then scaling the sensor input to
19715match the output's configured resolution.<wbr/></p>
19716<p>The crop region is applied after the RAW to other color
19717space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
19718(e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
19719croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
Zhijun He507458b2014-05-21 11:11:10 -070019720<p>For non-raw streams,<wbr/> any additional per-stream cropping will
19721be done to maximize the final pixel area of the stream.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080019722<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019723ratio,<wbr/> then 4:3 streams will use the exact crop
19724region.<wbr/> 16:9 streams will further crop vertically
Igor Murashkin0b080452013-12-27 15:30:25 -080019725(letterbox).<wbr/></p>
19726<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019727outputs will crop horizontally (pillarbox),<wbr/> and 16:9
19728streams will match exactly.<wbr/> These additional crops will
Igor Murashkin0b080452013-12-27 15:30:25 -080019729be centered within the crop region.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019730<p>The width and height of the crop region cannot
19731be set to be smaller than
19732<code>floor( activeArraySize.<wbr/>width /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code> and
19733<code>floor( activeArraySize.<wbr/>height /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code>,<wbr/> respectively.<wbr/></p>
19734<p>The camera device may adjust the crop region to account
19735for rounding and other hardware requirements; the final
19736crop region used will be included in the output capture
19737result.<wbr/></p>
19738 </td>
19739 </tr>
19740
19741 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019742 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019743 </tr>
19744 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019745 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019746 <p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080019747times,<wbr/> no matter what the relative aspect ratios of the
19748crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080019749corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080019750larger than active pixel array.<wbr/> Width and height may be
19751rounded to nearest larger supportable width,<wbr/> especially
19752for raw output,<wbr/> where only a few fixed scales may be
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019753possible.<wbr/></p>
Zhijun He7defc682015-05-22 17:04:15 -070019754<p>For a set of output streams configured,<wbr/> if the sensor output is cropped to a smaller
19755size than active array size,<wbr/> the HAL need follow below cropping rules:</p>
19756<ul>
19757<li>
19758<p>The HAL need handle the cropRegion as if the sensor crop size is the effective active
19759array size.<wbr/>More specifically,<wbr/> the HAL must transform the request cropRegion from
19760<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> to the sensor cropped pixel area size in this way:</p>
19761<ol>
19762<li>Translate the requested cropRegion w.<wbr/>r.<wbr/>t.,<wbr/> the left top corner of the sensor
19763cropped pixel area by (tx,<wbr/> ty),<wbr/>
Shuzhen Wang4db8bb82018-06-06 17:21:54 -070019764where <code>ty = sensorCrop.<wbr/>top * (sensorCrop.<wbr/>height /<wbr/> activeArraySize.<wbr/>height)</code>
Zhijun He7defc682015-05-22 17:04:15 -070019765and <code>tx = sensorCrop.<wbr/>left * (sensorCrop.<wbr/>width /<wbr/> activeArraySize.<wbr/>width)</code>.<wbr/> The
19766(sensorCrop.<wbr/>top,<wbr/> sensorCrop.<wbr/>left) is the coordinate based off the
19767<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
19768<li>Scale the width and height of requested cropRegion with scaling factor of
19769sensor<wbr/>Crop.<wbr/>width/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>width and sensor<wbr/>Crop.<wbr/>height/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>height
19770respectively.<wbr/>
19771Once this new cropRegion is calculated,<wbr/> the HAL must use this region to crop the image
19772with regard to the sensor crop size (effective active array size).<wbr/> The HAL still need
19773follow the general cropping rule for this new cropRegion and effective active
19774array size.<wbr/></li>
19775</ol>
19776</li>
19777<li>
19778<p>The HAL must report the cropRegion with regard to <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>
19779The HAL need convert the new cropRegion generated above w.<wbr/>r.<wbr/>t.,<wbr/> full active array size.<wbr/>
19780The reported cropRegion may be slightly different with the requested cropRegion since
19781the HAL may adjust the crop region to account for rounding,<wbr/> conversion error,<wbr/> or other
19782hardware limitations.<wbr/></p>
19783</li>
19784</ul>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070019785<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019786 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019787 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080019788
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019789 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019790 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019791
19792
19793
19794 <!-- end of kind -->
19795 </tbody>
19796
19797 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019798 <tr><td colspan="7" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019799
19800
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019801 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019802
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070019803 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019804 <tr>
19805 <th class="th_name">Property Name</th>
19806 <th class="th_type">Type</th>
19807 <th class="th_description">Description</th>
19808 <th class="th_units">Units</th>
19809 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019810 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019811 <th class="th_tags">Tags</th>
19812 </tr>
19813 </thead>
19814
19815 <tbody>
19816
19817
19818
19819
19820
19821
19822
19823
19824
19825
19826 <tr class="entry" id="controls_android.sensor.exposureTime">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019827 <td class="entry_name
19828 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080019829 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080019830 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019831 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080019832 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019833
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070019834 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019835
19836
Igor Murashkinca256272014-10-02 15:27:09 -070019837 <span class="entry_type_hwlevel">[full] </span>
19838
Igor Murashkin6c936c12014-05-13 14:51:49 -070019839
19840
19841
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019842 </td> <!-- entry_type -->
19843
19844 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080019845 <p>Duration each pixel is exposed to
19846light.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019847 </td>
19848
19849 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019850 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019851 </td>
19852
19853 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080019854 <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 -080019855 </td>
19856
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019857 <td class="entry_hal_version">
19858 <p>3.<wbr/>2</p>
19859 </td>
19860
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019861 <td class="entry_tags">
19862 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080019863 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019864 </ul>
19865 </td>
19866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019867 </tr>
19868 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019869 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019870 </tr>
19871 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019872 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019873 <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
19874duration exposed to the nearest possible value (rather than expose longer).<wbr/>
19875The final exposure time used will be available in the output capture result.<wbr/></p>
19876<p>This control is only effective if <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> is set to
19877OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019878 </td>
19879 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080019880
19881
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019882 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019883 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019884
19885
19886 <tr class="entry" id="controls_android.sensor.frameDuration">
Igor Murashkin6c936c12014-05-13 14:51:49 -070019887 <td class="entry_name
19888 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080019889 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080019890 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019891 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080019892 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019893
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070019894 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019895
19896
Igor Murashkinca256272014-10-02 15:27:09 -070019897 <span class="entry_type_hwlevel">[full] </span>
19898
Igor Murashkin6c936c12014-05-13 14:51:49 -070019899
19900
19901
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019902 </td> <!-- entry_type -->
19903
19904 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080019905 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080019906start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019907 </td>
19908
19909 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019910 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019911 </td>
19912
19913 <td class="entry_range">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019914 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>.<wbr/>
19915The duration is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
19916 </td>
19917
19918 <td class="entry_hal_version">
19919 <p>3.<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019920 </td>
19921
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019922 <td class="entry_tags">
19923 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080019924 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080019925 </ul>
19926 </td>
19927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019928 </tr>
19929 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019930 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019931 </tr>
19932 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019933 <td class="entry_details" colspan="6">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080019934 <p>The maximum frame rate that can be supported by a camera subsystem is
19935a function of many factors:</p>
19936<ul>
19937<li>Requested resolutions of output image streams</li>
19938<li>Availability of binning /<wbr/> skipping modes on the imager</li>
19939<li>The bandwidth of the imager interface</li>
19940<li>The bandwidth of the various ISP processing blocks</li>
19941</ul>
19942<p>Since these factors can vary greatly between different ISPs and
19943sensors,<wbr/> the camera abstraction tries to represent the bandwidth
19944restrictions with as simple a model as possible.<wbr/></p>
19945<p>The model presented has the following characteristics:</p>
19946<ul>
19947<li>The image sensor is always configured to output the smallest
19948resolution possible given the application's requested output stream
19949sizes.<wbr/> The smallest resolution is defined as being at least as large
19950as the largest requested output stream size; the camera pipeline must
19951never digitally upsample sensor data when the crop region covers the
19952whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
19953resolutions are configured,<wbr/> the sensor can provide a higher frame
19954rate.<wbr/></li>
19955<li>Since any request may use any or all the currently configured
19956output streams,<wbr/> the sensor and ISP must be configured to support
19957scaling a single capture to all the streams at the same time.<wbr/> This
19958means the camera pipeline must be ready to produce the largest
19959requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
19960frame rate of a given configured stream set is governed only by the
19961largest requested stream resolution.<wbr/></li>
19962<li>Using more than one output stream in a request does not affect the
19963frame duration.<wbr/></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019964<li>Certain format-streams may need to do additional background processing
19965before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
19966can run concurrently to the rest of the camera pipeline,<wbr/> but
19967cannot process more than 1 capture at a time.<wbr/></li>
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080019968</ul>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019969<p>The necessary information for the application,<wbr/> given the model above,<wbr/> is provided via
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019970<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019971These are used to determine the maximum frame rate /<wbr/> minimum frame duration that is
19972possible for a given stream configuration.<wbr/></p>
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080019973<p>Specifically,<wbr/> the application can use the following rules to
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080019974determine the minimum frame duration it can request from the camera
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080019975device:</p>
19976<ol>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019977<li>Let the set of currently configured input/<wbr/>output streams be called <code>S</code>.<wbr/></li>
19978<li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by looking it up in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
19979(with its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called <code>F</code>.<wbr/></li>
19980<li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed for <code>R</code> is the maximum
19981out of all values in <code>F</code>.<wbr/> Let the streams used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080019982</ol>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070019983<p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019984using its respective size/<wbr/>format),<wbr/> then the frame duration in <code>F</code> determines the steady
19985state frame rate that the application will get if it uses <code>R</code> as a repeating request.<wbr/> Let
19986this special kind of request be called <code>Rsimple</code>.<wbr/></p>
19987<p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved by a single capture of a
19988new request <code>Rstall</code> (which has at least one in-use stream with a non-0 stall time) and if
19989<code>Rstall</code> has the same minimum frame duration this will not cause a frame rate loss if all
19990buffers from the previous <code>Rstall</code> have already been delivered.<wbr/></p>
19991<p>For more details about stalling,<wbr/> see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070019992<p>This control is only effective if <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> is set to
19993OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080019994 </td>
19995 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080019996
Igor Murashkin6c936c12014-05-13 14:51:49 -070019997 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080019998 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin6c936c12014-05-13 14:51:49 -070019999 </tr>
20000 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020001 <td class="entry_details" colspan="6">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020002 <p>For more details about stalling,<wbr/> see
20003<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
20004 </td>
20005 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020006
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020007 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020008 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020009
20010
20011 <tr class="entry" id="controls_android.sensor.sensitivity">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020012 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020013 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080020014 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020015 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020016 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020017 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020018
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070020019 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020020
20021
Igor Murashkinca256272014-10-02 15:27:09 -070020022 <span class="entry_type_hwlevel">[full] </span>
20023
Igor Murashkin6c936c12014-05-13 14:51:49 -070020024
20025
20026
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020027 </td> <!-- entry_type -->
20028
20029 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020030 <p>The amount of gain applied to sensor data
20031before processing.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020032 </td>
20033
20034 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080020035 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020036 </td>
20037
20038 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080020039 <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 -080020040 </td>
20041
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020042 <td class="entry_hal_version">
20043 <p>3.<wbr/>2</p>
20044 </td>
20045
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020046 <td class="entry_tags">
20047 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080020048 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020049 </ul>
20050 </td>
20051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020052 </tr>
20053 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020054 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020055 </tr>
20056 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020057 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020058 <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
20059as defined in ISO 12232:2006.<wbr/></p>
20060<p>The sensitivity must be within <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a>,<wbr/> and
20061if if it less than <a href="#static_android.sensor.maxAnalogSensitivity">android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity</a>,<wbr/> the camera device
20062is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
20063<p>If the camera device cannot apply the exact sensitivity
20064requested,<wbr/> it will reduce the gain to the nearest supported
20065value.<wbr/> The final sensitivity used will be available in the
20066output capture result.<wbr/></p>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -080020067<p>This control is only effective if <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> is set to
20068OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020069 </td>
20070 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020071
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020072 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020073 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020074 </tr>
20075 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020076 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020077 <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
20078 </td>
20079 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020080
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020081 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020082 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020083
Igor Murashkina46e02f2014-01-09 17:43:38 -080020084
20085 <tr class="entry" id="controls_android.sensor.testPatternData">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020086 <td class="entry_name
20087 " rowspan="5">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020088 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
20089 </td>
20090 <td class="entry_type">
20091 <span class="entry_type_name">int32</span>
20092 <span class="entry_type_container">x</span>
20093
20094 <span class="entry_type_array">
20095 4
20096 </span>
20097 <span class="entry_type_visibility"> [public]</span>
20098
20099
Igor Murashkin6c936c12014-05-13 14:51:49 -070020100
20101
20102
Igor Murashkinca256272014-10-02 15:27:09 -070020103
Igor Murashkina46e02f2014-01-09 17:43:38 -080020104 </td> <!-- entry_type -->
20105
20106 <td class="entry_description">
20107 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
20108when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
20109 </td>
20110
20111 <td class="entry_units">
20112 </td>
20113
20114 <td class="entry_range">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020115 </td>
20116
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020117 <td class="entry_hal_version">
20118 <p>3.<wbr/>2</p>
20119 </td>
20120
Igor Murashkina46e02f2014-01-09 17:43:38 -080020121 <td class="entry_tags">
20122 </td>
20123
20124 </tr>
20125 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020126 <th class="th_details" colspan="6">Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020127 </tr>
20128 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020129 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020130 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
20131The camera device then uses the most significant X bits
20132that correspond to how many bits are in its Bayer raw sensor
20133output.<wbr/></p>
20134<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
2013510 most significant bits from each color channel.<wbr/></p>
20136 </td>
20137 </tr>
20138
20139 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020140 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020141 </tr>
20142 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020143 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020144
20145 </td>
20146 </tr>
20147
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020148 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020149 <!-- end of entry -->
20150
20151
20152 <tr class="entry" id="controls_android.sensor.testPatternMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020153 <td class="entry_name
20154 " rowspan="5">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020155 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
20156 </td>
20157 <td class="entry_type">
20158 <span class="entry_type_name entry_type_name_enum">int32</span>
20159
20160 <span class="entry_type_visibility"> [public]</span>
20161
Igor Murashkin6c936c12014-05-13 14:51:49 -070020162
20163
20164
Igor Murashkinca256272014-10-02 15:27:09 -070020165
Igor Murashkina46e02f2014-01-09 17:43:38 -080020166 <ul class="entry_type_enum">
20167 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020168 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070020169 <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
20170device returns captures from the image sensor.<wbr/></p>
20171<p>This is the default if the key is not set.<wbr/></p></span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020172 </li>
20173 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020174 <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020175 <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
20176respective color channel provided in
20177<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
20178<p>For example:</p>
20179<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
20180</code></pre>
20181<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
20182<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
20183</code></pre>
20184<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
20185are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
20186 </li>
20187 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020188 <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020189 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
20190<p>The vertical bars (left-to-right) are as follows:</p>
20191<ul>
20192<li>100% white</li>
20193<li>yellow</li>
20194<li>cyan</li>
20195<li>green</li>
20196<li>magenta</li>
20197<li>red</li>
20198<li>blue</li>
20199<li>black</li>
20200</ul>
20201<p>In general the image would look like the following:</p>
20202<pre><code>W Y C G M R B K
20203W Y C G M R B K
20204W Y C G M R B K
20205W Y C G M R B K
20206W Y C G M R B K
20207.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
20208.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
20209.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
20210
20211(B = Blue,<wbr/> K = Black)
20212</code></pre>
20213<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
20214When this is not possible,<wbr/> the bar size should be rounded
20215down to the nearest integer and the pattern can repeat
20216on the right side.<wbr/></p>
20217<p>Each bar's height must always take up the full sensor
20218pixel array height.<wbr/></p>
20219<p>Each pixel in this test pattern must be set to either
202200% intensity or 100% intensity.<wbr/></p></span>
20221 </li>
20222 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020223 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020224 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
20225each bar should start at its specified color at the top,<wbr/>
20226and fade to gray at the bottom.<wbr/></p>
20227<p>Furthermore each bar is further subdivided into a left and
20228right half.<wbr/> The left half should have a smooth gradient,<wbr/>
20229and the right half should have a quantized gradient.<wbr/></p>
20230<p>In particular,<wbr/> the right half's should consist of blocks of the
20231same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
20232<p>The least significant bits in the quantized gradient should
20233be copied from the most significant bits of the smooth gradient.<wbr/></p>
20234<p>The height of each bar should always be a multiple of 128.<wbr/>
20235When this is not the case,<wbr/> the pattern should repeat at the bottom
20236of the image.<wbr/></p></span>
20237 </li>
20238 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020239 <span class="entry_type_enum_name">PN9 (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020240 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
20241generated from a PN9 512-bit sequence (typically implemented
20242in hardware with a linear feedback shift register).<wbr/></p>
20243<p>The generator should be reset at the beginning of each frame,<wbr/>
20244and thus each subsequent raw frame with this test pattern should
20245be exactly the same as the last.<wbr/></p></span>
20246 </li>
20247 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020248 <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020249 <span class="entry_type_enum_value">256</span>
20250 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
20251available only on this camera device are at least this numeric
20252value.<wbr/></p>
20253<p>All of the custom test patterns will be static
20254(that is the raw image must not vary from frame to frame).<wbr/></p></span>
20255 </li>
20256 </ul>
20257
20258 </td> <!-- entry_type -->
20259
20260 <td class="entry_description">
20261 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
20262doing a real exposure from the camera.<wbr/></p>
20263 </td>
20264
20265 <td class="entry_units">
20266 </td>
20267
20268 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020269 <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020270 </td>
20271
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020272 <td class="entry_hal_version">
20273 <p>3.<wbr/>2</p>
20274 </td>
20275
Igor Murashkina46e02f2014-01-09 17:43:38 -080020276 <td class="entry_tags">
20277 </td>
20278
20279 </tr>
20280 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020281 <th class="th_details" colspan="6">Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020282 </tr>
20283 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020284 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020285 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070020286by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
Igor Murashkina46e02f2014-01-09 17:43:38 -080020287work as normal.<wbr/></p>
20288<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
20289occur (and that the test pattern remain unmodified,<wbr/> since the flash
20290would not actually affect it).<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020291<p>Defaults to OFF.<wbr/></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020292 </td>
20293 </tr>
20294
20295 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020296 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020297 </tr>
20298 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020299 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080020300 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
20301<p>The HAL may choose to substitute test patterns from the sensor
20302with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
20303indistinguishable to the ISP whether the data came from the
20304sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
20305 </td>
20306 </tr>
20307
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020308 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080020309 <!-- end of entry -->
20310
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020311
20312
20313 <!-- end of kind -->
20314 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020315 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020316
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070020317 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020318 <tr>
20319 <th class="th_name">Property Name</th>
20320 <th class="th_type">Type</th>
20321 <th class="th_description">Description</th>
20322 <th class="th_units">Units</th>
20323 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020324 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020325 <th class="th_tags">Tags</th>
20326 </tr>
20327 </thead>
20328
20329 <tbody>
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020343 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020344 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080020345 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020346 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020347 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020348 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020349 <span class="entry_type_container">x</span>
20350
20351 <span class="entry_type_array">
20352 4
20353 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070020354 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070020355
20356
Igor Murashkinca256272014-10-02 15:27:09 -070020357 <span class="entry_type_hwlevel">[legacy] </span>
20358
Igor Murashkin6c936c12014-05-13 14:51:49 -070020359
Igor Murashkin0b080452013-12-27 15:30:25 -080020360 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020361
20362
20363 </td> <!-- entry_type -->
20364
20365 <td class="entry_description">
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020366 <p>The area of the image sensor which corresponds to active pixels after any geometric
20367distortion correction has been applied.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020368 </td>
20369
20370 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020371 Pixel coordinates on the image sensor
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020372 </td>
20373
20374 <td class="entry_range">
20375 </td>
20376
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020377 <td class="entry_hal_version">
20378 <p>3.<wbr/>2</p>
20379 </td>
20380
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020381 <td class="entry_tags">
20382 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070020383 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020384 </ul>
20385 </td>
20386
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020387 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080020388 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020389 <th class="th_details" colspan="6">Details</th>
Zhijun Hebdc94c42014-01-21 18:28:30 -080020390 </tr>
20391 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020392 <td class="entry_details" colspan="6">
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020393 <p>This is the rectangle representing the size of the active region of the sensor (i.<wbr/>e.<wbr/>
20394the region that actually receives light from the scene) after any geometric correction
20395has been applied,<wbr/> and should be treated as the maximum size in pixels of any of the
20396image output formats aside from the raw formats.<wbr/></p>
20397<p>This rectangle is defined relative to the full pixel array; (0,<wbr/>0) is the top-left of
20398the full pixel array,<wbr/> and the size of the full pixel array is given by
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020399<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020400<p>The coordinate system for most other keys that list pixel coordinates,<wbr/> including
20401<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> is defined relative to the active array rectangle given in
20402this field,<wbr/> with <code>(0,<wbr/> 0)</code> being the top-left of this rectangle.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020403<p>The active array may be smaller than the full pixel array,<wbr/> since the full array may
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020404include black calibration pixels or other inactive regions,<wbr/> and geometric correction
20405resulting in scaling or cropping may have been applied.<wbr/></p>
20406 </td>
20407 </tr>
20408
20409 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020410 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020411 </tr>
20412 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020413 <td class="entry_details" colspan="6">
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020414 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
20415&gt;= <code>(0,<wbr/>0)</code>.<wbr/>
20416The <code>(width,<wbr/> height)</code> must be &lt;= <code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
20417 </td>
20418 </tr>
20419
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020420 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020421 <!-- end of entry -->
20422
20423
Zhijun He69fc0ea2013-07-17 09:42:58 -070020424 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020425 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020426 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080020427 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020428 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020429 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020430 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020431 <span class="entry_type_container">x</span>
20432
20433 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070020434 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020435 </span>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070020436 <span class="entry_type_visibility"> [public as rangeInt]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070020437
20438
Igor Murashkinca256272014-10-02 15:27:09 -070020439 <span class="entry_type_hwlevel">[full] </span>
20440
Igor Murashkin6c936c12014-05-13 14:51:49 -070020441
Igor Murashkin0b080452013-12-27 15:30:25 -080020442 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020443
20444
20445 </td> <!-- entry_type -->
20446
20447 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020448 <p>Range of sensitivities for <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> supported by this
20449camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020450 </td>
20451
20452 <td class="entry_units">
20453 </td>
20454
20455 <td class="entry_range">
Eino-Ville Talvalad77b2342014-09-25 10:27:48 -070020456 <p>Min &lt;= 100,<wbr/> Max &gt;= 800</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020457 </td>
20458
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020459 <td class="entry_hal_version">
20460 <p>3.<wbr/>2</p>
20461 </td>
20462
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020463 <td class="entry_tags">
20464 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080020465 <li><a href="#tag_BC">BC</a></li>
20466 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020467 </ul>
20468 </td>
20469
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020470 </tr>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020471 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020472 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020473 </tr>
20474 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020475 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020476 <p>The values are the standard ISO sensitivity values,<wbr/>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020477as defined in ISO 12232:2006.<wbr/></p>
20478 </td>
20479 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020480
20481
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020482 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020483 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020484
20485
20486 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020487 <td class="entry_name
20488 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080020489 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020490 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020491 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020492 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020493
Zhijun Hef769dd92014-04-08 17:22:07 -070020494 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020495
Igor Murashkin6c936c12014-05-13 14:51:49 -070020496
Igor Murashkinca256272014-10-02 15:27:09 -070020497 <span class="entry_type_hwlevel">[full] </span>
20498
Igor Murashkin6c936c12014-05-13 14:51:49 -070020499
20500
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020501 <ul class="entry_type_enum">
20502 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020503 <span class="entry_type_enum_name">RGGB (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020504 </li>
20505 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020506 <span class="entry_type_enum_name">GRBG (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020507 </li>
20508 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020509 <span class="entry_type_enum_name">GBRG (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020510 </li>
20511 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020512 <span class="entry_type_enum_name">BGGR (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020513 </li>
20514 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020515 <span class="entry_type_enum_name">RGB (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080020516 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
20517values for each pixel,<wbr/> instead of just 1 16-bit value
20518per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020519 </li>
20520 </ul>
20521
20522 </td> <!-- entry_type -->
20523
20524 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070020525 <p>The arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080020526represents the colors in the top-left 2x2 section of
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070020527the sensor,<wbr/> in reading order.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020528 </td>
20529
20530 <td class="entry_units">
20531 </td>
20532
20533 <td class="entry_range">
20534 </td>
20535
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020536 <td class="entry_hal_version">
20537 <p>3.<wbr/>2</p>
20538 </td>
20539
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020540 <td class="entry_tags">
20541 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070020542 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020543 </ul>
20544 </td>
20545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020546 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020547
20548
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020549 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020550 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020551
20552
20553 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020554 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020555 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080020556 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020557 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020558 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020559 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020560 <span class="entry_type_container">x</span>
20561
20562 <span class="entry_type_array">
20563 2
20564 </span>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070020565 <span class="entry_type_visibility"> [public as rangeLong]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070020566
20567
Igor Murashkinca256272014-10-02 15:27:09 -070020568 <span class="entry_type_hwlevel">[full] </span>
20569
Igor Murashkin6c936c12014-05-13 14:51:49 -070020570
Igor Murashkin0b080452013-12-27 15:30:25 -080020571 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020572
20573
20574 </td> <!-- entry_type -->
20575
20576 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020577 <p>The range of image exposure times for <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> supported
20578by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020579 </td>
20580
20581 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020582 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020583 </td>
20584
20585 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020586 <p>The minimum exposure time will be less than 100 us.<wbr/> For FULL
20587capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
20588the maximum exposure time will be greater than 100ms.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020589 </td>
20590
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020591 <td class="entry_hal_version">
20592 <p>3.<wbr/>2</p>
20593 </td>
20594
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020595 <td class="entry_tags">
20596 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080020597 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020598 </ul>
20599 </td>
20600
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020601 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020602
Igor Murashkin061c6002014-01-27 16:00:26 -080020603 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020604 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin061c6002014-01-27 16:00:26 -080020605 </tr>
20606 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020607 <td class="entry_details" colspan="6">
Zhijun He7a8aea62014-03-18 13:37:23 -070020608 <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020609The maximum of the range SHOULD be at least 1 second (1e9),<wbr/> MUST be at least
20610100ms.<wbr/></p>
Igor Murashkin061c6002014-01-27 16:00:26 -080020611 </td>
20612 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020613
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020614 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020615 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020616
20617
20618 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020619 <td class="entry_name
20620 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080020621 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020622 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020623 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020624 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020625
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070020626 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020627
20628
Igor Murashkinca256272014-10-02 15:27:09 -070020629 <span class="entry_type_hwlevel">[full] </span>
20630
Igor Murashkin6c936c12014-05-13 14:51:49 -070020631
20632
20633
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020634 </td> <!-- entry_type -->
20635
20636 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020637 <p>The maximum possible frame duration (minimum frame rate) for
20638<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> that is supported this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020639 </td>
20640
20641 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020642 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020643 </td>
20644
20645 <td class="entry_range">
Zhijun He7a8aea62014-03-18 13:37:23 -070020646 <p>For FULL capability devices
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020647(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> at least 100ms.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020648 </td>
20649
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020650 <td class="entry_hal_version">
20651 <p>3.<wbr/>2</p>
20652 </td>
20653
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020654 <td class="entry_tags">
20655 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080020656 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020657 </ul>
20658 </td>
20659
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020660 </tr>
20661 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020662 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020663 </tr>
20664 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020665 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020666 <p>Attempting to use frame durations beyond the maximum will result in the frame
20667duration being clipped to the maximum.<wbr/> See that control for a full definition of frame
20668durations.<wbr/></p>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070020669<p>Refer to <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
20670for the minimum frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020671 </td>
20672 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020673
Igor Murashkin061c6002014-01-27 16:00:26 -080020674 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020675 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin061c6002014-01-27 16:00:26 -080020676 </tr>
20677 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020678 <td class="entry_details" colspan="6">
Zhijun He7a8aea62014-03-18 13:37:23 -070020679 <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
20680The maximum of the range SHOULD be at least
206811 second (1e9),<wbr/> MUST be at least 100ms (100e6).<wbr/></p>
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080020682<p><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a> must be greater or
20683equal to the <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a> max
20684value (since exposure time overrides frame duration).<wbr/></p>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080020685<p>Available minimum frame durations for JPEG must be no greater
20686than that of the YUV_<wbr/>420_<wbr/>888/<wbr/>IMPLEMENTATION_<wbr/>DEFINED
20687minimum frame durations (for that respective size).<wbr/></p>
20688<p>Since JPEG processing is considered offline and can take longer than
20689a single uncompressed capture,<wbr/> refer to
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080020690<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080020691for details about encoding this scenario.<wbr/></p>
Igor Murashkin061c6002014-01-27 16:00:26 -080020692 </td>
20693 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020694
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020695 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020696 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020697
20698
20699 <tr class="entry" id="static_android.sensor.info.physicalSize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020700 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020701 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080020702 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020703 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020704 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020705 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020706 <span class="entry_type_container">x</span>
20707
20708 <span class="entry_type_array">
20709 2
20710 </span>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070020711 <span class="entry_type_visibility"> [public as sizeF]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070020712
20713
Igor Murashkinca256272014-10-02 15:27:09 -070020714 <span class="entry_type_hwlevel">[legacy] </span>
20715
Igor Murashkin6c936c12014-05-13 14:51:49 -070020716
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020717 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020718
20719
20720 </td> <!-- entry_type -->
20721
20722 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080020723 <p>The physical dimensions of the full pixel
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020724array.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020725 </td>
20726
20727 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020728 Millimeters
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020729 </td>
20730
20731 <td class="entry_range">
20732 </td>
20733
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020734 <td class="entry_hal_version">
20735 <p>3.<wbr/>2</p>
20736 </td>
20737
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020738 <td class="entry_tags">
20739 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080020740 <li><a href="#tag_V1">V1</a></li>
20741 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020742 </ul>
20743 </td>
20744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020745 </tr>
20746 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020747 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020748 </tr>
20749 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020750 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020751 <p>This is the physical size of the sensor pixel
20752array defined by <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020753 </td>
20754 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020755
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020756 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020757 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020758 </tr>
20759 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020760 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070020761 <p>Needed for FOV calculation for old API</p>
20762 </td>
20763 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020764
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020765 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020766 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020767
20768
20769 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020770 <td class="entry_name
20771 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080020772 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020773 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020774 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020775 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020776 <span class="entry_type_container">x</span>
20777
20778 <span class="entry_type_array">
20779 2
20780 </span>
Ruben Brunkcd05eed2014-01-31 12:38:46 -080020781 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020782
20783
Igor Murashkinca256272014-10-02 15:27:09 -070020784 <span class="entry_type_hwlevel">[legacy] </span>
20785
Igor Murashkin6c936c12014-05-13 14:51:49 -070020786
20787
20788
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020789 </td> <!-- entry_type -->
20790
20791 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020792 <p>Dimensions of the full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080020793including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020794 </td>
20795
20796 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020797 Pixels
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020798 </td>
20799
20800 <td class="entry_range">
20801 </td>
20802
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020803 <td class="entry_hal_version">
20804 <p>3.<wbr/>2</p>
20805 </td>
20806
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020807 <td class="entry_tags">
20808 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070020809 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080020810 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020811 </ul>
20812 </td>
20813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020814 </tr>
20815 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020816 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020817 </tr>
20818 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020819 <td class="entry_details" colspan="6">
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020820 <p>The pixel count of the full pixel array of the image sensor,<wbr/> which covers
20821<a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a> area.<wbr/> This represents the full pixel dimensions of
20822the raw buffers produced by this sensor.<wbr/></p>
20823<p>If a camera device supports raw sensor formats,<wbr/> either this or
20824<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> is the maximum dimensions for the raw
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020825output formats listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>
20826(this depends on whether or not the image sensor returns buffers containing pixels that
20827are not part of the active array region for blacklevel calibration or other purposes).<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020828<p>Some parts of the full pixel array may not receive light from the scene,<wbr/>
Ruben Brunk40c0fdb2015-06-11 18:23:41 -070020829or be otherwise inactive.<wbr/> The <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> key
20830defines the rectangle of active pixels that will be included in processed image
20831formats.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020832 </td>
20833 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020834
20835
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020836 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020837 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020838
20839
20840 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Igor Murashkin6c936c12014-05-13 14:51:49 -070020841 <td class="entry_name
20842 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080020843 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020844 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020845 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080020846 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020847
Ruben Brunk92dd85b2014-02-10 19:16:56 -080020848 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020849
20850
Igor Murashkin6c936c12014-05-13 14:51:49 -070020851
20852
20853
Igor Murashkinca256272014-10-02 15:27:09 -070020854
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020855 </td> <!-- entry_type -->
20856
20857 <td class="entry_description">
Ruben Brunk92dd85b2014-02-10 19:16:56 -080020858 <p>Maximum raw value output by sensor.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020859 </td>
20860
20861 <td class="entry_units">
20862 </td>
20863
20864 <td class="entry_range">
Ruben Brunkd9d12132014-03-18 14:37:04 -070020865 <p>&gt; 255 (8-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020866 </td>
20867
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020868 <td class="entry_hal_version">
20869 <p>3.<wbr/>2</p>
20870 </td>
20871
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020872 <td class="entry_tags">
20873 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070020874 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020875 </ul>
20876 </td>
20877
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020878 </tr>
20879 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020880 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020881 </tr>
20882 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020883 <td class="entry_details" colspan="6">
Ruben Brunk92dd85b2014-02-10 19:16:56 -080020884 <p>This specifies the fully-saturated encoding level for the raw
20885sample values from the sensor.<wbr/> This is typically caused by the
20886sensor becoming highly non-linear or clipping.<wbr/> The minimum for
20887each channel is specified by the offset in the
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070020888<a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> key.<wbr/></p>
Ruben Brunk92dd85b2014-02-10 19:16:56 -080020889<p>The white level is typically determined either by sensor bit depth
Ruben Brunkd9d12132014-03-18 14:37:04 -070020890(8-14 bits is expected),<wbr/> or by the point where the sensor response
Ruben Brunk92dd85b2014-02-10 19:16:56 -080020891becomes too non-linear to be useful.<wbr/> The default value for this is
20892maximum representable value for a 16-bit raw sample (2^16 - 1).<wbr/></p>
Zhijun Hed363a122015-11-12 17:27:27 -080020893<p>The white level values of captured images may vary for different
20894capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> This key
20895represents a coarse approximation for such case.<wbr/> It is recommended
20896to use <a href="#dynamic_android.sensor.dynamicWhiteLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level</a> for captures when supported
20897by the camera device,<wbr/> which provides more accurate white level values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020898 </td>
20899 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020900
Ruben Brunkd9d12132014-03-18 14:37:04 -070020901 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020902 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunkd9d12132014-03-18 14:37:04 -070020903 </tr>
20904 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020905 <td class="entry_details" colspan="6">
Ruben Brunkd9d12132014-03-18 14:37:04 -070020906 <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
20907so the value for linear sensors should not be significantly lower
20908than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
20909 </td>
20910 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080020911
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020912 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080020913 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080020914
Zhijun He91449c82014-06-12 10:43:32 -070020915
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070020916 <tr class="entry" id="static_android.sensor.info.timestampSource">
Zhijun He91449c82014-06-12 10:43:32 -070020917 <td class="entry_name
Yin-Chia Yehde687b92016-06-06 14:25:11 -070020918 " rowspan="5">
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070020919 android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source
Zhijun He91449c82014-06-12 10:43:32 -070020920 </td>
20921 <td class="entry_type">
20922 <span class="entry_type_name entry_type_name_enum">byte</span>
20923
20924 <span class="entry_type_visibility"> [public]</span>
20925
20926
Igor Murashkinca256272014-10-02 15:27:09 -070020927 <span class="entry_type_hwlevel">[legacy] </span>
20928
Zhijun He91449c82014-06-12 10:43:32 -070020929
20930
20931 <ul class="entry_type_enum">
20932 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020933 <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
Zhijun He91449c82014-06-12 10:43:32 -070020934 <span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in nanoseconds and monotonic,<wbr/>
20935but can not be compared to timestamps from other subsystems
20936(e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
20937camera devices in the same system.<wbr/> Timestamps between streams and results for
20938a single camera instance are comparable,<wbr/> and the timestamps for all buffers
20939and the result metadata generated by a single capture are identical.<wbr/></p></span>
20940 </li>
20941 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080020942 <span class="entry_type_enum_name">REALTIME (v3.2)</span>
Zhijun He91449c82014-06-12 10:43:32 -070020943 <span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in the same timebase as
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070020944<a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/>
Zhijun He91449c82014-06-12 10:43:32 -070020945and they can be compared to other timestamps using that base.<wbr/></p></span>
20946 </li>
20947 </ul>
20948
20949 </td> <!-- entry_type -->
20950
20951 <td class="entry_description">
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070020952 <p>The time base source for sensor capture start timestamps.<wbr/></p>
Zhijun He91449c82014-06-12 10:43:32 -070020953 </td>
20954
20955 <td class="entry_units">
20956 </td>
20957
20958 <td class="entry_range">
20959 </td>
20960
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020961 <td class="entry_hal_version">
20962 <p>3.<wbr/>2</p>
20963 </td>
20964
Zhijun He91449c82014-06-12 10:43:32 -070020965 <td class="entry_tags">
20966 <ul class="entry_tags">
20967 <li><a href="#tag_V1">V1</a></li>
20968 </ul>
20969 </td>
20970
20971 </tr>
20972 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020973 <th class="th_details" colspan="6">Details</th>
Zhijun He91449c82014-06-12 10:43:32 -070020974 </tr>
20975 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020976 <td class="entry_details" colspan="6">
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070020977 <p>The timestamps provided for captures are always in nanoseconds and monotonic,<wbr/> but
20978may not based on a time source that can be compared to other system time sources.<wbr/></p>
20979<p>This characteristic defines the source for the timestamps,<wbr/> and therefore whether they
20980can be compared against other system time sources/<wbr/>timestamps.<wbr/></p>
Zhijun He91449c82014-06-12 10:43:32 -070020981 </td>
20982 </tr>
20983
Yin-Chia Yehde687b92016-06-06 14:25:11 -070020984 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020985 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yehde687b92016-06-06 14:25:11 -070020986 </tr>
20987 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020988 <td class="entry_details" colspan="6">
Yin-Chia Yehde687b92016-06-06 14:25:11 -070020989 <p>For camera devices implement UNKNOWN,<wbr/> the camera framework expects that the timestamp
20990source to be SYSTEM_<wbr/>TIME_<wbr/>MONOTONIC.<wbr/> For camera devices implement REALTIME,<wbr/> the camera
20991framework expects that the timestamp source to be SYSTEM_<wbr/>TIME_<wbr/>BOOTTIME.<wbr/> See
20992system/<wbr/>core/<wbr/>include/<wbr/>utils/<wbr/>Timers.<wbr/>h for the definition of SYSTEM_<wbr/>TIME_<wbr/>MONOTONIC and
20993SYSTEM_<wbr/>TIME_<wbr/>BOOTTIME.<wbr/> Note that HAL must follow above expectation; otherwise video
20994recording might suffer unexpected behavior.<wbr/></p>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080020995<p>Also,<wbr/> camera devices which implement REALTIME must pass the ITS sensor fusion test which
Yin-Chia Yehde687b92016-06-06 14:25:11 -070020996tests the alignment between camera timestamps and gyro sensor timestamps.<wbr/></p>
20997 </td>
20998 </tr>
Zhijun He91449c82014-06-12 10:43:32 -070020999
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021000 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He91449c82014-06-12 10:43:32 -070021001 <!-- end of entry -->
21002
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021003
21004 <tr class="entry" id="static_android.sensor.info.lensShadingApplied">
21005 <td class="entry_name
21006 " rowspan="3">
21007 android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied
21008 </td>
21009 <td class="entry_type">
21010 <span class="entry_type_name entry_type_name_enum">byte</span>
21011
21012 <span class="entry_type_visibility"> [public as boolean]</span>
21013
21014
21015
21016
21017
21018 <ul class="entry_type_enum">
21019 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021020 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021021 </li>
21022 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021023 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021024 </li>
21025 </ul>
21026
21027 </td> <!-- entry_type -->
21028
21029 <td class="entry_description">
21030 <p>Whether the RAW images output from this camera device are subject to
21031lens shading correction.<wbr/></p>
21032 </td>
21033
21034 <td class="entry_units">
21035 </td>
21036
21037 <td class="entry_range">
21038 </td>
21039
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021040 <td class="entry_hal_version">
21041 <p>3.<wbr/>2</p>
21042 </td>
21043
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021044 <td class="entry_tags">
21045 </td>
21046
21047 </tr>
21048 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021049 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021050 </tr>
21051 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021052 <td class="entry_details" colspan="6">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021053 <p>If TRUE,<wbr/> all images produced by the camera device in the RAW image formats will
21054have lens shading correction already applied to it.<wbr/> If FALSE,<wbr/> the images will
21055not be adjusted for lens shading correction.<wbr/>
21056See <a href="#static_android.request.maxNumOutputRaw">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw</a> for a list of RAW image formats.<wbr/></p>
21057<p>This key will be <code>null</code> for all devices do not report this information.<wbr/>
21058Devices with RAW capability will always report this information in this key.<wbr/></p>
21059 </td>
21060 </tr>
21061
21062
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021063 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080021064 <!-- end of entry -->
21065
Ruben Brunk93192942015-07-01 11:32:39 -070021066
21067 <tr class="entry" id="static_android.sensor.info.preCorrectionActiveArraySize">
21068 <td class="entry_name
21069 " rowspan="5">
21070 android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
21071 </td>
21072 <td class="entry_type">
21073 <span class="entry_type_name">int32</span>
21074 <span class="entry_type_container">x</span>
21075
21076 <span class="entry_type_array">
21077 4
21078 </span>
21079 <span class="entry_type_visibility"> [public as rectangle]</span>
21080
21081
21082 <span class="entry_type_hwlevel">[legacy] </span>
21083
21084
21085 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
21086
21087
21088 </td> <!-- entry_type -->
21089
21090 <td class="entry_description">
21091 <p>The area of the image sensor which corresponds to active pixels prior to the
21092application of any geometric distortion correction.<wbr/></p>
21093 </td>
21094
21095 <td class="entry_units">
21096 Pixel coordinates on the image sensor
21097 </td>
21098
21099 <td class="entry_range">
21100 </td>
21101
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021102 <td class="entry_hal_version">
21103 <p>3.<wbr/>2</p>
21104 </td>
21105
Ruben Brunk93192942015-07-01 11:32:39 -070021106 <td class="entry_tags">
21107 <ul class="entry_tags">
21108 <li><a href="#tag_RAW">RAW</a></li>
21109 </ul>
21110 </td>
21111
21112 </tr>
21113 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021114 <th class="th_details" colspan="6">Details</th>
Ruben Brunk93192942015-07-01 11:32:39 -070021115 </tr>
21116 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021117 <td class="entry_details" colspan="6">
Ruben Brunk93192942015-07-01 11:32:39 -070021118 <p>This is the rectangle representing the size of the active region of the sensor (i.<wbr/>e.<wbr/>
21119the region that actually receives light from the scene) before any geometric correction
21120has been applied,<wbr/> and should be treated as the active region rectangle for any of the
21121raw formats.<wbr/> All metadata associated with raw processing (e.<wbr/>g.<wbr/> the lens shading
21122correction map,<wbr/> and radial distortion fields) treats the top,<wbr/> left of this rectangle as
21123the origin,<wbr/> (0,<wbr/>0).<wbr/></p>
21124<p>The size of this region determines the maximum field of view and the maximum number of
21125pixels that an image from this sensor can contain,<wbr/> prior to the application of
21126geometric distortion correction.<wbr/> The effective maximum pixel dimensions of a
21127post-distortion-corrected image is given by the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>
21128field,<wbr/> and the effective maximum field of view for a post-distortion-corrected image
21129can be calculated by applying the geometric distortion correction fields to this
21130rectangle,<wbr/> and cropping to the rectangle given in <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21131<p>E.<wbr/>g.<wbr/> to calculate position of a pixel,<wbr/> (x,<wbr/>y),<wbr/> in a processed YUV output image with the
21132dimensions in <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> given the position of a pixel,<wbr/>
21133(x',<wbr/> y'),<wbr/> in the raw pixel array with dimensions give in
21134<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>:</p>
21135<ol>
21136<li>Choose a pixel (x',<wbr/> y') within the active array region of the raw buffer given in
21137<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>,<wbr/> otherwise this pixel is considered
21138to be outside of the FOV,<wbr/> and will not be shown in the processed output image.<wbr/></li>
21139<li>Apply geometric distortion correction to get the post-distortion pixel coordinate,<wbr/>
21140(x_<wbr/>i,<wbr/> y_<wbr/>i).<wbr/> When applying geometric correction metadata,<wbr/> note that metadata for raw
21141buffers is defined relative to the top,<wbr/> left of the
21142<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> rectangle.<wbr/></li>
21143<li>If the resulting corrected pixel coordinate is within the region given in
21144<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> then the position of this pixel in the
21145processed output image buffer is <code>(x_<wbr/>i - activeArray.<wbr/>left,<wbr/> y_<wbr/>i - activeArray.<wbr/>top)</code>,<wbr/>
21146when the top,<wbr/> left coordinate of that buffer is treated as (0,<wbr/> 0).<wbr/></li>
21147</ol>
21148<p>Thus,<wbr/> for pixel x',<wbr/>y' = (25,<wbr/> 25) on a sensor where <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>
21149is (100,<wbr/>100),<wbr/> <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> is (10,<wbr/> 10,<wbr/> 100,<wbr/> 100),<wbr/>
21150<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> is (20,<wbr/> 20,<wbr/> 80,<wbr/> 80),<wbr/> and the geometric distortion
21151correction doesn't change the pixel coordinate,<wbr/> the resulting pixel selected in
21152pixel coordinates would be x,<wbr/>y = (25,<wbr/> 25) relative to the top,<wbr/>left of the raw buffer
21153with dimensions given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>,<wbr/> and would be (5,<wbr/> 5)
21154relative to the top,<wbr/>left of post-processed YUV output buffer with dimensions given in
21155<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21156<p>The currently supported fields that correct for geometric distortion are:</p>
21157<ol>
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070021158<li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>.<wbr/></li>
Ruben Brunk93192942015-07-01 11:32:39 -070021159</ol>
21160<p>If all of the geometric distortion fields are no-ops,<wbr/> this rectangle will be the same
21161as the post-distortion-corrected rectangle given in
21162<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21163<p>This rectangle is defined relative to the full pixel array; (0,<wbr/>0) is the top-left of
21164the full pixel array,<wbr/> and the size of the full pixel array is given by
21165<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21166<p>The pre-correction active array may be smaller than the full pixel array,<wbr/> since the
21167full array may include black calibration pixels or other inactive regions.<wbr/></p>
21168 </td>
21169 </tr>
21170
21171 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021172 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk93192942015-07-01 11:32:39 -070021173 </tr>
21174 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021175 <td class="entry_details" colspan="6">
Ruben Brunk93192942015-07-01 11:32:39 -070021176 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
21177&gt;= <code>(0,<wbr/>0)</code>.<wbr/>
21178The <code>(width,<wbr/> height)</code> must be &lt;= <code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
21179<p>If omitted by the HAL implementation,<wbr/> the camera framework will assume that this is
21180the same as the post-correction active array region given in
21181<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
21182 </td>
21183 </tr>
21184
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021185 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk93192942015-07-01 11:32:39 -070021186 <!-- end of entry -->
21187
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021188
21189
21190
21191
Ruben Brunk7db06e22014-04-15 17:43:56 -070021192 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021193 <td class="entry_name
21194 " rowspan="5">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021195 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
21196 </td>
21197 <td class="entry_type">
21198 <span class="entry_type_name entry_type_name_enum">byte</span>
21199
21200 <span class="entry_type_visibility"> [public]</span>
21201
Igor Murashkin6c936c12014-05-13 14:51:49 -070021202
21203
21204
Igor Murashkinca256272014-10-02 15:27:09 -070021205
Ruben Brunk7db06e22014-04-15 17:43:56 -070021206 <ul class="entry_type_enum">
21207 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021208 <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021209 <span class="entry_type_enum_value">1</span>
21210 </li>
21211 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021212 <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021213 <span class="entry_type_enum_value">2</span>
21214 </li>
21215 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021216 <span class="entry_type_enum_name">TUNGSTEN (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021217 <span class="entry_type_enum_value">3</span>
21218 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
21219 </li>
21220 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021221 <span class="entry_type_enum_name">FLASH (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021222 <span class="entry_type_enum_value">4</span>
21223 </li>
21224 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021225 <span class="entry_type_enum_name">FINE_WEATHER (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021226 <span class="entry_type_enum_value">9</span>
21227 </li>
21228 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021229 <span class="entry_type_enum_name">CLOUDY_WEATHER (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021230 <span class="entry_type_enum_value">10</span>
21231 </li>
21232 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021233 <span class="entry_type_enum_name">SHADE (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021234 <span class="entry_type_enum_value">11</span>
21235 </li>
21236 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021237 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021238 <span class="entry_type_enum_value">12</span>
21239 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
21240 </li>
21241 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021242 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021243 <span class="entry_type_enum_value">13</span>
21244 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
21245 </li>
21246 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021247 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021248 <span class="entry_type_enum_value">14</span>
21249 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
21250 </li>
21251 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021252 <span class="entry_type_enum_name">WHITE_FLUORESCENT (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021253 <span class="entry_type_enum_value">15</span>
21254 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
21255 </li>
21256 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021257 <span class="entry_type_enum_name">STANDARD_A (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021258 <span class="entry_type_enum_value">17</span>
21259 </li>
21260 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021261 <span class="entry_type_enum_name">STANDARD_B (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021262 <span class="entry_type_enum_value">18</span>
21263 </li>
21264 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021265 <span class="entry_type_enum_name">STANDARD_C (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021266 <span class="entry_type_enum_value">19</span>
21267 </li>
21268 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021269 <span class="entry_type_enum_name">D55 (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021270 <span class="entry_type_enum_value">20</span>
21271 </li>
21272 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021273 <span class="entry_type_enum_name">D65 (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021274 <span class="entry_type_enum_value">21</span>
21275 </li>
21276 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021277 <span class="entry_type_enum_name">D75 (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021278 <span class="entry_type_enum_value">22</span>
21279 </li>
21280 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021281 <span class="entry_type_enum_name">D50 (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021282 <span class="entry_type_enum_value">23</span>
21283 </li>
21284 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080021285 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN (v3.2)</span>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021286 <span class="entry_type_enum_value">24</span>
21287 </li>
21288 </ul>
21289
21290 </td> <!-- entry_type -->
21291
21292 <td class="entry_description">
21293 <p>The standard reference illuminant used as the scene light source when
21294calculating the <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
21295<a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
21296<a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> matrices.<wbr/></p>
21297 </td>
21298
21299 <td class="entry_units">
21300 </td>
21301
21302 <td class="entry_range">
21303 </td>
21304
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021305 <td class="entry_hal_version">
21306 <p>3.<wbr/>2</p>
21307 </td>
21308
Ruben Brunk7db06e22014-04-15 17:43:56 -070021309 <td class="entry_tags">
21310 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021311 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021312 </ul>
21313 </td>
21314
21315 </tr>
21316 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021317 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021318 </tr>
21319 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021320 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070021321 <p>The values in this key correspond to the values defined for the
Ruben Brunk7db06e22014-04-15 17:43:56 -070021322EXIF LightSource tag.<wbr/> These illuminants are standard light sources
21323that are often used calibrating camera devices.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070021324<p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021325<a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
21326<a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> will also be present.<wbr/></p>
21327<p>Some devices may choose to provide a second set of calibration
21328information for improved quality,<wbr/> including
21329<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> and its corresponding matrices.<wbr/></p>
21330 </td>
21331 </tr>
21332
21333 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021334 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021335 </tr>
21336 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021337 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021338 <p>The first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021339and corresponding matrices must be present to support the RAW capability
21340and DNG output.<wbr/></p>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021341<p>When producing raw images with a color profile that has only been
21342calibrated against a single light source,<wbr/> it is valid to omit
21343<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> along with the
21344<a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/> <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/>
21345and <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
21346<p>If only <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> is included,<wbr/> it should be
21347chosen so that it is representative of typical scene lighting.<wbr/> In
21348general,<wbr/> D50 or DAYLIGHT will be chosen for this case.<wbr/></p>
21349<p>If both <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> and
21350<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> are included,<wbr/> they should be
21351chosen to represent the typical range of scene lighting conditions.<wbr/>
21352In general,<wbr/> low color temperature illuminant such as Standard-A will
21353be chosen for the first reference illuminant and a higher color
21354temperature illuminant such as D65 will be chosen for the second
21355reference illuminant.<wbr/></p>
21356 </td>
21357 </tr>
21358
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021359 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021360 <!-- end of entry -->
21361
21362
21363 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021364 <td class="entry_name
21365 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021366 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
21367 </td>
21368 <td class="entry_type">
21369 <span class="entry_type_name">byte</span>
21370
21371 <span class="entry_type_visibility"> [public]</span>
21372
21373
Igor Murashkin6c936c12014-05-13 14:51:49 -070021374
21375
21376
Igor Murashkinca256272014-10-02 15:27:09 -070021377
Ruben Brunk7db06e22014-04-15 17:43:56 -070021378 </td> <!-- entry_type -->
21379
21380 <td class="entry_description">
21381 <p>The standard reference illuminant used as the scene light source when
21382calculating the <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
21383<a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
21384<a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
21385 </td>
21386
21387 <td class="entry_units">
21388 </td>
21389
21390 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070021391 <p>Any value listed in <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a></p>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021392 </td>
21393
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021394 <td class="entry_hal_version">
21395 <p>3.<wbr/>2</p>
21396 </td>
21397
Ruben Brunk7db06e22014-04-15 17:43:56 -070021398 <td class="entry_tags">
21399 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021400 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021401 </ul>
21402 </td>
21403
21404 </tr>
21405 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021406 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021407 </tr>
21408 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021409 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070021410 <p>See <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> for more details.<wbr/></p>
21411<p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021412<a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
21413<a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> will also be present.<wbr/></p>
21414 </td>
21415 </tr>
21416
21417
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021418 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021419 <!-- end of entry -->
21420
21421
21422 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021423 <td class="entry_name
21424 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021425 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
21426 </td>
21427 <td class="entry_type">
21428 <span class="entry_type_name">rational</span>
21429 <span class="entry_type_container">x</span>
21430
21431 <span class="entry_type_array">
21432 3 x 3
21433 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070021434 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021435
21436
21437
Igor Murashkinca256272014-10-02 15:27:09 -070021438
Ruben Brunk7db06e22014-04-15 17:43:56 -070021439 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
21440
21441
21442 </td> <!-- entry_type -->
21443
21444 <td class="entry_description">
21445 <p>A per-device calibration transform matrix that maps from the
21446reference sensor colorspace to the actual device sensor colorspace.<wbr/></p>
21447 </td>
21448
21449 <td class="entry_units">
21450 </td>
21451
21452 <td class="entry_range">
21453 </td>
21454
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021455 <td class="entry_hal_version">
21456 <p>3.<wbr/>2</p>
21457 </td>
21458
Ruben Brunk7db06e22014-04-15 17:43:56 -070021459 <td class="entry_tags">
21460 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021461 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021462 </ul>
21463 </td>
21464
21465 </tr>
21466 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021467 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021468 </tr>
21469 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021470 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021471 <p>This matrix is used to correct for per-device variations in the
21472sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
21473<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
21474contains a per-device calibration transform that maps colors
21475from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
21476colorspace) into this camera device's native sensor color
21477space under the first reference illuminant
21478(<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
21479 </td>
21480 </tr>
21481
21482
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021483 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021484 <!-- end of entry -->
21485
21486
21487 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021488 <td class="entry_name
21489 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021490 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
21491 </td>
21492 <td class="entry_type">
21493 <span class="entry_type_name">rational</span>
21494 <span class="entry_type_container">x</span>
21495
21496 <span class="entry_type_array">
21497 3 x 3
21498 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070021499 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021500
21501
21502
Igor Murashkinca256272014-10-02 15:27:09 -070021503
Ruben Brunk7db06e22014-04-15 17:43:56 -070021504 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
21505
21506
21507 </td> <!-- entry_type -->
21508
21509 <td class="entry_description">
21510 <p>A per-device calibration transform matrix that maps from the
21511reference sensor colorspace to the actual device sensor colorspace
21512(this is the colorspace of the raw buffer data).<wbr/></p>
21513 </td>
21514
21515 <td class="entry_units">
21516 </td>
21517
21518 <td class="entry_range">
21519 </td>
21520
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021521 <td class="entry_hal_version">
21522 <p>3.<wbr/>2</p>
21523 </td>
21524
Ruben Brunk7db06e22014-04-15 17:43:56 -070021525 <td class="entry_tags">
21526 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021527 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021528 </ul>
21529 </td>
21530
21531 </tr>
21532 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021533 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021534 </tr>
21535 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021536 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021537 <p>This matrix is used to correct for per-device variations in the
21538sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
21539<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
21540contains a per-device calibration transform that maps colors
21541from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
21542colorspace) into this camera device's native sensor color
21543space under the second reference illuminant
21544(<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
21545<p>This matrix will only be present if the second reference
21546illuminant is present.<wbr/></p>
21547 </td>
21548 </tr>
21549
21550
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021551 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021552 <!-- end of entry -->
21553
21554
21555 <tr class="entry" id="static_android.sensor.colorTransform1">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021556 <td class="entry_name
21557 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021558 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
21559 </td>
21560 <td class="entry_type">
21561 <span class="entry_type_name">rational</span>
21562 <span class="entry_type_container">x</span>
21563
21564 <span class="entry_type_array">
21565 3 x 3
21566 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070021567 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021568
21569
21570
Igor Murashkinca256272014-10-02 15:27:09 -070021571
Ruben Brunk7db06e22014-04-15 17:43:56 -070021572 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
21573
21574
21575 </td> <!-- entry_type -->
21576
21577 <td class="entry_description">
21578 <p>A matrix that transforms color values from CIE XYZ color space to
21579reference sensor color space.<wbr/></p>
21580 </td>
21581
21582 <td class="entry_units">
21583 </td>
21584
21585 <td class="entry_range">
21586 </td>
21587
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021588 <td class="entry_hal_version">
21589 <p>3.<wbr/>2</p>
21590 </td>
21591
Ruben Brunk7db06e22014-04-15 17:43:56 -070021592 <td class="entry_tags">
21593 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021594 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021595 </ul>
21596 </td>
21597
21598 </tr>
21599 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021600 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021601 </tr>
21602 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021603 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021604 <p>This matrix is used to convert from the standard CIE XYZ color
21605space to the reference sensor colorspace,<wbr/> and is used when processing
21606raw buffer data.<wbr/></p>
21607<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
21608contains a color transform matrix that maps colors from the CIE
21609XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
21610"golden module" colorspace) under the first reference illuminant
21611(<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
21612<p>The white points chosen in both the reference sensor color space
21613and the CIE XYZ colorspace when calculating this transform will
21614match the standard white point for the first reference illuminant
21615(i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
21616 </td>
21617 </tr>
21618
21619
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021620 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021621 <!-- end of entry -->
21622
21623
21624 <tr class="entry" id="static_android.sensor.colorTransform2">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021625 <td class="entry_name
21626 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021627 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
21628 </td>
21629 <td class="entry_type">
21630 <span class="entry_type_name">rational</span>
21631 <span class="entry_type_container">x</span>
21632
21633 <span class="entry_type_array">
21634 3 x 3
21635 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070021636 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021637
21638
21639
Igor Murashkinca256272014-10-02 15:27:09 -070021640
Ruben Brunk7db06e22014-04-15 17:43:56 -070021641 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
21642
21643
21644 </td> <!-- entry_type -->
21645
21646 <td class="entry_description">
21647 <p>A matrix that transforms color values from CIE XYZ color space to
21648reference sensor color space.<wbr/></p>
21649 </td>
21650
21651 <td class="entry_units">
21652 </td>
21653
21654 <td class="entry_range">
21655 </td>
21656
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021657 <td class="entry_hal_version">
21658 <p>3.<wbr/>2</p>
21659 </td>
21660
Ruben Brunk7db06e22014-04-15 17:43:56 -070021661 <td class="entry_tags">
21662 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021663 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021664 </ul>
21665 </td>
21666
21667 </tr>
21668 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021669 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021670 </tr>
21671 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021672 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021673 <p>This matrix is used to convert from the standard CIE XYZ color
21674space to the reference sensor colorspace,<wbr/> and is used when processing
21675raw buffer data.<wbr/></p>
21676<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
21677contains a color transform matrix that maps colors from the CIE
21678XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
21679"golden module" colorspace) under the second reference illuminant
21680(<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
21681<p>The white points chosen in both the reference sensor color space
21682and the CIE XYZ colorspace when calculating this transform will
21683match the standard white point for the second reference illuminant
21684(i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
21685<p>This matrix will only be present if the second reference
21686illuminant is present.<wbr/></p>
21687 </td>
21688 </tr>
21689
21690
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021691 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021692 <!-- end of entry -->
21693
21694
21695 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021696 <td class="entry_name
21697 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021698 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
21699 </td>
21700 <td class="entry_type">
21701 <span class="entry_type_name">rational</span>
21702 <span class="entry_type_container">x</span>
21703
21704 <span class="entry_type_array">
21705 3 x 3
21706 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070021707 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021708
21709
21710
Igor Murashkinca256272014-10-02 15:27:09 -070021711
Ruben Brunk7db06e22014-04-15 17:43:56 -070021712 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
21713
21714
21715 </td> <!-- entry_type -->
21716
21717 <td class="entry_description">
21718 <p>A matrix that transforms white balanced camera colors from the reference
21719sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
21720 </td>
21721
21722 <td class="entry_units">
21723 </td>
21724
21725 <td class="entry_range">
21726 </td>
21727
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021728 <td class="entry_hal_version">
21729 <p>3.<wbr/>2</p>
21730 </td>
21731
Ruben Brunk7db06e22014-04-15 17:43:56 -070021732 <td class="entry_tags">
21733 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021734 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021735 </ul>
21736 </td>
21737
21738 </tr>
21739 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021740 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021741 </tr>
21742 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021743 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021744 <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
21745is used when processing raw buffer data.<wbr/></p>
21746<p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
21747a color transform matrix that maps white balanced colors from the
21748reference sensor color space to the CIE XYZ color space with a D50 white
21749point.<wbr/></p>
21750<p>Under the first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
21751this matrix is chosen so that the standard white point for this reference
21752illuminant in the reference sensor colorspace is mapped to D50 in the
21753CIE XYZ colorspace.<wbr/></p>
21754 </td>
21755 </tr>
21756
21757
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021758 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021759 <!-- end of entry -->
21760
21761
21762 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021763 <td class="entry_name
21764 " rowspan="3">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021765 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
21766 </td>
21767 <td class="entry_type">
21768 <span class="entry_type_name">rational</span>
21769 <span class="entry_type_container">x</span>
21770
21771 <span class="entry_type_array">
21772 3 x 3
21773 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070021774 <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021775
21776
21777
Igor Murashkinca256272014-10-02 15:27:09 -070021778
Ruben Brunk7db06e22014-04-15 17:43:56 -070021779 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
21780
21781
21782 </td> <!-- entry_type -->
21783
21784 <td class="entry_description">
21785 <p>A matrix that transforms white balanced camera colors from the reference
21786sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
21787 </td>
21788
21789 <td class="entry_units">
21790 </td>
21791
21792 <td class="entry_range">
21793 </td>
21794
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021795 <td class="entry_hal_version">
21796 <p>3.<wbr/>2</p>
21797 </td>
21798
Ruben Brunk7db06e22014-04-15 17:43:56 -070021799 <td class="entry_tags">
21800 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021801 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021802 </ul>
21803 </td>
21804
21805 </tr>
21806 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021807 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021808 </tr>
21809 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021810 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070021811 <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
21812is used when processing raw buffer data.<wbr/></p>
21813<p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
21814a color transform matrix that maps white balanced colors from the
21815reference sensor color space to the CIE XYZ color space with a D50 white
21816point.<wbr/></p>
21817<p>Under the second reference illuminant (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>)
21818this matrix is chosen so that the standard white point for this reference
21819illuminant in the reference sensor colorspace is mapped to D50 in the
21820CIE XYZ colorspace.<wbr/></p>
21821<p>This matrix will only be present if the second reference
21822illuminant is present.<wbr/></p>
21823 </td>
21824 </tr>
21825
21826
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021827 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7db06e22014-04-15 17:43:56 -070021828 <!-- end of entry -->
21829
21830
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021831 <tr class="entry" id="static_android.sensor.baseGainFactor">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021832 <td class="entry_name
21833 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080021834 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080021835 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021836 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080021837 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021838
Zhijun He66e62a42014-05-23 11:02:34 -070021839 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021840
21841
Igor Murashkin6c936c12014-05-13 14:51:49 -070021842
21843
21844
Igor Murashkinca256272014-10-02 15:27:09 -070021845
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021846 </td> <!-- entry_type -->
21847
21848 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080021849 <p>Gain factor from electrons to raw units when
21850ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021851 </td>
21852
21853 <td class="entry_units">
21854 </td>
21855
21856 <td class="entry_range">
21857 </td>
21858
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021859 <td class="entry_hal_version">
21860 <p>3.<wbr/>2</p>
21861 </td>
21862
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021863 <td class="entry_tags">
21864 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070021865 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021866 </ul>
21867 </td>
21868
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021869 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080021870
21871
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021872 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021873 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021874
21875
21876 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021877 <td class="entry_name
Ruben Brunkcc09de12014-06-05 13:20:47 -070021878 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080021879 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080021880 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021881 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080021882 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021883 <span class="entry_type_container">x</span>
21884
21885 <span class="entry_type_array">
21886 4
21887 </span>
Ruben Brunkcc09de12014-06-05 13:20:47 -070021888 <span class="entry_type_visibility"> [public as blackLevelPattern]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070021889
21890
21891
Igor Murashkinca256272014-10-02 15:27:09 -070021892
Igor Murashkin0b080452013-12-27 15:30:25 -080021893 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021894
21895
21896 </td> <!-- entry_type -->
21897
21898 <td class="entry_description">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080021899 <p>A fixed black level offset for each of the color filter arrangement
21900(CFA) mosaic channels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021901 </td>
21902
21903 <td class="entry_units">
21904 </td>
21905
21906 <td class="entry_range">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080021907 <p>&gt;= 0 for each.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021908 </td>
21909
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021910 <td class="entry_hal_version">
21911 <p>3.<wbr/>2</p>
21912 </td>
21913
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021914 <td class="entry_tags">
21915 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070021916 <li><a href="#tag_RAW">RAW</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021917 </ul>
21918 </td>
21919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021920 </tr>
21921 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021922 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021923 </tr>
21924 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021925 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070021926 <p>This key specifies the zero light value for each of the CFA mosaic
Ruben Brunk92dd85b2014-02-10 19:16:56 -080021927channels in the camera sensor.<wbr/> The maximal value output by the
21928sensor is represented by the value in <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>.<wbr/></p>
Ruben Brunkcc09de12014-06-05 13:20:47 -070021929<p>The values are given in the same order as channels listed for the CFA
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070021930layout key (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>),<wbr/> i.<wbr/>e.<wbr/> the
Ruben Brunkcc09de12014-06-05 13:20:47 -070021931nth value given corresponds to the black level offset for the nth
21932color channel listed in the CFA.<wbr/></p>
Zhijun Hed363a122015-11-12 17:27:27 -080021933<p>The black level values of captured images may vary for different
21934capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> This key
21935represents a coarse approximation for such case.<wbr/> It is recommended to
21936use <a href="#dynamic_android.sensor.dynamicBlackLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level</a> or use pixels from
21937<a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> directly for captures when
21938supported by the camera device,<wbr/> which provides more accurate black
21939level values.<wbr/> For raw capture in particular,<wbr/> it is recommended to use
21940pixels from <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> to calculate black
21941level values for each frame.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021942 </td>
21943 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080021944
Ruben Brunkcc09de12014-06-05 13:20:47 -070021945 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021946 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunkcc09de12014-06-05 13:20:47 -070021947 </tr>
21948 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021949 <td class="entry_details" colspan="6">
Ruben Brunkcc09de12014-06-05 13:20:47 -070021950 <p>The values are given in row-column scan order,<wbr/> with the first value
21951corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
21952 </td>
21953 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080021954
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021955 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021956 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021957
21958
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021959 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Igor Murashkin6c936c12014-05-13 14:51:49 -070021960 <td class="entry_name
21961 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080021962 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080021963 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021964 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080021965 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021966
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070021967 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021968
21969
Igor Murashkinca256272014-10-02 15:27:09 -070021970 <span class="entry_type_hwlevel">[full] </span>
21971
Igor Murashkin6c936c12014-05-13 14:51:49 -070021972
21973
21974
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021975 </td> <!-- entry_type -->
21976
21977 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080021978 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080021979purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021980 </td>
21981
21982 <td class="entry_units">
21983 </td>
21984
21985 <td class="entry_range">
21986 </td>
21987
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080021988 <td class="entry_hal_version">
21989 <p>3.<wbr/>2</p>
21990 </td>
21991
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021992 <td class="entry_tags">
21993 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080021994 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070021995 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080021996 </ul>
21997 </td>
21998
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080021999 </tr>
22000 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022001 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022002 </tr>
22003 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022004 <td class="entry_details" colspan="6">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080022005 <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 -080022006equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080022007values above this,<wbr/> the gain applied can be a mix of analog and
22008digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022009 </td>
22010 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022011
22012
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022013 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022014 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022015
22016
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022017 <tr class="entry" id="static_android.sensor.orientation">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022018 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022019 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080022020 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022021 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022022 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080022023 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022024
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022025 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022026
22027
Igor Murashkinca256272014-10-02 15:27:09 -070022028 <span class="entry_type_hwlevel">[legacy] </span>
22029
Igor Murashkin6c936c12014-05-13 14:51:49 -070022030
22031
22032
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022033 </td> <!-- entry_type -->
22034
22035 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022036 <p>Clockwise angle through which the output image needs to be rotated to be
22037upright on the device screen in its native orientation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022038 </td>
22039
22040 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022041 Degrees of clockwise rotation; always a multiple of
Igor Murashkin0b080452013-12-27 15:30:25 -080022042 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022043 </td>
22044
22045 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022046 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022047 </td>
22048
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022049 <td class="entry_hal_version">
22050 <p>3.<wbr/>2</p>
22051 </td>
22052
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022053 <td class="entry_tags">
22054 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080022055 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022056 </ul>
22057 </td>
22058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022059 </tr>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022060 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022061 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022062 </tr>
22063 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022064 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022065 <p>Also defines the direction of rolling shutter readout,<wbr/> which is from top to bottom in
22066the sensor's coordinate system.<wbr/></p>
22067 </td>
22068 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022069
22070
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022071 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022072 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022073
22074
Ruben Brunk2bebe312014-02-06 13:04:38 -080022075 <tr class="entry" id="static_android.sensor.profileHueSatMapDimensions">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022076 <td class="entry_name
22077 " rowspan="3">
Ruben Brunk2bebe312014-02-06 13:04:38 -080022078 android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
22079 </td>
22080 <td class="entry_type">
22081 <span class="entry_type_name">int32</span>
22082 <span class="entry_type_container">x</span>
22083
22084 <span class="entry_type_array">
22085 3
22086 </span>
Zhijun Hed0f482a2014-05-06 16:18:04 -070022087 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070022088
22089
22090
Igor Murashkinca256272014-10-02 15:27:09 -070022091
Ruben Brunk2bebe312014-02-06 13:04:38 -080022092 <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>
22093
22094
22095 </td> <!-- entry_type -->
22096
22097 <td class="entry_description">
22098 <p>The number of input samples for each dimension of
22099<a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
22100 </td>
22101
22102 <td class="entry_units">
22103 </td>
22104
22105 <td class="entry_range">
22106 <p>Hue &gt;= 1,<wbr/>
22107Saturation &gt;= 2,<wbr/>
22108Value &gt;= 1</p>
22109 </td>
22110
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022111 <td class="entry_hal_version">
22112 <p>3.<wbr/>2</p>
22113 </td>
22114
Ruben Brunk2bebe312014-02-06 13:04:38 -080022115 <td class="entry_tags">
22116 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070022117 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080022118 </ul>
22119 </td>
22120
22121 </tr>
22122 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022123 <th class="th_details" colspan="6">Details</th>
Ruben Brunk2bebe312014-02-06 13:04:38 -080022124 </tr>
22125 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022126 <td class="entry_details" colspan="6">
Ruben Brunk2bebe312014-02-06 13:04:38 -080022127 <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
22128dimension of <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/> The order of the
22129dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
22130element.<wbr/></p>
22131 </td>
22132 </tr>
22133
22134
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022135 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk2bebe312014-02-06 13:04:38 -080022136 <!-- end of entry -->
22137
22138
Igor Murashkina46e02f2014-01-09 17:43:38 -080022139 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022140 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022141 " rowspan="5">
Igor Murashkina46e02f2014-01-09 17:43:38 -080022142 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
22143 </td>
22144 <td class="entry_type">
Zhijun He29a973d2014-03-27 23:54:16 -070022145 <span class="entry_type_name">int32</span>
22146 <span class="entry_type_container">x</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022147
Zhijun He29a973d2014-03-27 23:54:16 -070022148 <span class="entry_type_array">
22149 n
22150 </span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022151 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070022152
22153
22154
Igor Murashkinca256272014-10-02 15:27:09 -070022155
Zhijun He29a973d2014-03-27 23:54:16 -070022156 <div class="entry_type_notes">list of enums</div>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022157
22158
22159 </td> <!-- entry_type -->
22160
22161 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022162 <p>List of sensor test pattern modes for <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a>
22163supported by this camera device.<wbr/></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022164 </td>
22165
22166 <td class="entry_units">
22167 </td>
22168
22169 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022170 <p>Any value listed in <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022171 </td>
22172
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022173 <td class="entry_hal_version">
22174 <p>3.<wbr/>2</p>
22175 </td>
22176
Igor Murashkina46e02f2014-01-09 17:43:38 -080022177 <td class="entry_tags">
22178 </td>
22179
22180 </tr>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022181 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022182 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022183 </tr>
22184 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022185 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022186 <p>Defaults to OFF,<wbr/> and always includes OFF if defined.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022187 </td>
22188 </tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022189
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022190 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022191 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022192 </tr>
22193 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022194 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022195 <p>All custom modes must be &gt;= CUSTOM1.<wbr/></p>
22196 </td>
22197 </tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022198
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022199 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080022200 <!-- end of entry -->
22201
Zhijun Hed363a122015-11-12 17:27:27 -080022202
22203 <tr class="entry" id="static_android.sensor.opticalBlackRegions">
22204 <td class="entry_name
22205 " rowspan="5">
22206 android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions
22207 </td>
22208 <td class="entry_type">
22209 <span class="entry_type_name">int32</span>
22210 <span class="entry_type_container">x</span>
22211
22212 <span class="entry_type_array">
22213 4 x num_regions
22214 </span>
22215 <span class="entry_type_visibility"> [public as rectangle]</span>
22216
22217
22218
22219
22220
22221
22222 </td> <!-- entry_type -->
22223
22224 <td class="entry_description">
22225 <p>List of disjoint rectangles indicating the sensor
22226optically shielded black pixel regions.<wbr/></p>
22227 </td>
22228
22229 <td class="entry_units">
22230 </td>
22231
22232 <td class="entry_range">
22233 </td>
22234
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022235 <td class="entry_hal_version">
22236 <p>3.<wbr/>2</p>
22237 </td>
22238
Zhijun Hed363a122015-11-12 17:27:27 -080022239 <td class="entry_tags">
22240 </td>
22241
22242 </tr>
22243 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022244 <th class="th_details" colspan="6">Details</th>
Zhijun Hed363a122015-11-12 17:27:27 -080022245 </tr>
22246 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022247 <td class="entry_details" colspan="6">
Zhijun Hed363a122015-11-12 17:27:27 -080022248 <p>In most camera sensors,<wbr/> the active array is surrounded by some
22249optically shielded pixel areas.<wbr/> By blocking light,<wbr/> these pixels
22250provides a reliable black reference for black level compensation
22251in active array region.<wbr/></p>
22252<p>This key provides a list of disjoint rectangles specifying the
22253regions of optically shielded (with metal shield) black pixel
22254regions if the camera device is capable of reading out these black
22255pixels in the output raw images.<wbr/> In comparison to the fixed black
22256level values reported by <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a>,<wbr/> this key
22257may provide a more accurate way for the application to calculate
22258black level of each captured raw images.<wbr/></p>
22259<p>When this key is reported,<wbr/> the <a href="#dynamic_android.sensor.dynamicBlackLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level</a> and
22260<a href="#dynamic_android.sensor.dynamicWhiteLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level</a> will also be reported.<wbr/></p>
22261 </td>
22262 </tr>
22263
22264 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022265 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Hed363a122015-11-12 17:27:27 -080022266 </tr>
22267 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022268 <td class="entry_details" colspan="6">
Zhijun Hed363a122015-11-12 17:27:27 -080022269 <p>This array contains (xmin,<wbr/> ymin,<wbr/> width,<wbr/> height).<wbr/> The (xmin,<wbr/> ymin)
22270must be &gt;= (0,<wbr/>0) and &lt;=
22271<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/> The (width,<wbr/> height) must be
22272&lt;= <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/> Each region must be
22273outside the region reported by
22274<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
22275<p>The HAL must report minimal number of disjoint regions for the
22276optically shielded back pixel regions.<wbr/> For example,<wbr/> if a region can
22277be covered by one rectangle,<wbr/> the HAL must not split this region into
22278multiple rectangles.<wbr/></p>
22279 </td>
22280 </tr>
22281
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022282 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun Hed363a122015-11-12 17:27:27 -080022283 <!-- end of entry -->
22284
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022285
22286 <tr class="entry" id="static_android.sensor.opaqueRawSize">
22287 <td class="entry_name
22288 " rowspan="5">
22289 android.<wbr/>sensor.<wbr/>opaque<wbr/>Raw<wbr/>Size
22290 </td>
22291 <td class="entry_type">
22292 <span class="entry_type_name">int32</span>
22293 <span class="entry_type_container">x</span>
22294
22295 <span class="entry_type_array">
22296 n x 3
22297 </span>
22298 <span class="entry_type_visibility"> [system]</span>
22299
22300
22301
22302
22303
22304
22305 </td> <!-- entry_type -->
22306
22307 <td class="entry_description">
22308 <p>Size in bytes for all the listed opaque RAW buffer sizes</p>
22309 </td>
22310
22311 <td class="entry_units">
22312 </td>
22313
22314 <td class="entry_range">
22315 <p>Must be large enough to fit the opaque RAW of corresponding size produced by
22316the camera</p>
22317 </td>
22318
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022319 <td class="entry_hal_version">
22320 <p>3.<wbr/>2</p>
22321 </td>
22322
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022323 <td class="entry_tags">
22324 </td>
22325
22326 </tr>
22327 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022328 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022329 </tr>
22330 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022331 <td class="entry_details" colspan="6">
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022332 <p>This configurations are listed as <code>(width,<wbr/> height,<wbr/> size_<wbr/>in_<wbr/>bytes)</code> tuples.<wbr/>
22333This is used for sizing the gralloc buffers for opaque RAW buffers.<wbr/>
22334All RAW_<wbr/>OPAQUE output stream configuration listed in
22335<a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have a corresponding tuple in
22336this key.<wbr/></p>
22337 </td>
22338 </tr>
22339
22340 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022341 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022342 </tr>
22343 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022344 <td class="entry_details" colspan="6">
22345 <p>This key is added in legacy HAL3.<wbr/>4.<wbr/></p>
22346<p>For legacy HAL3.<wbr/>4 or above: devices advertising RAW_<wbr/>OPAQUE format output must list this
22347key.<wbr/> For legacy HAL3.<wbr/>3 or earlier devices: if RAW_<wbr/>OPAQUE ouput is advertised,<wbr/> camera
22348framework will derive this key by assuming each pixel takes two bytes and no padding bytes
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022349between rows.<wbr/></p>
22350 </td>
22351 </tr>
22352
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022353 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh366da5b2015-12-06 21:42:35 -080022354 <!-- end of entry -->
22355
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022356
22357
22358 <!-- end of kind -->
22359 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022360 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022361
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022362 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022363 <tr>
22364 <th class="th_name">Property Name</th>
22365 <th class="th_type">Type</th>
22366 <th class="th_description">Description</th>
22367 <th class="th_units">Units</th>
22368 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022369 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022370 <th class="th_tags">Tags</th>
22371 </tr>
22372 </thead>
22373
22374 <tbody>
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022386 <td class="entry_name
22387 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080022388 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022389 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022390 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080022391 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022392
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022393 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022394
22395
Igor Murashkinca256272014-10-02 15:27:09 -070022396 <span class="entry_type_hwlevel">[full] </span>
22397
Igor Murashkin6c936c12014-05-13 14:51:49 -070022398
22399
22400
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022401 </td> <!-- entry_type -->
22402
22403 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080022404 <p>Duration each pixel is exposed to
22405light.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022406 </td>
22407
22408 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022409 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022410 </td>
22411
22412 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080022413 <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 -080022414 </td>
22415
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022416 <td class="entry_hal_version">
22417 <p>3.<wbr/>2</p>
22418 </td>
22419
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022420 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080022421 <ul class="entry_tags">
22422 <li><a href="#tag_V1">V1</a></li>
22423 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022424 </td>
22425
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022426 </tr>
22427 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022428 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022429 </tr>
22430 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022431 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022432 <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
22433duration exposed to the nearest possible value (rather than expose longer).<wbr/>
22434The final exposure time used will be available in the output capture result.<wbr/></p>
22435<p>This control is only effective if <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> is set to
22436OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022437 </td>
22438 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022439
22440
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022441 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022442 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022443
22444
22445 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022446 <td class="entry_name
22447 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080022448 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022449 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022450 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080022451 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022452
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022453 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022454
22455
Igor Murashkinca256272014-10-02 15:27:09 -070022456 <span class="entry_type_hwlevel">[full] </span>
22457
Igor Murashkin6c936c12014-05-13 14:51:49 -070022458
22459
22460
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022461 </td> <!-- entry_type -->
22462
22463 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080022464 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080022465start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022466 </td>
22467
22468 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022469 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022470 </td>
22471
22472 <td class="entry_range">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022473 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>.<wbr/>
22474The duration is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
22475 </td>
22476
22477 <td class="entry_hal_version">
22478 <p>3.<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022479 </td>
22480
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022481 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080022482 <ul class="entry_tags">
22483 <li><a href="#tag_V1">V1</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080022484 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022485 </td>
22486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022487 </tr>
22488 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022489 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022490 </tr>
22491 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022492 <td class="entry_details" colspan="6">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080022493 <p>The maximum frame rate that can be supported by a camera subsystem is
22494a function of many factors:</p>
22495<ul>
22496<li>Requested resolutions of output image streams</li>
22497<li>Availability of binning /<wbr/> skipping modes on the imager</li>
22498<li>The bandwidth of the imager interface</li>
22499<li>The bandwidth of the various ISP processing blocks</li>
22500</ul>
22501<p>Since these factors can vary greatly between different ISPs and
22502sensors,<wbr/> the camera abstraction tries to represent the bandwidth
22503restrictions with as simple a model as possible.<wbr/></p>
22504<p>The model presented has the following characteristics:</p>
22505<ul>
22506<li>The image sensor is always configured to output the smallest
22507resolution possible given the application's requested output stream
22508sizes.<wbr/> The smallest resolution is defined as being at least as large
22509as the largest requested output stream size; the camera pipeline must
22510never digitally upsample sensor data when the crop region covers the
22511whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
22512resolutions are configured,<wbr/> the sensor can provide a higher frame
22513rate.<wbr/></li>
22514<li>Since any request may use any or all the currently configured
22515output streams,<wbr/> the sensor and ISP must be configured to support
22516scaling a single capture to all the streams at the same time.<wbr/> This
22517means the camera pipeline must be ready to produce the largest
22518requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
22519frame rate of a given configured stream set is governed only by the
22520largest requested stream resolution.<wbr/></li>
22521<li>Using more than one output stream in a request does not affect the
22522frame duration.<wbr/></li>
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080022523<li>Certain format-streams may need to do additional background processing
22524before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
22525can run concurrently to the rest of the camera pipeline,<wbr/> but
22526cannot process more than 1 capture at a time.<wbr/></li>
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080022527</ul>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022528<p>The necessary information for the application,<wbr/> given the model above,<wbr/> is provided via
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070022529<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022530These are used to determine the maximum frame rate /<wbr/> minimum frame duration that is
22531possible for a given stream configuration.<wbr/></p>
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080022532<p>Specifically,<wbr/> the application can use the following rules to
Igor Murashkinaa6bd6f2014-02-07 14:31:31 -080022533determine the minimum frame duration it can request from the camera
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080022534device:</p>
22535<ol>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022536<li>Let the set of currently configured input/<wbr/>output streams be called <code>S</code>.<wbr/></li>
22537<li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by looking it up in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
22538(with its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called <code>F</code>.<wbr/></li>
22539<li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed for <code>R</code> is the maximum
22540out of all values in <code>F</code>.<wbr/> Let the streams used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080022541</ol>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070022542<p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022543using its respective size/<wbr/>format),<wbr/> then the frame duration in <code>F</code> determines the steady
22544state frame rate that the application will get if it uses <code>R</code> as a repeating request.<wbr/> Let
22545this special kind of request be called <code>Rsimple</code>.<wbr/></p>
22546<p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved by a single capture of a
22547new request <code>Rstall</code> (which has at least one in-use stream with a non-0 stall time) and if
22548<code>Rstall</code> has the same minimum frame duration this will not cause a frame rate loss if all
22549buffers from the previous <code>Rstall</code> have already been delivered.<wbr/></p>
22550<p>For more details about stalling,<wbr/> see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022551<p>This control is only effective if <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> is set to
22552OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022553 </td>
22554 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022555
Igor Murashkin6c936c12014-05-13 14:51:49 -070022556 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022557 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin6c936c12014-05-13 14:51:49 -070022558 </tr>
22559 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022560 <td class="entry_details" colspan="6">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022561 <p>For more details about stalling,<wbr/> see
22562<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
22563 </td>
22564 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022565
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022566 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022567 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022568
22569
22570 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022571 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022572 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080022573 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022574 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022575 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080022576 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022577
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022578 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022579
22580
Igor Murashkinca256272014-10-02 15:27:09 -070022581 <span class="entry_type_hwlevel">[full] </span>
22582
Igor Murashkin6c936c12014-05-13 14:51:49 -070022583
22584
22585
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022586 </td> <!-- entry_type -->
22587
22588 <td class="entry_description">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022589 <p>The amount of gain applied to sensor data
22590before processing.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022591 </td>
22592
22593 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080022594 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022595 </td>
22596
22597 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080022598 <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 -080022599 </td>
22600
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022601 <td class="entry_hal_version">
22602 <p>3.<wbr/>2</p>
22603 </td>
22604
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022605 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080022606 <ul class="entry_tags">
22607 <li><a href="#tag_V1">V1</a></li>
22608 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022609 </td>
22610
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022611 </tr>
22612 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022613 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022614 </tr>
22615 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022616 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022617 <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
22618as defined in ISO 12232:2006.<wbr/></p>
22619<p>The sensitivity must be within <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a>,<wbr/> and
22620if if it less than <a href="#static_android.sensor.maxAnalogSensitivity">android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity</a>,<wbr/> the camera device
22621is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
22622<p>If the camera device cannot apply the exact sensitivity
22623requested,<wbr/> it will reduce the gain to the nearest supported
22624value.<wbr/> The final sensitivity used will be available in the
22625output capture result.<wbr/></p>
Yin-Chia Yeh2003c8d2016-01-18 19:14:55 -080022626<p>This control is only effective if <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> is set to
22627OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022628 </td>
22629 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022630
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022631 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022632 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022633 </tr>
22634 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022635 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022636 <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
22637 </td>
22638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022639
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022640 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022641 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022642
22643
22644 <tr class="entry" id="dynamic_android.sensor.timestamp">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022645 <td class="entry_name
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022646 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080022647 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022648 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022649 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080022650 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022651
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070022652 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022653
22654
Igor Murashkinca256272014-10-02 15:27:09 -070022655 <span class="entry_type_hwlevel">[legacy] </span>
22656
Igor Murashkin6c936c12014-05-13 14:51:49 -070022657
22658
22659
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022660 </td> <!-- entry_type -->
22661
22662 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080022663 <p>Time at start of exposure of first
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070022664row of the image sensor active array,<wbr/> in nanoseconds.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022665 </td>
22666
22667 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022668 Nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022669 </td>
22670
22671 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080022672 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022673 </td>
22674
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022675 <td class="entry_hal_version">
22676 <p>3.<wbr/>2</p>
22677 </td>
22678
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022679 <td class="entry_tags">
22680 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080022681 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022682 </ul>
22683 </td>
22684
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022685 </tr>
22686 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022687 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022688 </tr>
22689 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022690 <td class="entry_details" colspan="6">
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022691 <p>The timestamps are also included in all image
22692buffers produced for the same capture,<wbr/> and will be identical
Zhijun He91449c82014-06-12 10:43:32 -070022693on all the outputs.<wbr/></p>
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070022694<p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> UNKNOWN,<wbr/>
Zhijun He91449c82014-06-12 10:43:32 -070022695the timestamps measure time since an unspecified starting point,<wbr/>
22696and are monotonically increasing.<wbr/> They can be compared with the
22697timestamps for other captures from the same camera device,<wbr/> but are
22698not guaranteed to be comparable to any other time source.<wbr/></p>
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070022699<p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/> the
22700timestamps measure time in the same timebase as <a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/> and they can
22701be compared to other timestamps from other subsystems that
22702are using that base.<wbr/></p>
Chien-Yu Chenc61e1642015-05-29 11:36:53 -070022703<p>For reprocessing,<wbr/> the timestamp will match the start of exposure of
22704the input image,<wbr/> i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/CaptureResult.html#SENSOR_TIMESTAMP">the
22705timestamp</a> in the TotalCaptureResult that was used to create the
22706reprocess capture request.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022707 </td>
22708 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022709
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022710 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022711 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022712 </tr>
22713 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022714 <td class="entry_details" colspan="6">
Zhijun He91449c82014-06-12 10:43:32 -070022715 <p>All timestamps must be in reference to the kernel's
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022716CLOCK_<wbr/>BOOTTIME monotonic clock,<wbr/> which properly accounts for
22717time spent asleep.<wbr/> This allows for synchronization with
22718sensors that continue to operate while the system is
22719otherwise asleep.<wbr/></p>
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070022720<p>If <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
Zhijun He91449c82014-06-12 10:43:32 -070022721The timestamp must be synchronized with the timestamps from other
22722sensor subsystems that are using the same timebase.<wbr/></p>
Chien-Yu Chenc61e1642015-05-29 11:36:53 -070022723<p>For reprocessing,<wbr/> the input image's start of exposure can be looked up
22724with <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> from the metadata included in the
22725capture request.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070022726 </td>
22727 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022728
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022729 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022730 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080022731
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022732
22733 <tr class="entry" id="dynamic_android.sensor.temperature">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022734 <td class="entry_name
22735 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080022736 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022737 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022738 <td class="entry_type">
22739 <span class="entry_type_name">float</span>
22740
Zhijun He66e62a42014-05-23 11:02:34 -070022741 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022742
22743
Igor Murashkin6c936c12014-05-13 14:51:49 -070022744
22745
22746
Igor Murashkinca256272014-10-02 15:27:09 -070022747
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022748 </td> <!-- entry_type -->
22749
22750 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080022751 <p>The temperature of the sensor,<wbr/> sampled at the time
22752exposure began for this frame.<wbr/></p>
22753<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
22754somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022755 </td>
22756
22757 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022758 Celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022759 </td>
22760
22761 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080022762 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022763 </td>
22764
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022765 <td class="entry_hal_version">
22766 <p>3.<wbr/>2</p>
22767 </td>
22768
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022769 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070022770 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070022771 <li><a href="#tag_FUTURE">FUTURE</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070022772 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022773 </td>
22774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080022776
22777
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022778 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080022779 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070022780
Igor Murashkina46e02f2014-01-09 17:43:38 -080022781
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022782 <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022783 <td class="entry_name
22784 " rowspan="3">
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022785 android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
22786 </td>
22787 <td class="entry_type">
22788 <span class="entry_type_name">rational</span>
22789 <span class="entry_type_container">x</span>
22790
22791 <span class="entry_type_array">
22792 3
22793 </span>
22794 <span class="entry_type_visibility"> [public]</span>
22795
22796
Igor Murashkin6c936c12014-05-13 14:51:49 -070022797
22798
22799
Igor Murashkinca256272014-10-02 15:27:09 -070022800
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022801 </td> <!-- entry_type -->
22802
22803 <td class="entry_description">
Ruben Brunk7db06e22014-04-15 17:43:56 -070022804 <p>The estimated camera neutral color in the native sensor colorspace at
22805the time of capture.<wbr/></p>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022806 </td>
22807
22808 <td class="entry_units">
22809 </td>
22810
22811 <td class="entry_range">
22812 </td>
22813
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022814 <td class="entry_hal_version">
22815 <p>3.<wbr/>2</p>
22816 </td>
22817
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022818 <td class="entry_tags">
22819 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070022820 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022821 </ul>
22822 </td>
22823
22824 </tr>
22825 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022826 <th class="th_details" colspan="6">Details</th>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022827 </tr>
22828 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022829 <td class="entry_details" colspan="6">
Ruben Brunk7db06e22014-04-15 17:43:56 -070022830 <p>This value gives the neutral color point encoded as an RGB value in the
22831native sensor color space.<wbr/> The neutral color point indicates the
22832currently estimated white point of the scene illumination.<wbr/> It can be
22833used to interpolate between the provided color transforms when
22834processing raw sensor data.<wbr/></p>
22835<p>The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022836 </td>
22837 </tr>
22838
22839
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022840 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080022841 <!-- end of entry -->
22842
22843
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022844 <tr class="entry" id="dynamic_android.sensor.noiseProfile">
22845 <td class="entry_name
22846 " rowspan="5">
22847 android.<wbr/>sensor.<wbr/>noise<wbr/>Profile
22848 </td>
22849 <td class="entry_type">
22850 <span class="entry_type_name">double</span>
22851 <span class="entry_type_container">x</span>
22852
22853 <span class="entry_type_array">
22854 2 x CFA Channels
22855 </span>
22856 <span class="entry_type_visibility"> [public as pairDoubleDouble]</span>
22857
22858
22859
Igor Murashkinca256272014-10-02 15:27:09 -070022860
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022861 <div class="entry_type_notes">Pairs of noise model coefficients</div>
22862
22863
22864 </td> <!-- entry_type -->
22865
22866 <td class="entry_description">
22867 <p>Noise model coefficients for each CFA mosaic channel.<wbr/></p>
22868 </td>
22869
22870 <td class="entry_units">
22871 </td>
22872
22873 <td class="entry_range">
22874 </td>
22875
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022876 <td class="entry_hal_version">
22877 <p>3.<wbr/>2</p>
22878 </td>
22879
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022880 <td class="entry_tags">
22881 <ul class="entry_tags">
22882 <li><a href="#tag_RAW">RAW</a></li>
22883 </ul>
22884 </td>
22885
22886 </tr>
22887 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022888 <th class="th_details" colspan="6">Details</th>
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022889 </tr>
22890 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022891 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022892 <p>This key contains two noise model coefficients for each CFA channel
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022893corresponding to the sensor amplification (S) and sensor readout
22894noise (O).<wbr/> These are given as pairs of coefficients for each channel
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022895in the same order as channels listed for the CFA layout key
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022896(see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>).<wbr/> This is
22897represented as an array of Pair&lt;Double,<wbr/> Double&gt;,<wbr/> where
22898the first member of the Pair at index n is the S coefficient and the
22899second member is the O coefficient for the nth color channel in the CFA.<wbr/></p>
22900<p>These coefficients are used in a two parameter noise model to describe
22901the amount of noise present in the image for each CFA channel.<wbr/> The
22902noise model used here is:</p>
22903<p>N(x) = sqrt(Sx + O)</p>
22904<p>Where x represents the recorded signal of a CFA channel normalized to
22905the range [0,<wbr/> 1],<wbr/> and S and O are the noise model coeffiecients for
22906that channel.<wbr/></p>
22907<p>A more detailed description of the noise model can be found in the
22908Adobe DNG specification for the NoiseProfile tag.<wbr/></p>
22909 </td>
22910 </tr>
22911
22912 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022913 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022914 </tr>
22915 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022916 <td class="entry_details" colspan="6">
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022917 <p>For a CFA layout of RGGB,<wbr/> the list of coefficients would be given as
22918an array of doubles S0,<wbr/>O0,<wbr/>S1,<wbr/>O1,...,<wbr/> where S0 and O0 are the coefficients
22919for the red channel,<wbr/> S1 and O1 are the coefficients for the first green
22920channel,<wbr/> etc.<wbr/></p>
22921 </td>
22922 </tr>
22923
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022924 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk6a424ff2014-07-23 15:13:16 -070022925 <!-- end of entry -->
22926
22927
Ruben Brunk2bebe312014-02-06 13:04:38 -080022928 <tr class="entry" id="dynamic_android.sensor.profileHueSatMap">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022929 <td class="entry_name
22930 " rowspan="3">
Ruben Brunk2bebe312014-02-06 13:04:38 -080022931 android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map
22932 </td>
22933 <td class="entry_type">
22934 <span class="entry_type_name">float</span>
22935 <span class="entry_type_container">x</span>
22936
22937 <span class="entry_type_array">
22938 hue_samples x saturation_samples x value_samples x 3
22939 </span>
Zhijun Hed0f482a2014-05-06 16:18:04 -070022940 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070022941
22942
22943
Igor Murashkinca256272014-10-02 15:27:09 -070022944
Ruben Brunk2bebe312014-02-06 13:04:38 -080022945 <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>
22946
22947
22948 </td> <!-- entry_type -->
22949
22950 <td class="entry_description">
22951 <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
22952for each pixel.<wbr/></p>
22953 </td>
22954
22955 <td class="entry_units">
22956
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022957 The hue shift is given in degrees; saturation and value scale factors are
22958 unitless and are between 0 and 1 inclusive
Ruben Brunk2bebe312014-02-06 13:04:38 -080022959
22960 </td>
22961
22962 <td class="entry_range">
22963 </td>
22964
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022965 <td class="entry_hal_version">
22966 <p>3.<wbr/>2</p>
22967 </td>
22968
Ruben Brunk2bebe312014-02-06 13:04:38 -080022969 <td class="entry_tags">
22970 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070022971 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080022972 </ul>
22973 </td>
22974
22975 </tr>
22976 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022977 <th class="th_details" colspan="6">Details</th>
Ruben Brunk2bebe312014-02-06 13:04:38 -080022978 </tr>
22979 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022980 <td class="entry_details" colspan="6">
Ruben Brunk2bebe312014-02-06 13:04:38 -080022981 <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
22982<a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
22983<p>Each entry of this map contains three floats corresponding to the
22984hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070022985hue shift has the lowest index.<wbr/> The map entries are stored in the key
Ruben Brunk2bebe312014-02-06 13:04:38 -080022986in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
22987hue divisions in the middle loop,<wbr/> and the saturation divisions in the
22988inner loop.<wbr/> All zero input saturation entries are required to have a
22989value scale factor of 1.<wbr/>0.<wbr/></p>
22990 </td>
22991 </tr>
22992
22993
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080022994 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk2bebe312014-02-06 13:04:38 -080022995 <!-- end of entry -->
22996
22997
22998 <tr class="entry" id="dynamic_android.sensor.profileToneCurve">
Igor Murashkin6c936c12014-05-13 14:51:49 -070022999 <td class="entry_name
23000 " rowspan="3">
Ruben Brunk2bebe312014-02-06 13:04:38 -080023001 android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
23002 </td>
23003 <td class="entry_type">
23004 <span class="entry_type_name">float</span>
23005 <span class="entry_type_container">x</span>
23006
23007 <span class="entry_type_array">
23008 samples x 2
23009 </span>
Zhijun Hed0f482a2014-05-06 16:18:04 -070023010 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070023011
23012
23013
Igor Murashkinca256272014-10-02 15:27:09 -070023014
Ruben Brunk2bebe312014-02-06 13:04:38 -080023015 <div class="entry_type_notes">Samples defining a spline for a tone-mapping curve</div>
23016
23017
23018 </td> <!-- entry_type -->
23019
23020 <td class="entry_description">
23021 <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
23022 </td>
23023
23024 <td class="entry_units">
23025 </td>
23026
23027 <td class="entry_range">
23028 <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
23029<code>[0,<wbr/> 1]</code>.<wbr/> The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
23030sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
23031 </td>
23032
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023033 <td class="entry_hal_version">
23034 <p>3.<wbr/>2</p>
23035 </td>
23036
Ruben Brunk2bebe312014-02-06 13:04:38 -080023037 <td class="entry_tags">
23038 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070023039 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080023040 </ul>
23041 </td>
23042
23043 </tr>
23044 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023045 <th class="th_details" colspan="6">Details</th>
Ruben Brunk2bebe312014-02-06 13:04:38 -080023046 </tr>
23047 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023048 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023049 <p>This key contains a default tone curve that can be applied while
Ruben Brunk2bebe312014-02-06 13:04:38 -080023050processing the image as a starting point for user adjustments.<wbr/>
23051The curve is specified as a list of value pairs in linear gamma.<wbr/>
23052The curve is interpolated using a cubic spline.<wbr/></p>
23053 </td>
23054 </tr>
23055
23056
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023057 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk2bebe312014-02-06 13:04:38 -080023058 <!-- end of entry -->
23059
23060
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023061 <tr class="entry" id="dynamic_android.sensor.greenSplit">
Igor Murashkin6c936c12014-05-13 14:51:49 -070023062 <td class="entry_name
23063 " rowspan="5">
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023064 android.<wbr/>sensor.<wbr/>green<wbr/>Split
23065 </td>
23066 <td class="entry_type">
23067 <span class="entry_type_name">float</span>
23068
23069 <span class="entry_type_visibility"> [public]</span>
23070
23071
Igor Murashkin6c936c12014-05-13 14:51:49 -070023072
23073
23074
Igor Murashkinca256272014-10-02 15:27:09 -070023075
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023076 </td> <!-- entry_type -->
23077
23078 <td class="entry_description">
23079 <p>The worst-case divergence between Bayer green channels.<wbr/></p>
23080 </td>
23081
23082 <td class="entry_units">
23083 </td>
23084
23085 <td class="entry_range">
23086 <p>&gt;= 0</p>
23087 </td>
23088
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023089 <td class="entry_hal_version">
23090 <p>3.<wbr/>2</p>
23091 </td>
23092
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023093 <td class="entry_tags">
23094 <ul class="entry_tags">
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070023095 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023096 </ul>
23097 </td>
23098
23099 </tr>
23100 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023101 <th class="th_details" colspan="6">Details</th>
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023102 </tr>
23103 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023104 <td class="entry_details" colspan="6">
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023105 <p>This value is an estimate of the worst case split between the
23106Bayer green channels in the red and blue rows in the sensor color
23107filter array.<wbr/></p>
23108<p>The green split is calculated as follows:</p>
23109<ol>
Ruben Brunkd9d12132014-03-18 14:37:04 -070023110<li>A 5x5 pixel (or larger) window W within the active sensor array is
23111chosen.<wbr/> The term 'pixel' here is taken to mean a group of 4 Bayer
23112mosaic channels (R,<wbr/> Gr,<wbr/> Gb,<wbr/> B).<wbr/> The location and size of the window
23113chosen is implementation defined,<wbr/> and should be chosen to provide a
23114green split estimate that is both representative of the entire image
23115for this camera sensor,<wbr/> and can be calculated quickly.<wbr/></li>
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023116<li>The arithmetic mean of the green channels from the red
23117rows (mean_<wbr/>Gr) within W is computed.<wbr/></li>
23118<li>The arithmetic mean of the green channels from the blue
23119rows (mean_<wbr/>Gb) within W is computed.<wbr/></li>
23120<li>The maximum ratio R of the two means is computed as follows:
23121<code>R = max((mean_<wbr/>Gr + 1)/<wbr/>(mean_<wbr/>Gb + 1),<wbr/> (mean_<wbr/>Gb + 1)/<wbr/>(mean_<wbr/>Gr + 1))</code></li>
23122</ol>
23123<p>The ratio R is the green split divergence reported for this property,<wbr/>
23124which represents how much the green channels differ in the mosaic
23125pattern.<wbr/> This value is typically used to determine the treatment of
23126the green mosaic channels when demosaicing.<wbr/></p>
23127<p>The green split value can be roughly interpreted as follows:</p>
23128<ul>
23129<li>R &lt; 1.<wbr/>03 is a negligible split (&lt;3% divergence).<wbr/></li>
23130<li>1.<wbr/>20 &lt;= R &gt;= 1.<wbr/>03 will require some software
23131correction to avoid demosaic errors (3-20% divergence).<wbr/></li>
23132<li>R &gt; 1.<wbr/>20 will require strong software correction to produce
23133a usuable image (&gt;20% divergence).<wbr/></li>
23134</ul>
23135 </td>
23136 </tr>
23137
Ruben Brunkd9d12132014-03-18 14:37:04 -070023138 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023139 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunkd9d12132014-03-18 14:37:04 -070023140 </tr>
23141 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023142 <td class="entry_details" colspan="6">
Ruben Brunkd9d12132014-03-18 14:37:04 -070023143 <p>The green split given may be a static value based on prior
23144characterization of the camera sensor using the green split
23145calculation method given here over a large,<wbr/> representative,<wbr/> sample
23146set of images.<wbr/> Other methods of calculation that produce equivalent
23147results,<wbr/> and can be interpreted in the same manner,<wbr/> may be used.<wbr/></p>
23148 </td>
23149 </tr>
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023150
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023151 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk6a5fd112014-02-11 17:55:32 -080023152 <!-- end of entry -->
23153
23154
Zhijun He602d3702014-05-02 17:38:15 -070023155 <tr class="entry" id="dynamic_android.sensor.testPatternData">
Igor Murashkin6c936c12014-05-13 14:51:49 -070023156 <td class="entry_name
23157 " rowspan="5">
Zhijun He602d3702014-05-02 17:38:15 -070023158 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
23159 </td>
23160 <td class="entry_type">
23161 <span class="entry_type_name">int32</span>
23162 <span class="entry_type_container">x</span>
23163
23164 <span class="entry_type_array">
23165 4
23166 </span>
23167 <span class="entry_type_visibility"> [public]</span>
23168
23169
Igor Murashkin6c936c12014-05-13 14:51:49 -070023170
23171
23172
Igor Murashkinca256272014-10-02 15:27:09 -070023173
Zhijun He602d3702014-05-02 17:38:15 -070023174 </td> <!-- entry_type -->
23175
23176 <td class="entry_description">
23177 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
23178when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
23179 </td>
23180
23181 <td class="entry_units">
23182 </td>
23183
23184 <td class="entry_range">
Zhijun He602d3702014-05-02 17:38:15 -070023185 </td>
23186
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023187 <td class="entry_hal_version">
23188 <p>3.<wbr/>2</p>
23189 </td>
23190
Zhijun He602d3702014-05-02 17:38:15 -070023191 <td class="entry_tags">
23192 </td>
23193
23194 </tr>
23195 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023196 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -070023197 </tr>
23198 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023199 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -070023200 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
23201The camera device then uses the most significant X bits
23202that correspond to how many bits are in its Bayer raw sensor
23203output.<wbr/></p>
23204<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
2320510 most significant bits from each color channel.<wbr/></p>
23206 </td>
23207 </tr>
23208
23209 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023210 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He602d3702014-05-02 17:38:15 -070023211 </tr>
23212 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023213 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -070023214
23215 </td>
23216 </tr>
23217
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023218 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -070023219 <!-- end of entry -->
23220
23221
Igor Murashkina46e02f2014-01-09 17:43:38 -080023222 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070023223 <td class="entry_name
23224 " rowspan="5">
Igor Murashkina46e02f2014-01-09 17:43:38 -080023225 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
23226 </td>
23227 <td class="entry_type">
23228 <span class="entry_type_name entry_type_name_enum">int32</span>
23229
23230 <span class="entry_type_visibility"> [public]</span>
23231
Igor Murashkin6c936c12014-05-13 14:51:49 -070023232
23233
23234
Igor Murashkinca256272014-10-02 15:27:09 -070023235
Igor Murashkina46e02f2014-01-09 17:43:38 -080023236 <ul class="entry_type_enum">
23237 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023238 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023239 <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
23240device returns captures from the image sensor.<wbr/></p>
23241<p>This is the default if the key is not set.<wbr/></p></span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023242 </li>
23243 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023244 <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023245 <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
23246respective color channel provided in
23247<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
23248<p>For example:</p>
23249<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
23250</code></pre>
23251<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
23252<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
23253</code></pre>
23254<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
23255are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
23256 </li>
23257 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023258 <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023259 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
23260<p>The vertical bars (left-to-right) are as follows:</p>
23261<ul>
23262<li>100% white</li>
23263<li>yellow</li>
23264<li>cyan</li>
23265<li>green</li>
23266<li>magenta</li>
23267<li>red</li>
23268<li>blue</li>
23269<li>black</li>
23270</ul>
23271<p>In general the image would look like the following:</p>
23272<pre><code>W Y C G M R B K
23273W Y C G M R B K
23274W Y C G M R B K
23275W Y C G M R B K
23276W Y C G M R B K
23277.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
23278.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
23279.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
23280
23281(B = Blue,<wbr/> K = Black)
23282</code></pre>
23283<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
23284When this is not possible,<wbr/> the bar size should be rounded
23285down to the nearest integer and the pattern can repeat
23286on the right side.<wbr/></p>
23287<p>Each bar's height must always take up the full sensor
23288pixel array height.<wbr/></p>
23289<p>Each pixel in this test pattern must be set to either
232900% intensity or 100% intensity.<wbr/></p></span>
23291 </li>
23292 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023293 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023294 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
23295each bar should start at its specified color at the top,<wbr/>
23296and fade to gray at the bottom.<wbr/></p>
23297<p>Furthermore each bar is further subdivided into a left and
23298right half.<wbr/> The left half should have a smooth gradient,<wbr/>
23299and the right half should have a quantized gradient.<wbr/></p>
23300<p>In particular,<wbr/> the right half's should consist of blocks of the
23301same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
23302<p>The least significant bits in the quantized gradient should
23303be copied from the most significant bits of the smooth gradient.<wbr/></p>
23304<p>The height of each bar should always be a multiple of 128.<wbr/>
23305When this is not the case,<wbr/> the pattern should repeat at the bottom
23306of the image.<wbr/></p></span>
23307 </li>
23308 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023309 <span class="entry_type_enum_name">PN9 (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023310 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
23311generated from a PN9 512-bit sequence (typically implemented
23312in hardware with a linear feedback shift register).<wbr/></p>
23313<p>The generator should be reset at the beginning of each frame,<wbr/>
23314and thus each subsequent raw frame with this test pattern should
23315be exactly the same as the last.<wbr/></p></span>
23316 </li>
23317 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023318 <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023319 <span class="entry_type_enum_value">256</span>
23320 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
23321available only on this camera device are at least this numeric
23322value.<wbr/></p>
23323<p>All of the custom test patterns will be static
23324(that is the raw image must not vary from frame to frame).<wbr/></p></span>
23325 </li>
23326 </ul>
23327
23328 </td> <!-- entry_type -->
23329
23330 <td class="entry_description">
23331 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
23332doing a real exposure from the camera.<wbr/></p>
23333 </td>
23334
23335 <td class="entry_units">
23336 </td>
23337
23338 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023339 <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023340 </td>
23341
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023342 <td class="entry_hal_version">
23343 <p>3.<wbr/>2</p>
23344 </td>
23345
Igor Murashkina46e02f2014-01-09 17:43:38 -080023346 <td class="entry_tags">
23347 </td>
23348
23349 </tr>
23350 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023351 <th class="th_details" colspan="6">Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023352 </tr>
23353 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023354 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080023355 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023356by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
Igor Murashkina46e02f2014-01-09 17:43:38 -080023357work as normal.<wbr/></p>
23358<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
23359occur (and that the test pattern remain unmodified,<wbr/> since the flash
23360would not actually affect it).<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023361<p>Defaults to OFF.<wbr/></p>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023362 </td>
23363 </tr>
23364
23365 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023366 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023367 </tr>
23368 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023369 <td class="entry_details" colspan="6">
Igor Murashkina46e02f2014-01-09 17:43:38 -080023370 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
23371<p>The HAL may choose to substitute test patterns from the sensor
23372with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
23373indistinguishable to the ISP whether the data came from the
23374sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
23375 </td>
23376 </tr>
23377
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023378 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkina46e02f2014-01-09 17:43:38 -080023379 <!-- end of entry -->
23380
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023381
23382 <tr class="entry" id="dynamic_android.sensor.rollingShutterSkew">
23383 <td class="entry_name
23384 " rowspan="5">
23385 android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew
23386 </td>
23387 <td class="entry_type">
23388 <span class="entry_type_name">int64</span>
23389
23390 <span class="entry_type_visibility"> [public]</span>
23391
23392
Igor Murashkinca256272014-10-02 15:27:09 -070023393 <span class="entry_type_hwlevel">[limited] </span>
23394
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023395
23396
23397
23398 </td> <!-- entry_type -->
23399
23400 <td class="entry_description">
23401 <p>Duration between the start of first row exposure
23402and the start of last row exposure.<wbr/></p>
23403 </td>
23404
23405 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023406 Nanoseconds
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023407 </td>
23408
23409 <td class="entry_range">
23410 <p>&gt;= 0 and &lt;
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070023411<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/></p>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023412 </td>
23413
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023414 <td class="entry_hal_version">
23415 <p>3.<wbr/>2</p>
23416 </td>
23417
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023418 <td class="entry_tags">
23419 <ul class="entry_tags">
23420 <li><a href="#tag_V1">V1</a></li>
23421 </ul>
23422 </td>
23423
23424 </tr>
23425 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023426 <th class="th_details" colspan="6">Details</th>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023427 </tr>
23428 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023429 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023430 <p>This is the exposure time skew between the first and last
23431row exposure start times.<wbr/> The first row and the last row are
23432the first and last rows inside of the
23433<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023434<p>For typical camera sensors that use rolling shutters,<wbr/> this is also equivalent
23435to the frame readout time.<wbr/></p>
23436 </td>
23437 </tr>
23438
23439 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023440 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023441 </tr>
23442 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023443 <td class="entry_details" colspan="6">
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023444 <p>The HAL must report <code>0</code> if the sensor is using global shutter,<wbr/> where all pixels begin
23445exposure at the same time.<wbr/></p>
23446 </td>
23447 </tr>
23448
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023449 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070023450 <!-- end of entry -->
23451
Zhijun Hed363a122015-11-12 17:27:27 -080023452
23453 <tr class="entry" id="dynamic_android.sensor.dynamicBlackLevel">
23454 <td class="entry_name
23455 " rowspan="5">
23456 android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level
23457 </td>
23458 <td class="entry_type">
Zhijun He88f2ffd2015-11-24 14:24:52 -080023459 <span class="entry_type_name">float</span>
Zhijun Hed363a122015-11-12 17:27:27 -080023460 <span class="entry_type_container">x</span>
23461
23462 <span class="entry_type_array">
23463 4
23464 </span>
Zhijun He88f2ffd2015-11-24 14:24:52 -080023465 <span class="entry_type_visibility"> [public]</span>
Zhijun Hed363a122015-11-12 17:27:27 -080023466
23467
23468
23469
23470 <div class="entry_type_notes">2x2 raw count block</div>
23471
23472
23473 </td> <!-- entry_type -->
23474
23475 <td class="entry_description">
23476 <p>A per-frame dynamic black level offset for each of the color filter
23477arrangement (CFA) mosaic channels.<wbr/></p>
23478 </td>
23479
23480 <td class="entry_units">
23481 </td>
23482
23483 <td class="entry_range">
23484 <p>&gt;= 0 for each.<wbr/></p>
23485 </td>
23486
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023487 <td class="entry_hal_version">
23488 <p>3.<wbr/>2</p>
23489 </td>
23490
Zhijun Hed363a122015-11-12 17:27:27 -080023491 <td class="entry_tags">
23492 <ul class="entry_tags">
23493 <li><a href="#tag_RAW">RAW</a></li>
23494 </ul>
23495 </td>
23496
23497 </tr>
23498 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023499 <th class="th_details" colspan="6">Details</th>
Zhijun Hed363a122015-11-12 17:27:27 -080023500 </tr>
23501 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023502 <td class="entry_details" colspan="6">
Zhijun Hed363a122015-11-12 17:27:27 -080023503 <p>Camera sensor black levels may vary dramatically for different
23504capture settings (e.<wbr/>g.<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> The fixed black
23505level reported by <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may be too
23506inaccurate to represent the actual value on a per-frame basis.<wbr/> The
23507camera device internal pipeline relies on reliable black level values
23508to process the raw images appropriately.<wbr/> To get the best image
23509quality,<wbr/> the camera device may choose to estimate the per frame black
23510level values either based on optically shielded black regions
23511(<a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a>) or its internal model.<wbr/></p>
23512<p>This key reports the camera device estimated per-frame zero light
23513value for each of the CFA mosaic channels in the camera sensor.<wbr/> The
23514<a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may only represent a coarse
23515approximation of the actual black level values.<wbr/> This value is the
23516black level used in camera device internal image processing pipeline
23517and generally more accurate than the fixed black level values.<wbr/>
23518However,<wbr/> since they are estimated values by the camera device,<wbr/> they
23519may not be as accurate as the black level values calculated from the
23520optical black pixels reported by <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a>.<wbr/></p>
23521<p>The values are given in the same order as channels listed for the CFA
23522layout key (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>),<wbr/> i.<wbr/>e.<wbr/> the
23523nth value given corresponds to the black level offset for the nth
23524color channel listed in the CFA.<wbr/></p>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023525<p>This key will be available if <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> is available or the
23526camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
Zhijun Hed363a122015-11-12 17:27:27 -080023527 </td>
23528 </tr>
23529
23530 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023531 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Hed363a122015-11-12 17:27:27 -080023532 </tr>
23533 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023534 <td class="entry_details" colspan="6">
Zhijun Hed363a122015-11-12 17:27:27 -080023535 <p>The values are given in row-column scan order,<wbr/> with the first value
23536corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
23537 </td>
23538 </tr>
23539
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023540 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun Hed363a122015-11-12 17:27:27 -080023541 <!-- end of entry -->
23542
23543
23544 <tr class="entry" id="dynamic_android.sensor.dynamicWhiteLevel">
23545 <td class="entry_name
23546 " rowspan="5">
23547 android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level
23548 </td>
23549 <td class="entry_type">
23550 <span class="entry_type_name">int32</span>
23551
23552 <span class="entry_type_visibility"> [public]</span>
23553
23554
23555
23556
23557
23558
23559 </td> <!-- entry_type -->
23560
23561 <td class="entry_description">
23562 <p>Maximum raw value output by sensor for this frame.<wbr/></p>
23563 </td>
23564
23565 <td class="entry_units">
23566 </td>
23567
23568 <td class="entry_range">
23569 <p>&gt;= 0</p>
23570 </td>
23571
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023572 <td class="entry_hal_version">
23573 <p>3.<wbr/>2</p>
23574 </td>
23575
Zhijun Hed363a122015-11-12 17:27:27 -080023576 <td class="entry_tags">
23577 <ul class="entry_tags">
23578 <li><a href="#tag_RAW">RAW</a></li>
23579 </ul>
23580 </td>
23581
23582 </tr>
23583 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023584 <th class="th_details" colspan="6">Details</th>
Zhijun Hed363a122015-11-12 17:27:27 -080023585 </tr>
23586 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023587 <td class="entry_details" colspan="6">
Eino-Ville Talvala1f883d42016-04-04 10:47:43 -070023588 <p>Since the <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may change for different
Zhijun Hed363a122015-11-12 17:27:27 -080023589capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>),<wbr/> the white
23590level will change accordingly.<wbr/> This key is similar to
23591<a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>,<wbr/> but specifies the camera device
23592estimated white level for each frame.<wbr/></p>
23593<p>This key will be available if <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> is
23594available or the camera device advertises this key via
23595<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureRequestKeys">CameraCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/></p>
23596 </td>
23597 </tr>
23598
23599 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023600 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun Hed363a122015-11-12 17:27:27 -080023601 </tr>
23602 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023603 <td class="entry_details" colspan="6">
Zhijun Hed363a122015-11-12 17:27:27 -080023604 <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
23605so the value for linear sensors should not be significantly lower
23606than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
23607 </td>
23608 </tr>
23609
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023610 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun Hed363a122015-11-12 17:27:27 -080023611 <!-- end of entry -->
23612
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023613
23614
23615 <!-- end of kind -->
23616 </tbody>
23617
23618 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023619 <tr><td colspan="7" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023620
23621
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023622 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023623
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070023624 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023625 <tr>
23626 <th class="th_name">Property Name</th>
23627 <th class="th_type">Type</th>
23628 <th class="th_description">Description</th>
23629 <th class="th_units">Units</th>
23630 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023631 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023632 <th class="th_tags">Tags</th>
23633 </tr>
23634 </thead>
23635
23636 <tbody>
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647 <tr class="entry" id="controls_android.shading.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070023648 <td class="entry_name
23649 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080023650 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080023651 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023652 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080023653 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023654
Zhijun He6ba86962014-03-03 17:32:30 -080023655 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023656
Igor Murashkin6c936c12014-05-13 14:51:49 -070023657
Igor Murashkinca256272014-10-02 15:27:09 -070023658 <span class="entry_type_hwlevel">[full] </span>
23659
Igor Murashkin6c936c12014-05-13 14:51:49 -070023660
23661
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023662 <ul class="entry_type_enum">
23663 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023664 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023665 <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023666 </li>
23667 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023668 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023669 <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
23670frame rate relative to sensor raw output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023671 </li>
23672 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023673 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023674 <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070023675cost of possibly reduced frame rate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023676 </li>
23677 </ul>
23678
23679 </td> <!-- entry_type -->
23680
23681 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080023682 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080023683to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023684 </td>
23685
23686 <td class="entry_units">
23687 </td>
23688
23689 <td class="entry_range">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023690 <p><a href="#static_android.shading.availableModes">android.<wbr/>shading.<wbr/>available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023691 </td>
23692
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023693 <td class="entry_hal_version">
23694 <p>3.<wbr/>2</p>
23695 </td>
23696
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023697 <td class="entry_tags">
23698 </td>
23699
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080023700 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080023701 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023702 <th class="th_details" colspan="6">Details</th>
Zhijun He2f86a212014-01-15 10:34:02 -080023703 </tr>
23704 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023705 <td class="entry_details" colspan="6">
Zhijun He2f86a212014-01-15 10:34:02 -080023706 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
23707camera device,<wbr/> and an identity lens shading map data will be provided
23708if <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
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023709shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
23710the output <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a> for this case will be an identity
23711map shown below:</p>
Zhijun He2f86a212014-01-15 10:34:02 -080023712<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/>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023713 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/>
23714 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/>
23715 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/>
23716 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/>
23717 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 ]
Zhijun He2f86a212014-01-15 10:34:02 -080023718</code></pre>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023719<p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
23720device.<wbr/> Applications can request lens shading map data by setting
23721<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 lens
23722shading map data in <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a>; the returned shading map
23723data will be the one applied by the camera device for this capture request.<wbr/></p>
23724<p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
23725the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
23726AWB are in AUTO modes(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code>
23727OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
23728to be converged before using the returned shading map data.<wbr/></p>
Zhijun He2f86a212014-01-15 10:34:02 -080023729 </td>
23730 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080023731
23732
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023733 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080023734 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023735
23736
23737 <tr class="entry" id="controls_android.shading.strength">
Igor Murashkin6c936c12014-05-13 14:51:49 -070023738 <td class="entry_name
23739 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080023740 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080023741 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023742 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080023743 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023744
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070023745 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023746
23747
Igor Murashkin6c936c12014-05-13 14:51:49 -070023748
23749
23750
Igor Murashkinca256272014-10-02 15:27:09 -070023751
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023752 </td> <!-- entry_type -->
23753
23754 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080023755 <p>Control the amount of shading correction
23756applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023757 </td>
23758
23759 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080023760 unitless: 1-10; 10 is full shading
23761 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023762 </td>
23763
23764 <td class="entry_range">
23765 </td>
23766
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023767 <td class="entry_hal_version">
23768 <p>3.<wbr/>2</p>
23769 </td>
23770
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023771 <td class="entry_tags">
23772 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070023773 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023774 </ul>
23775 </td>
23776
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080023777 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080023778
23779
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023780 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080023781 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023782
23783
23784
23785 <!-- end of kind -->
23786 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023787 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070023789 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023790 <tr>
23791 <th class="th_name">Property Name</th>
23792 <th class="th_type">Type</th>
23793 <th class="th_description">Description</th>
23794 <th class="th_units">Units</th>
23795 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023796 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023797 <th class="th_tags">Tags</th>
23798 </tr>
23799 </thead>
23800
23801 <tbody>
23802
23803
23804
23805
23806
23807
23808
23809
23810
23811
23812 <tr class="entry" id="dynamic_android.shading.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070023813 <td class="entry_name
23814 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080023815 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080023816 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023817 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080023818 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023819
Zhijun He6ba86962014-03-03 17:32:30 -080023820 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023821
Igor Murashkin6c936c12014-05-13 14:51:49 -070023822
Igor Murashkinca256272014-10-02 15:27:09 -070023823 <span class="entry_type_hwlevel">[full] </span>
23824
Igor Murashkin6c936c12014-05-13 14:51:49 -070023825
23826
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023827 <ul class="entry_type_enum">
23828 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023829 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023830 <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023831 </li>
23832 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023833 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023834 <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
23835frame rate relative to sensor raw output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023836 </li>
23837 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080023838 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070023839 <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070023840cost of possibly reduced frame rate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023841 </li>
23842 </ul>
23843
23844 </td> <!-- entry_type -->
23845
23846 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080023847 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080023848to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023849 </td>
23850
23851 <td class="entry_units">
23852 </td>
23853
23854 <td class="entry_range">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023855 <p><a href="#static_android.shading.availableModes">android.<wbr/>shading.<wbr/>available<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023856 </td>
23857
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023858 <td class="entry_hal_version">
23859 <p>3.<wbr/>2</p>
23860 </td>
23861
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023862 <td class="entry_tags">
23863 </td>
23864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080023865 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080023866 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023867 <th class="th_details" colspan="6">Details</th>
Zhijun He2f86a212014-01-15 10:34:02 -080023868 </tr>
23869 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023870 <td class="entry_details" colspan="6">
Zhijun He2f86a212014-01-15 10:34:02 -080023871 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
23872camera device,<wbr/> and an identity lens shading map data will be provided
23873if <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
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023874shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
23875the output <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a> for this case will be an identity
23876map shown below:</p>
Zhijun He2f86a212014-01-15 10:34:02 -080023877<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/>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023878 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/>
23879 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/>
23880 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/>
23881 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/>
23882 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 ]
Zhijun He2f86a212014-01-15 10:34:02 -080023883</code></pre>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070023884<p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
23885device.<wbr/> Applications can request lens shading map data by setting
23886<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 lens
23887shading map data in <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a>; the returned shading map
23888data will be the one applied by the camera device for this capture request.<wbr/></p>
23889<p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
23890the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
23891AWB are in AUTO modes(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code>
23892OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
23893to be converged before using the returned shading map data.<wbr/></p>
Zhijun He2f86a212014-01-15 10:34:02 -080023894 </td>
23895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080023896
23897
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023898 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080023899 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080023900
23901
23902
23903 <!-- end of kind -->
23904 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023905 <tr><td colspan="7" class="kind">static</td></tr>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023906
23907 <thead class="entries_header">
23908 <tr>
23909 <th class="th_name">Property Name</th>
23910 <th class="th_type">Type</th>
23911 <th class="th_description">Description</th>
23912 <th class="th_units">Units</th>
23913 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023914 <th class="th_hal_version">Initial HIDL HAL version</th>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023915 <th class="th_tags">Tags</th>
23916 </tr>
23917 </thead>
23918
23919 <tbody>
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930 <tr class="entry" id="static_android.shading.availableModes">
23931 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070023932 " rowspan="5">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023933 android.<wbr/>shading.<wbr/>available<wbr/>Modes
23934 </td>
23935 <td class="entry_type">
23936 <span class="entry_type_name">byte</span>
23937 <span class="entry_type_container">x</span>
23938
23939 <span class="entry_type_array">
23940 n
23941 </span>
23942 <span class="entry_type_visibility"> [public as enumList]</span>
23943
23944
23945 <span class="entry_type_hwlevel">[legacy] </span>
23946
23947
23948 <div class="entry_type_notes">List of enums (android.<wbr/>shading.<wbr/>mode).<wbr/></div>
23949
23950
23951 </td> <!-- entry_type -->
23952
23953 <td class="entry_description">
23954 <p>List of lens shading modes for <a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a> that are supported by this camera device.<wbr/></p>
23955 </td>
23956
23957 <td class="entry_units">
23958 </td>
23959
23960 <td class="entry_range">
23961 <p>Any value listed in <a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></p>
23962 </td>
23963
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023964 <td class="entry_hal_version">
23965 <p>3.<wbr/>2</p>
23966 </td>
23967
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023968 <td class="entry_tags">
23969 </td>
23970
23971 </tr>
23972 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023973 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023974 </tr>
23975 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023976 <td class="entry_details" colspan="6">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023977 <p>This list contains lens shading modes that can be set for the camera device.<wbr/>
23978Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always
23979list OFF and FAST mode.<wbr/> This includes all FULL level devices.<wbr/>
23980LEGACY devices will always only support FAST mode.<wbr/></p>
23981 </td>
23982 </tr>
23983
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070023984 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023985 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070023986 </tr>
23987 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023988 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070023989 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if lens shading correction control is
23990available on the camera device,<wbr/> but the underlying implementation can be the same for
23991both modes.<wbr/> That is,<wbr/> if the highest quality implementation on the camera device does not
23992slow down capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
23993 </td>
23994 </tr>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023995
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080023996 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080023997 <!-- end of entry -->
23998
23999
24000
24001 <!-- end of kind -->
24002 </tbody>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024003
24004 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024005 <tr><td colspan="7" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024006
24007
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024008 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024009
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024010 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024011 <tr>
24012 <th class="th_name">Property Name</th>
24013 <th class="th_type">Type</th>
24014 <th class="th_description">Description</th>
24015 <th class="th_units">Units</th>
24016 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024017 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024018 <th class="th_tags">Tags</th>
24019 </tr>
24020 </thead>
24021
24022 <tbody>
24023
24024
24025
24026
24027
24028
24029
24030
24031
24032
24033 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024034 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024035 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080024036 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024037 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024038 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024039 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024040
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024041 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024042
Igor Murashkin6c936c12014-05-13 14:51:49 -070024043
Igor Murashkinca256272014-10-02 15:27:09 -070024044 <span class="entry_type_hwlevel">[legacy] </span>
24045
Igor Murashkin6c936c12014-05-13 14:51:49 -070024046
24047
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024048 <ul class="entry_type_enum">
24049 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024050 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024051 <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
24052results.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024053 </li>
24054 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024055 <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024056 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024057 <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024058 </li>
24059 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024060 <span class="entry_type_enum_name">FULL (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024061 <span class="entry_type_enum_optional">[optional]</span>
24062 <span class="entry_type_enum_notes"><p>Return all face
24063metadata.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024064<p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024065 </li>
24066 </ul>
24067
24068 </td> <!-- entry_type -->
24069
24070 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024071 <p>Operating mode for the face detector
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070024072unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024073 </td>
24074
24075 <td class="entry_units">
24076 </td>
24077
24078 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080024079 <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 -080024080 </td>
24081
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024082 <td class="entry_hal_version">
24083 <p>3.<wbr/>2</p>
24084 </td>
24085
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024086 <td class="entry_tags">
24087 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080024088 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024089 </ul>
24090 </td>
24091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024092 </tr>
24093 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024094 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024095 </tr>
24096 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024097 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080024098 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024099should output just the basic fields or the full set of
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024100fields.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024101 </td>
24102 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024103
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024104 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024105 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024106 </tr>
24107 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024108 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024109 <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
24110<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
24111FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
24112<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
24113 </td>
24114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024115
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024116 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024117 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024118
24119
24120 <tr class="entry" id="controls_android.statistics.histogramMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024121 <td class="entry_name
24122 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024123 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024126 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024127
Igor Murashkinb8dc8812013-07-17 16:29:34 -070024128 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024129
Igor Murashkin6c936c12014-05-13 14:51:49 -070024130
24131
24132
Igor Murashkinca256272014-10-02 15:27:09 -070024133
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024134 <ul class="entry_type_enum">
24135 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024136 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024137 </li>
24138 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024139 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024140 </li>
24141 </ul>
24142
24143 </td> <!-- entry_type -->
24144
24145 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080024146 <p>Operating mode for histogram
24147generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024148 </td>
24149
24150 <td class="entry_units">
24151 </td>
24152
24153 <td class="entry_range">
24154 </td>
24155
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024156 <td class="entry_hal_version">
24157 <p>3.<wbr/>2</p>
24158 </td>
24159
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024160 <td class="entry_tags">
24161 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024162 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024163 </ul>
24164 </td>
24165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024166 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024167
24168
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024169 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024170 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024171
24172
24173 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024174 <td class="entry_name
24175 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024176 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024177 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024178 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024179 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024180
Igor Murashkinb8dc8812013-07-17 16:29:34 -070024181 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024182
Igor Murashkin6c936c12014-05-13 14:51:49 -070024183
24184
24185
Igor Murashkinca256272014-10-02 15:27:09 -070024186
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024187 <ul class="entry_type_enum">
24188 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024189 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024190 </li>
24191 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024192 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024193 </li>
24194 </ul>
24195
24196 </td> <!-- entry_type -->
24197
24198 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080024199 <p>Operating mode for sharpness map
24200generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024201 </td>
24202
24203 <td class="entry_units">
24204 </td>
24205
24206 <td class="entry_range">
24207 </td>
24208
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024209 <td class="entry_hal_version">
24210 <p>3.<wbr/>2</p>
24211 </td>
24212
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024213 <td class="entry_tags">
24214 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024215 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024216 </ul>
24217 </td>
24218
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024219 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024220
24221
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024222 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024223 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024224
Zhijun He69fc0ea2013-07-17 09:42:58 -070024225
Ruben Brunk49e4f912014-03-04 14:09:44 -080024226 <tr class="entry" id="controls_android.statistics.hotPixelMapMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024227 <td class="entry_name
24228 " rowspan="3">
Ruben Brunk49e4f912014-03-04 14:09:44 -080024229 android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
24230 </td>
24231 <td class="entry_type">
24232 <span class="entry_type_name entry_type_name_enum">byte</span>
24233
24234 <span class="entry_type_visibility"> [public as boolean]</span>
24235
Igor Murashkin6c936c12014-05-13 14:51:49 -070024236
24237
24238
Igor Murashkinca256272014-10-02 15:27:09 -070024239
Ruben Brunk49e4f912014-03-04 14:09:44 -080024240 <ul class="entry_type_enum">
24241 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024242 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024243 <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024244 </li>
24245 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024246 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024247 <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024248 </li>
24249 </ul>
24250
24251 </td> <!-- entry_type -->
24252
24253 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024254 <p>Operating mode for hot pixel map generation.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024255 </td>
24256
24257 <td class="entry_units">
24258 </td>
24259
24260 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024261 <p><a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024262 </td>
24263
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024264 <td class="entry_hal_version">
24265 <p>3.<wbr/>2</p>
24266 </td>
24267
Ruben Brunk49e4f912014-03-04 14:09:44 -080024268 <td class="entry_tags">
24269 <ul class="entry_tags">
24270 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070024271 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024272 </ul>
24273 </td>
24274
24275 </tr>
24276 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024277 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024278 </tr>
24279 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024280 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024281 <p>If set to <code>true</code>,<wbr/> a hot pixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
24282If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024283 </td>
24284 </tr>
24285
24286
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024287 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024288 <!-- end of entry -->
24289
24290
Zhijun He69fc0ea2013-07-17 09:42:58 -070024291 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024292 <td class="entry_name
24293 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080024294 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024295 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070024296 <td class="entry_type">
24297 <span class="entry_type_name entry_type_name_enum">byte</span>
24298
24299 <span class="entry_type_visibility"> [public]</span>
24300
Igor Murashkin6c936c12014-05-13 14:51:49 -070024301
Igor Murashkinca256272014-10-02 15:27:09 -070024302 <span class="entry_type_hwlevel">[full] </span>
24303
Igor Murashkin6c936c12014-05-13 14:51:49 -070024304
24305
Zhijun He69fc0ea2013-07-17 09:42:58 -070024306 <ul class="entry_type_enum">
24307 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024308 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024309 <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070024310 </li>
24311 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024312 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024313 <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070024314 </li>
24315 </ul>
24316
24317 </td> <!-- entry_type -->
24318
24319 <td class="entry_description">
Zhijun He25b8ac52014-02-24 09:49:37 -080024320 <p>Whether the camera device will output the lens
24321shading map in output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070024322 </td>
24323
24324 <td class="entry_units">
24325 </td>
24326
24327 <td class="entry_range">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024328 <p><a href="#static_android.statistics.info.availableLensShadingMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes</a></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070024329 </td>
24330
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024331 <td class="entry_hal_version">
24332 <p>3.<wbr/>2</p>
24333 </td>
24334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024335 <td class="entry_tags">
Igor Murashkinca256272014-10-02 15:27:09 -070024336 <ul class="entry_tags">
24337 <li><a href="#tag_RAW">RAW</a></li>
24338 </ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024339 </td>
24340
24341 </tr>
24342 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024343 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024344 </tr>
24345 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024346 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080024347 <p>When set to ON,<wbr/>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024348<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
Igor Murashkin0b080452013-12-27 15:30:25 -080024349the output result metadata.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024350<p>ON is always supported on devices with the RAW capability.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070024351 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024352 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024353
24354
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024355 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024356 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070024357
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080024358
24359 <tr class="entry" id="controls_android.statistics.oisDataMode">
24360 <td class="entry_name
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080024361 " rowspan="1">
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080024362 android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode
24363 </td>
24364 <td class="entry_type">
24365 <span class="entry_type_name entry_type_name_enum">byte</span>
24366
24367 <span class="entry_type_visibility"> [public]</span>
24368
24369
24370
24371
24372
24373 <ul class="entry_type_enum">
24374 <li>
24375 <span class="entry_type_enum_name">OFF (v3.3)</span>
24376 <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
24377 </li>
24378 <li>
24379 <span class="entry_type_enum_name">ON (v3.3)</span>
24380 <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
24381 </li>
24382 </ul>
24383
24384 </td> <!-- entry_type -->
24385
24386 <td class="entry_description">
Eino-Ville Talvalabaf80472018-02-05 16:26:26 -080024387 <p>A control for selecting whether OIS position information is included in output
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080024388result metadata.<wbr/></p>
24389 </td>
24390
24391 <td class="entry_units">
24392 </td>
24393
24394 <td class="entry_range">
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070024395 <p><a href="#static_android.statistics.info.availableOisDataModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</a></p>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080024396 </td>
24397
24398 <td class="entry_hal_version">
24399 <p>3.<wbr/>3</p>
24400 </td>
24401
24402 <td class="entry_tags">
24403 </td>
24404
24405 </tr>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080024406
24407
24408 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
24409 <!-- end of entry -->
24410
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024411
24412
24413 <!-- end of kind -->
24414 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024415 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024416
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024417 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024418 <tr>
24419 <th class="th_name">Property Name</th>
24420 <th class="th_type">Type</th>
24421 <th class="th_description">Description</th>
24422 <th class="th_units">Units</th>
24423 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024424 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024425 <th class="th_tags">Tags</th>
24426 </tr>
24427 </thead>
24428
24429 <tbody>
24430
24431
24432
24433
24434
24435
24436
24437
24438
24439
24440
24441
24442 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024443 <td class="entry_name
24444 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080024445 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024446 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024447 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024448 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024449 <span class="entry_type_container">x</span>
24450
24451 <span class="entry_type_array">
24452 n
24453 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070024454 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070024455
24456
Igor Murashkinca256272014-10-02 15:27:09 -070024457 <span class="entry_type_hwlevel">[legacy] </span>
24458
Igor Murashkin6c936c12014-05-13 14:51:49 -070024459
Igor Murashkin0b080452013-12-27 15:30:25 -080024460 <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 -080024461
24462
24463 </td> <!-- entry_type -->
24464
24465 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024466 <p>List of face detection modes for <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> that are
24467supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024468 </td>
24469
24470 <td class="entry_units">
24471 </td>
24472
24473 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024474 <p>Any value listed in <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024475 </td>
24476
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024477 <td class="entry_hal_version">
24478 <p>3.<wbr/>2</p>
24479 </td>
24480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024481 <td class="entry_tags">
24482 </td>
24483
24484 </tr>
24485 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024486 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024487 </tr>
24488 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024489 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024490 <p>OFF is always supported.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024491 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024492 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024493
24494
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024495 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024496 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024497
24498
24499 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024500 <td class="entry_name
24501 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024502 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024503 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024504 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024505 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024506
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024507 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024508
24509
Igor Murashkin6c936c12014-05-13 14:51:49 -070024510
24511
24512
Igor Murashkinca256272014-10-02 15:27:09 -070024513
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024514 </td> <!-- entry_type -->
24515
24516 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080024517 <p>Number of histogram buckets
24518supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024519 </td>
24520
24521 <td class="entry_units">
24522 </td>
24523
24524 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080024525 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024526 </td>
24527
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024528 <td class="entry_hal_version">
24529 <p>3.<wbr/>2</p>
24530 </td>
24531
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024532 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024533 <ul class="entry_tags">
24534 <li><a href="#tag_FUTURE">FUTURE</a></li>
24535 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024536 </td>
24537
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024539
24540
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024541 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024542 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024543
24544
24545 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024546 <td class="entry_name
24547 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024548 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024549 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024550 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024551 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024552
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024553 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024554
24555
Igor Murashkinca256272014-10-02 15:27:09 -070024556 <span class="entry_type_hwlevel">[legacy] </span>
24557
Igor Murashkin6c936c12014-05-13 14:51:49 -070024558
24559
24560
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024561 </td> <!-- entry_type -->
24562
24563 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024564 <p>The maximum number of simultaneously detectable
24565faces.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024566 </td>
24567
24568 <td class="entry_units">
24569 </td>
24570
24571 <td class="entry_range">
Igor Murashkinca256272014-10-02 15:27:09 -070024572 <p>0 for cameras without available face detection; otherwise:
24573<code>&gt;=4</code> for LIMITED or FULL hwlevel devices or
24574<code>&gt;0</code> for LEGACY devices.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024575 </td>
24576
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024577 <td class="entry_hal_version">
24578 <p>3.<wbr/>2</p>
24579 </td>
24580
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024581 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024582 <ul class="entry_tags">
24583 <li><a href="#tag_BC">BC</a></li>
24584 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024585 </td>
24586
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024587 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024588
24589
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024590 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024591 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024592
24593
24594 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024595 <td class="entry_name
24596 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024597 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024598 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024599 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024600 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024601
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024602 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024603
24604
Igor Murashkin6c936c12014-05-13 14:51:49 -070024605
24606
24607
Igor Murashkinca256272014-10-02 15:27:09 -070024608
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024609 </td> <!-- entry_type -->
24610
24611 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080024612 <p>Maximum value possible for a histogram
24613bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024614 </td>
24615
24616 <td class="entry_units">
24617 </td>
24618
24619 <td class="entry_range">
24620 </td>
24621
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024622 <td class="entry_hal_version">
24623 <p>3.<wbr/>2</p>
24624 </td>
24625
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024626 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024627 <ul class="entry_tags">
24628 <li><a href="#tag_FUTURE">FUTURE</a></li>
24629 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024630 </td>
24631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024632 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024633
24634
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024635 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024636 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024637
24638
24639 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024640 <td class="entry_name
24641 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024642 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024643 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024644 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024645 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024646
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024647 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024648
24649
Igor Murashkin6c936c12014-05-13 14:51:49 -070024650
24651
24652
Igor Murashkinca256272014-10-02 15:27:09 -070024653
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024654 </td> <!-- entry_type -->
24655
24656 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080024657 <p>Maximum value possible for a sharpness map
24658region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024659 </td>
24660
24661 <td class="entry_units">
24662 </td>
24663
24664 <td class="entry_range">
24665 </td>
24666
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024667 <td class="entry_hal_version">
24668 <p>3.<wbr/>2</p>
24669 </td>
24670
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024671 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024672 <ul class="entry_tags">
24673 <li><a href="#tag_FUTURE">FUTURE</a></li>
24674 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024675 </td>
24676
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024677 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024678
24679
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024680 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024681 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024682
24683
24684 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024685 <td class="entry_name
24686 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080024687 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024688 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024689 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024690 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024691 <span class="entry_type_container">x</span>
24692
24693 <span class="entry_type_array">
24694 2
24695 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070024696 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070024697
24698
24699
Igor Murashkinca256272014-10-02 15:27:09 -070024700
Igor Murashkin0b080452013-12-27 15:30:25 -080024701 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024702
24703
24704 </td> <!-- entry_type -->
24705
24706 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080024707 <p>Dimensions of the sharpness
24708map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024709 </td>
24710
24711 <td class="entry_units">
24712 </td>
24713
24714 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080024715 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024716 </td>
24717
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024718 <td class="entry_hal_version">
24719 <p>3.<wbr/>2</p>
24720 </td>
24721
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024722 <td class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070024723 <ul class="entry_tags">
24724 <li><a href="#tag_FUTURE">FUTURE</a></li>
24725 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024726 </td>
24727
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024728 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024729
24730
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024731 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080024732 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024733
Ruben Brunk49e4f912014-03-04 14:09:44 -080024734
24735 <tr class="entry" id="static_android.statistics.info.availableHotPixelMapModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024736 <td class="entry_name
24737 " rowspan="3">
Ruben Brunk49e4f912014-03-04 14:09:44 -080024738 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes
24739 </td>
24740 <td class="entry_type">
24741 <span class="entry_type_name">byte</span>
24742 <span class="entry_type_container">x</span>
24743
24744 <span class="entry_type_array">
24745 n
24746 </span>
24747 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070024748
24749
24750
Igor Murashkinca256272014-10-02 15:27:09 -070024751
Ruben Brunk49e4f912014-03-04 14:09:44 -080024752 <div class="entry_type_notes">list of enums</div>
24753
24754
24755 </td> <!-- entry_type -->
24756
24757 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024758 <p>List of hot pixel map output modes for <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a> that are
24759supported by this camera device.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024760 </td>
24761
24762 <td class="entry_units">
24763 </td>
24764
24765 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024766 <p>Any value listed in <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024767 </td>
24768
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024769 <td class="entry_hal_version">
24770 <p>3.<wbr/>2</p>
24771 </td>
24772
Ruben Brunk49e4f912014-03-04 14:09:44 -080024773 <td class="entry_tags">
24774 <ul class="entry_tags">
24775 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070024776 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024777 </ul>
24778 </td>
24779
24780 </tr>
24781 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024782 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024783 </tr>
24784 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024785 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024786 <p>If no hotpixel map output is available for this camera device,<wbr/> this will contain only
24787<code>false</code>.<wbr/></p>
24788<p>ON is always supported on devices with the RAW capability.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024789 </td>
24790 </tr>
24791
24792
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024793 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080024794 <!-- end of entry -->
24795
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024796
24797 <tr class="entry" id="static_android.statistics.info.availableLensShadingMapModes">
24798 <td class="entry_name
24799 " rowspan="3">
24800 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes
24801 </td>
24802 <td class="entry_type">
24803 <span class="entry_type_name">byte</span>
24804 <span class="entry_type_container">x</span>
24805
24806 <span class="entry_type_array">
24807 n
24808 </span>
Yin-Chia Yehde1da612015-05-22 16:36:25 -070024809 <span class="entry_type_visibility"> [public as enumList]</span>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024810
24811
24812
24813
24814 <div class="entry_type_notes">list of enums</div>
24815
24816
24817 </td> <!-- entry_type -->
24818
24819 <td class="entry_description">
24820 <p>List of lens shading map output modes for <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> that
24821are supported by this camera device.<wbr/></p>
24822 </td>
24823
24824 <td class="entry_units">
24825 </td>
24826
24827 <td class="entry_range">
24828 <p>Any value listed in <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></p>
24829 </td>
24830
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024831 <td class="entry_hal_version">
24832 <p>3.<wbr/>2</p>
24833 </td>
24834
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024835 <td class="entry_tags">
24836 </td>
24837
24838 </tr>
24839 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024840 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024841 </tr>
24842 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024843 <td class="entry_details" colspan="6">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024844 <p>If no lens shading map output is available for this camera device,<wbr/> this key will
24845contain only OFF.<wbr/></p>
24846<p>ON is always supported on devices with the RAW capability.<wbr/>
24847LEGACY mode devices will always only support OFF.<wbr/></p>
24848 </td>
24849 </tr>
24850
24851
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024852 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080024853 <!-- end of entry -->
24854
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080024855
24856 <tr class="entry" id="static_android.statistics.info.availableOisDataModes">
24857 <td class="entry_name
24858 " rowspan="3">
24859 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes
24860 </td>
24861 <td class="entry_type">
24862 <span class="entry_type_name">byte</span>
24863 <span class="entry_type_container">x</span>
24864
24865 <span class="entry_type_array">
24866 n
24867 </span>
24868 <span class="entry_type_visibility"> [public as enumList]</span>
24869
24870
24871
24872
24873 <div class="entry_type_notes">list of enums</div>
24874
24875
24876 </td> <!-- entry_type -->
24877
24878 <td class="entry_description">
24879 <p>List of OIS data output modes for <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a> that
24880are supported by this camera device.<wbr/></p>
24881 </td>
24882
24883 <td class="entry_units">
24884 </td>
24885
24886 <td class="entry_range">
24887 <p>Any value listed in <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a></p>
24888 </td>
24889
24890 <td class="entry_hal_version">
24891 <p>3.<wbr/>3</p>
24892 </td>
24893
24894 <td class="entry_tags">
24895 </td>
24896
24897 </tr>
24898 <tr class="entries_header">
24899 <th class="th_details" colspan="6">Details</th>
24900 </tr>
24901 <tr class="entry_cont">
24902 <td class="entry_details" colspan="6">
24903 <p>If no OIS data output is available for this camera device,<wbr/> this key will
24904contain only OFF.<wbr/></p>
24905 </td>
24906 </tr>
24907
24908
24909 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
24910 <!-- end of entry -->
24911
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024912
24913
24914
24915
24916
24917 <!-- end of kind -->
24918 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024919 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024920
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024921 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024922 <tr>
24923 <th class="th_name">Property Name</th>
24924 <th class="th_type">Type</th>
24925 <th class="th_description">Description</th>
24926 <th class="th_units">Units</th>
24927 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024928 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024929 <th class="th_tags">Tags</th>
24930 </tr>
24931 </thead>
24932
24933 <tbody>
24934
24935
24936
24937
24938
24939
24940
24941
24942
24943
24944 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070024945 <td class="entry_name
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024946 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080024947 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080024948 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024949 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080024950 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024951
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070024952 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024953
Igor Murashkin6c936c12014-05-13 14:51:49 -070024954
Igor Murashkinca256272014-10-02 15:27:09 -070024955 <span class="entry_type_hwlevel">[legacy] </span>
24956
Igor Murashkin6c936c12014-05-13 14:51:49 -070024957
24958
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024959 <ul class="entry_type_enum">
24960 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024961 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024962 <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
24963results.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024964 </li>
24965 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024966 <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024967 <span class="entry_type_enum_optional">[optional]</span>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024968 <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024969 </li>
24970 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080024971 <span class="entry_type_enum_name">FULL (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070024972 <span class="entry_type_enum_optional">[optional]</span>
24973 <span class="entry_type_enum_notes"><p>Return all face
24974metadata.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024975<p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024976 </li>
24977 </ul>
24978
24979 </td> <!-- entry_type -->
24980
24981 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070024982 <p>Operating mode for the face detector
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070024983unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024984 </td>
24985
24986 <td class="entry_units">
24987 </td>
24988
24989 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080024990 <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 -080024991 </td>
24992
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080024993 <td class="entry_hal_version">
24994 <p>3.<wbr/>2</p>
24995 </td>
24996
Igor Murashkin08b8aad2012-11-29 15:23:03 -080024997 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080024998 <ul class="entry_tags">
24999 <li><a href="#tag_BC">BC</a></li>
25000 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025001 </td>
25002
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025003 </tr>
25004 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025005 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025006 </tr>
25007 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025008 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080025009 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025010should output just the basic fields or the full set of
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070025011fields.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025012 </td>
25013 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025014
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070025015 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025016 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070025017 </tr>
25018 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025019 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070025020 <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
25021<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
25022FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
25023<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
25024 </td>
25025 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025026
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025027 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025028 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025029
25030
25031 <tr class="entry" id="dynamic_android.statistics.faceIds">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025032 <td class="entry_name
25033 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025034 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025035 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025036 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025037 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025038 <span class="entry_type_container">x</span>
25039
25040 <span class="entry_type_array">
25041 n
25042 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070025043 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025044
25045
Igor Murashkinca256272014-10-02 15:27:09 -070025046 <span class="entry_type_hwlevel">[legacy] </span>
25047
Igor Murashkin6c936c12014-05-13 14:51:49 -070025048
25049
25050
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025051 </td> <!-- entry_type -->
25052
25053 <td class="entry_description">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025054 <p>List of unique IDs for detected faces.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025055 </td>
25056
25057 <td class="entry_units">
25058 </td>
25059
25060 <td class="entry_range">
25061 </td>
25062
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025063 <td class="entry_hal_version">
25064 <p>3.<wbr/>2</p>
25065 </td>
25066
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025067 <td class="entry_tags">
25068 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025069 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025070 </ul>
25071 </td>
25072
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025073 </tr>
25074 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025075 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025076 </tr>
25077 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025078 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025079 <p>Each detected face is given a unique ID that is valid for as long as the face is visible
25080to the camera device.<wbr/> A face that leaves the field of view and later returns may be
25081assigned a new ID.<wbr/></p>
25082<p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025083 </td>
25084 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025085
25086
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025087 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025088 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025089
25090
25091 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025092 <td class="entry_name
25093 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025094 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025095 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025096 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025097 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025098 <span class="entry_type_container">x</span>
25099
25100 <span class="entry_type_array">
25101 n x 6
25102 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070025103 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025104
25105
Igor Murashkinca256272014-10-02 15:27:09 -070025106 <span class="entry_type_hwlevel">[legacy] </span>
25107
Igor Murashkin6c936c12014-05-13 14:51:49 -070025108
Igor Murashkin0b080452013-12-27 15:30:25 -080025109 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025110
25111
25112 </td> <!-- entry_type -->
25113
25114 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025115 <p>List of landmarks for detected
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025116faces.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025117 </td>
25118
25119 <td class="entry_units">
25120 </td>
25121
25122 <td class="entry_range">
25123 </td>
25124
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025125 <td class="entry_hal_version">
25126 <p>3.<wbr/>2</p>
25127 </td>
25128
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025129 <td class="entry_tags">
25130 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025131 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025132 </ul>
25133 </td>
25134
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025135 </tr>
25136 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025137 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025138 </tr>
25139 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025140 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025141 <p>The coordinate system is that of <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with
25142<code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
25143<p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025144 </td>
25145 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025146
25147
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025148 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025149 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025150
25151
25152 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025153 <td class="entry_name
25154 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025155 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025156 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025157 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025158 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025159 <span class="entry_type_container">x</span>
25160
25161 <span class="entry_type_array">
25162 n x 4
25163 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070025164 <span class="entry_type_visibility"> [ndk_public as rectangle]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025165
25166
Igor Murashkinca256272014-10-02 15:27:09 -070025167 <span class="entry_type_hwlevel">[legacy] </span>
25168
Igor Murashkin6c936c12014-05-13 14:51:49 -070025169
Igor Murashkin0b080452013-12-27 15:30:25 -080025170 <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 -080025171
25172
25173 </td> <!-- entry_type -->
25174
25175 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025176 <p>List of the bounding rectangles for detected
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025177faces.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025178 </td>
25179
25180 <td class="entry_units">
25181 </td>
25182
25183 <td class="entry_range">
25184 </td>
25185
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025186 <td class="entry_hal_version">
25187 <p>3.<wbr/>2</p>
25188 </td>
25189
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025190 <td class="entry_tags">
25191 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025192 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025193 </ul>
25194 </td>
25195
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025196 </tr>
25197 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025198 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025199 </tr>
25200 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025201 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025202 <p>The coordinate system is that of <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with
25203<code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
25204<p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025205 </td>
25206 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025207
25208
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025209 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025210 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025211
25212
25213 <tr class="entry" id="dynamic_android.statistics.faceScores">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025214 <td class="entry_name
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025215 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080025216 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025217 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025218 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025219 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025220 <span class="entry_type_container">x</span>
25221
25222 <span class="entry_type_array">
25223 n
25224 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070025225 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025226
25227
Igor Murashkinca256272014-10-02 15:27:09 -070025228 <span class="entry_type_hwlevel">[legacy] </span>
25229
Igor Murashkin6c936c12014-05-13 14:51:49 -070025230
25231
25232
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025233 </td> <!-- entry_type -->
25234
25235 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025236 <p>List of the face confidence scores for
25237detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025238 </td>
25239
25240 <td class="entry_units">
25241 </td>
25242
25243 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025244 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025245 </td>
25246
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025247 <td class="entry_hal_version">
25248 <p>3.<wbr/>2</p>
25249 </td>
25250
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025251 <td class="entry_tags">
25252 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025253 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025254 </ul>
25255 </td>
25256
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025257 </tr>
25258 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025259 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025260 </tr>
25261 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025262 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025263 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025264 </td>
25265 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025266
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025267 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025268 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025269 </tr>
25270 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025271 <td class="entry_details" colspan="6">
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025272 <p>The value should be meaningful (for example,<wbr/> setting 100 at
25273all times is illegal).<wbr/></p>
25274 </td>
25275 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025276
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025277 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025278 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025279
25280
Igor Murashkinefff0de2014-05-14 17:30:49 -070025281 <tr class="entry" id="dynamic_android.statistics.faces">
25282 <td class="entry_name
25283 " rowspan="3">
25284 android.<wbr/>statistics.<wbr/>faces
25285 </td>
25286 <td class="entry_type">
25287 <span class="entry_type_name">int32</span>
25288 <span class="entry_type_container">x</span>
25289
25290 <span class="entry_type_array">
25291 n
25292 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070025293 <span class="entry_type_visibility"> [java_public as face]</span>
Igor Murashkinefff0de2014-05-14 17:30:49 -070025294
25295 <span class="entry_type_synthetic">[synthetic] </span>
25296
Igor Murashkinca256272014-10-02 15:27:09 -070025297 <span class="entry_type_hwlevel">[legacy] </span>
25298
Igor Murashkinefff0de2014-05-14 17:30:49 -070025299
25300
25301
25302 </td> <!-- entry_type -->
25303
25304 <td class="entry_description">
25305 <p>List of the faces detected through camera face detection
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070025306in this capture.<wbr/></p>
Igor Murashkinefff0de2014-05-14 17:30:49 -070025307 </td>
25308
25309 <td class="entry_units">
25310 </td>
25311
25312 <td class="entry_range">
25313 </td>
25314
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025315 <td class="entry_hal_version">
25316 <p>3.<wbr/>2</p>
25317 </td>
25318
Igor Murashkinefff0de2014-05-14 17:30:49 -070025319 <td class="entry_tags">
25320 </td>
25321
25322 </tr>
25323 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025324 <th class="th_details" colspan="6">Details</th>
Igor Murashkinefff0de2014-05-14 17:30:49 -070025325 </tr>
25326 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025327 <td class="entry_details" colspan="6">
Igor Murashkinefff0de2014-05-14 17:30:49 -070025328 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> <code>!=</code> OFF.<wbr/></p>
25329 </td>
25330 </tr>
25331
25332
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025333 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkinefff0de2014-05-14 17:30:49 -070025334 <!-- end of entry -->
25335
25336
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025337 <tr class="entry" id="dynamic_android.statistics.histogram">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025338 <td class="entry_name
25339 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025340 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025341 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025342 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025343 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025344 <span class="entry_type_container">x</span>
25345
25346 <span class="entry_type_array">
25347 n x 3
25348 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070025349 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025350
25351
25352
Igor Murashkinca256272014-10-02 15:27:09 -070025353
Igor Murashkin0b080452013-12-27 15:30:25 -080025354 <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 -080025355
25356
25357 </td> <!-- entry_type -->
25358
25359 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025360 <p>A 3-channel histogram based on the raw
25361sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025362 </td>
25363
25364 <td class="entry_units">
25365 </td>
25366
25367 <td class="entry_range">
25368 </td>
25369
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025370 <td class="entry_hal_version">
25371 <p>3.<wbr/>2</p>
25372 </td>
25373
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025374 <td class="entry_tags">
25375 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070025376 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025377 </ul>
25378 </td>
25379
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025380 </tr>
25381 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025382 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025383 </tr>
25384 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025385 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080025386 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025387(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 -080025388(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
25389supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025390 </td>
25391 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025392
25393
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025394 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025395 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025396
25397
25398 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025399 <td class="entry_name
25400 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080025401 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025402 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025403 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025404 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025405
Igor Murashkinb8dc8812013-07-17 16:29:34 -070025406 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025407
Igor Murashkin6c936c12014-05-13 14:51:49 -070025408
25409
25410
Igor Murashkinca256272014-10-02 15:27:09 -070025411
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025412 <ul class="entry_type_enum">
25413 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025414 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025415 </li>
25416 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025417 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025418 </li>
25419 </ul>
25420
25421 </td> <!-- entry_type -->
25422
25423 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025424 <p>Operating mode for histogram
25425generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025426 </td>
25427
25428 <td class="entry_units">
25429 </td>
25430
25431 <td class="entry_range">
25432 </td>
25433
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025434 <td class="entry_hal_version">
25435 <p>3.<wbr/>2</p>
25436 </td>
25437
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025438 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025439 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070025440 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025441 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025442 </td>
25443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025444 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025445
25446
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025447 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025448 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025449
25450
25451 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025452 <td class="entry_name
25453 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025454 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025458 <span class="entry_type_container">x</span>
25459
25460 <span class="entry_type_array">
25461 n x m x 3
25462 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070025463 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025464
25465
25466
Igor Murashkinca256272014-10-02 15:27:09 -070025467
Igor Murashkin0b080452013-12-27 15:30:25 -080025468 <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 -080025469
25470
25471 </td> <!-- entry_type -->
25472
25473 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025474 <p>A 3-channel sharpness map,<wbr/> based on the raw
25475sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025476 </td>
25477
25478 <td class="entry_units">
25479 </td>
25480
25481 <td class="entry_range">
25482 </td>
25483
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025484 <td class="entry_hal_version">
25485 <p>3.<wbr/>2</p>
25486 </td>
25487
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025488 <td class="entry_tags">
25489 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070025490 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025491 </ul>
25492 </td>
25493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025494 </tr>
25495 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025496 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025497 </tr>
25498 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025499 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080025500 <p>If only a monochrome sharpness map is supported,<wbr/>
25501all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025502 </td>
25503 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025504
25505
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025506 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025507 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025508
25509
25510 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025511 <td class="entry_name
25512 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080025513 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025514 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025515 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080025516 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025517
Igor Murashkinb8dc8812013-07-17 16:29:34 -070025518 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025519
Igor Murashkin6c936c12014-05-13 14:51:49 -070025520
25521
25522
Igor Murashkinca256272014-10-02 15:27:09 -070025523
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025524 <ul class="entry_type_enum">
25525 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025526 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025527 </li>
25528 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025529 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025530 </li>
25531 </ul>
25532
25533 </td> <!-- entry_type -->
25534
25535 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025536 <p>Operating mode for sharpness map
25537generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025538 </td>
25539
25540 <td class="entry_units">
25541 </td>
25542
25543 <td class="entry_range">
25544 </td>
25545
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025546 <td class="entry_hal_version">
25547 <p>3.<wbr/>2</p>
25548 </td>
25549
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025550 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025551 <ul class="entry_tags">
Zhijun He66e62a42014-05-23 11:02:34 -070025552 <li><a href="#tag_FUTURE">FUTURE</a></li>
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080025553 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025554 </td>
25555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025556 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025557
25558
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025559 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025560 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080025561
Zhijun He69fc0ea2013-07-17 09:42:58 -070025562
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025563 <tr class="entry" id="dynamic_android.statistics.lensShadingCorrectionMap">
25564 <td class="entry_name
25565 " rowspan="3">
25566 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map
25567 </td>
25568 <td class="entry_type">
25569 <span class="entry_type_name">byte</span>
25570
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025571 <span class="entry_type_visibility"> [java_public as lensShadingMap]</span>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025572
25573
Igor Murashkinca256272014-10-02 15:27:09 -070025574 <span class="entry_type_hwlevel">[full] </span>
25575
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025576
25577
25578
25579 </td> <!-- entry_type -->
25580
25581 <td class="entry_description">
25582 <p>The shading map is a low-resolution floating-point map
25583that lists the coefficients used to correct for vignetting,<wbr/> for each
25584Bayer color channel.<wbr/></p>
25585 </td>
25586
25587 <td class="entry_units">
25588 </td>
25589
25590 <td class="entry_range">
25591 <p>Each gain factor is &gt;= 1</p>
25592 </td>
25593
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025594 <td class="entry_hal_version">
25595 <p>3.<wbr/>2</p>
25596 </td>
25597
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025598 <td class="entry_tags">
25599 </td>
25600
25601 </tr>
25602 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025603 <th class="th_details" colspan="6">Details</th>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025604 </tr>
25605 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025606 <td class="entry_details" colspan="6">
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025607 <p>The map provided here is the same map that is used by the camera device to
25608correct both color shading and vignetting for output non-RAW images.<wbr/></p>
25609<p>When there is no lens shading correction applied to RAW
25610output images (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> <code>==</code>
25611false),<wbr/> this map is the complete lens shading correction
25612map; when there is some lens shading correction applied to
25613the RAW output image (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a><code>==</code> true),<wbr/> this map reports the remaining lens shading
25614correction map that needs to be applied to get shading
25615corrected images that match the camera device's output for
25616non-RAW formats.<wbr/></p>
25617<p>For a complete shading correction map,<wbr/> the least shaded
25618section of the image will have a gain factor of 1; all
25619other sections will have gains above 1.<wbr/></p>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025620<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025621will take into account the colorCorrection settings.<wbr/></p>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025622<p>The shading map is for the entire active pixel array,<wbr/> and is not
25623affected by the crop region specified in the request.<wbr/> Each shading map
25624entry is the value of the shading compensation map over a specific
25625pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
25626map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
25627(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
25628pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
25629The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
25630<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
25631channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
25632The shading map is stored in a fully interleaved format.<wbr/></p>
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025633<p>The shading map will generally have on the order of 30-40 rows and columns,<wbr/>
25634and will be smaller than 64x64.<wbr/></p>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025635<p>As an example,<wbr/> given a very small map defined as:</p>
25636<pre><code>width,<wbr/>height = [ 4,<wbr/> 3 ]
25637values =
25638[ 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/>
25639 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/>
25640 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/>
25641 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/>
25642 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/>
25643 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 ]
25644</code></pre>
25645<p>The low-resolution scaling map images for each channel are
25646(displayed using nearest-neighbor interpolation):</p>
25647<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
25648<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
25649<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
25650<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
25651<p>As a visualization only,<wbr/> inverting the full-color map to recover an
25652image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
25653<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
25654 </td>
25655 </tr>
25656
25657
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025658 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk9c766ad2014-05-27 18:52:49 -070025659 <!-- end of entry -->
25660
25661
Zhijun He69fc0ea2013-07-17 09:42:58 -070025662 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025663 <td class="entry_name
Zhijun He46f82f02014-05-20 18:22:18 -070025664 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080025665 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025666 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025667 <td class="entry_type">
25668 <span class="entry_type_name">float</span>
25669 <span class="entry_type_container">x</span>
25670
25671 <span class="entry_type_array">
25672 4 x n x m
25673 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070025674 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025675
25676
Igor Murashkinca256272014-10-02 15:27:09 -070025677 <span class="entry_type_hwlevel">[full] </span>
25678
Igor Murashkin6c936c12014-05-13 14:51:49 -070025679
Igor Murashkin0b080452013-12-27 15:30:25 -080025680 <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 -070025681
25682
25683 </td> <!-- entry_type -->
25684
25685 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025686 <p>The shading map is a low-resolution floating-point map
Zhijun He5f92cff2016-04-12 23:08:17 -070025687that lists the coefficients used to correct for vignetting and color shading,<wbr/>
25688for each Bayer color channel of RAW image data.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025689 </td>
25690
25691 <td class="entry_units">
25692 </td>
25693
25694 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025695 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025696 </td>
25697
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025698 <td class="entry_hal_version">
25699 <p>3.<wbr/>2</p>
25700 </td>
25701
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025702 <td class="entry_tags">
25703 </td>
25704
25705 </tr>
25706 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025707 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025708 </tr>
25709 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025710 <td class="entry_details" colspan="6">
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025711 <p>The map provided here is the same map that is used by the camera device to
25712correct both color shading and vignetting for output non-RAW images.<wbr/></p>
25713<p>When there is no lens shading correction applied to RAW
25714output images (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> <code>==</code>
25715false),<wbr/> this map is the complete lens shading correction
25716map; when there is some lens shading correction applied to
25717the RAW output image (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a><code>==</code> true),<wbr/> this map reports the remaining lens shading
25718correction map that needs to be applied to get shading
25719corrected images that match the camera device's output for
25720non-RAW formats.<wbr/></p>
25721<p>For a complete shading correction map,<wbr/> the least shaded
25722section of the image will have a gain factor of 1; all
25723other sections will have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025724<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025725will take into account the colorCorrection settings.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080025726<p>The shading map is for the entire active pixel array,<wbr/> and is not
25727affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080025728entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080025729pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
25730map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
25731(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
25732pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
25733The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
25734<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
25735channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
25736The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025737is 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>
Eino-Ville Talvalad089ee62016-06-02 14:15:56 -070025738<p>The shading map will generally have on the order of 30-40 rows and columns,<wbr/>
25739and will be smaller than 64x64.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080025740<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025741<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
25742<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080025743[ 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/>
25744 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/>
25745 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/>
25746 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/>
25747 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/>
25748 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 -080025749</code></pre>
25750<p>The low-resolution scaling map images for each channel are
25751(displayed using nearest-neighbor interpolation):</p>
25752<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
25753<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
25754<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
25755<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080025756<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080025757image of a gray wall (using bicubic interpolation for visual quality)
25758as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080025759<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080025760<p>Note that the RAW image data might be subject to lens shading
25761correction not reported on this map.<wbr/> Query
25762<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> to see if RAW image data has subject
25763to lens shading correction.<wbr/> If <a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a>
25764is TRUE,<wbr/> the RAW image data is subject to partial or full lens shading
25765correction.<wbr/> In the case full lens shading correction is applied to RAW
25766images,<wbr/> the gain factor map reported in this key will contain all 1.<wbr/>0 gains.<wbr/>
25767In other words,<wbr/> the map reported in this key is the remaining lens shading
25768that needs to be applied on the RAW image to get images without lens shading
25769artifacts.<wbr/> See <a href="#static_android.request.maxNumOutputRaw">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw</a> for a list of RAW image
25770formats.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025771 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025772 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025773
Zhijun He46f82f02014-05-20 18:22:18 -070025774 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025775 <th class="th_details" colspan="6">HAL Implementation Details</th>
Zhijun He46f82f02014-05-20 18:22:18 -070025776 </tr>
25777 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025778 <td class="entry_details" colspan="6">
Zhijun He46f82f02014-05-20 18:22:18 -070025779 <p>The lens shading map calculation may depend on exposure and white balance statistics.<wbr/>
25780When AE and AWB are in AUTO modes
25781(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code> OFF),<wbr/> the HAL
25782may have all the information it need to generate most accurate lens shading map.<wbr/> When
25783AE or AWB are in manual mode
25784(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> OFF or <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>==</code> OFF),<wbr/> the shading map
25785may be adversely impacted by manual exposure or white balance parameters.<wbr/> To avoid
25786generating unreliable shading map data,<wbr/> the HAL may choose to lock the shading map with
25787the latest known good map generated when the AE and AWB are in AUTO modes.<wbr/></p>
25788 </td>
25789 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025790
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025791 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025792 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070025793
25794
25795 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025796 <td class="entry_name
25797 entry_name_deprecated
25798 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025799 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025800 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025801 <td class="entry_type">
25802 <span class="entry_type_name">float</span>
25803 <span class="entry_type_container">x</span>
25804
25805 <span class="entry_type_array">
25806 4
25807 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080025808 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025809
25810
Igor Murashkinca256272014-10-02 15:27:09 -070025811
Igor Murashkin6c936c12014-05-13 14:51:49 -070025812 <span class="entry_type_deprecated">[deprecated] </span>
25813
Igor Murashkin0b080452013-12-27 15:30:25 -080025814 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025815
25816
25817 </td> <!-- entry_type -->
25818
25819 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025820 <p>The best-fit color channel gains calculated
Zhijun He25b8ac52014-02-24 09:49:37 -080025821by the camera device's statistics units for the current output frame.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025822 </td>
25823
25824 <td class="entry_units">
25825 </td>
25826
25827 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025828 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025829 </td>
25830
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025831 <td class="entry_hal_version">
25832 <p>3.<wbr/>2</p>
25833 </td>
25834
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025835 <td class="entry_tags">
25836 </td>
25837
25838 </tr>
25839 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025840 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025841 </tr>
25842 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025843 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080025844 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080025845since statistics processing on data from a new frame
25846typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080025847applied to that frame.<wbr/></p>
25848<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080025849see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070025850<p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -080025851regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025852 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025854
25855
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025856 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025857 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070025858
25859
25860 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025861 <td class="entry_name
25862 entry_name_deprecated
25863 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025864 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025865 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025866 <td class="entry_type">
25867 <span class="entry_type_name">rational</span>
25868 <span class="entry_type_container">x</span>
25869
25870 <span class="entry_type_array">
25871 3 x 3
25872 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080025873 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070025874
25875
Igor Murashkinca256272014-10-02 15:27:09 -070025876
Igor Murashkin6c936c12014-05-13 14:51:49 -070025877 <span class="entry_type_deprecated">[deprecated] </span>
25878
Igor Murashkin0b080452013-12-27 15:30:25 -080025879 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025880
25881
25882 </td> <!-- entry_type -->
25883
25884 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080025885 <p>The best-fit color transform matrix estimate
Zhijun He25b8ac52014-02-24 09:49:37 -080025886calculated by the camera device's statistics units for the current
25887output frame.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025888 </td>
25889
25890 <td class="entry_units">
25891 </td>
25892
25893 <td class="entry_range">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025894 <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025895 </td>
25896
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025897 <td class="entry_hal_version">
25898 <p>3.<wbr/>2</p>
25899 </td>
25900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025901 <td class="entry_tags">
25902 </td>
25903
25904 </tr>
25905 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025906 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025907 </tr>
25908 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025909 <td class="entry_details" colspan="6">
Zhijun He25b8ac52014-02-24 09:49:37 -080025910 <p>The camera device will provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080025911statistics unit on the white balance transforms to use
Zhijun He25b8ac52014-02-24 09:49:37 -080025912for the next frame.<wbr/> These are the values the camera device believes
Igor Murashkin0b080452013-12-27 15:30:25 -080025913are the best fit for the current output frame.<wbr/> This may
25914be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080025915statistics processing on data from a new frame typically
25916completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080025917that frame.<wbr/></p>
25918<p>These estimates must be provided for all frames,<wbr/> even if
25919capture settings and color transforms are set by the application.<wbr/></p>
Eino-Ville Talvala68dbc6f2014-06-06 14:35:41 -070025920<p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -080025921regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025922 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025923 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025924
25925
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025926 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025927 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070025928
25929
25930 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Igor Murashkin6c936c12014-05-13 14:51:49 -070025931 <td class="entry_name
25932 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080025933 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080025934 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025935 <td class="entry_type">
25936 <span class="entry_type_name entry_type_name_enum">byte</span>
25937
25938 <span class="entry_type_visibility"> [public]</span>
25939
Igor Murashkin6c936c12014-05-13 14:51:49 -070025940
Igor Murashkinca256272014-10-02 15:27:09 -070025941 <span class="entry_type_hwlevel">[full] </span>
25942
Igor Murashkin6c936c12014-05-13 14:51:49 -070025943
25944
Zhijun He69fc0ea2013-07-17 09:42:58 -070025945 <ul class="entry_type_enum">
25946 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025947 <span class="entry_type_enum_name">NONE (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025948 <span class="entry_type_enum_notes"><p>The camera device does not detect any flickering illumination
25949in the current scene.<wbr/></p></span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025950 </li>
25951 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025952 <span class="entry_type_enum_name">50HZ (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025953 <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 50Hz
25954in the current scene.<wbr/></p></span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025955 </li>
25956 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080025957 <span class="entry_type_enum_name">60HZ (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025958 <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 60Hz
25959in the current scene.<wbr/></p></span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025960 </li>
25961 </ul>
25962
25963 </td> <!-- entry_type -->
25964
25965 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080025966 <p>The camera device estimated scene illumination lighting
25967frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070025968 </td>
25969
25970 <td class="entry_units">
25971 </td>
25972
25973 <td class="entry_range">
25974 </td>
25975
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025976 <td class="entry_hal_version">
25977 <p>3.<wbr/>2</p>
25978 </td>
25979
Zhijun He69fc0ea2013-07-17 09:42:58 -070025980 <td class="entry_tags">
25981 </td>
25982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025983 </tr>
25984 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025985 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080025986 </tr>
25987 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080025988 <td class="entry_details" colspan="6">
Zhijun Heb8512c52014-02-03 11:46:58 -080025989 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
25990that depends on the local utility power standards.<wbr/> This flicker must be
25991accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
25992The camera device uses this entry to tell the application what the scene
25993illuminant frequency is.<wbr/></p>
25994<p>When manual exposure control is enabled
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070025995(<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> ==
25996OFF</code>),<wbr/> the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't perform
25997antibanding,<wbr/> and the application can ensure it selects
25998exposure times that do not cause banding issues by looking
25999into this metadata field.<wbr/> See
26000<a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> for more details.<wbr/></p>
26001<p>Reports NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026002 </td>
26003 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026004
26005
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026006 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026007 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070026008
Ruben Brunk49e4f912014-03-04 14:09:44 -080026009
26010 <tr class="entry" id="dynamic_android.statistics.hotPixelMapMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026011 <td class="entry_name
26012 " rowspan="3">
Ruben Brunk49e4f912014-03-04 14:09:44 -080026013 android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
26014 </td>
26015 <td class="entry_type">
26016 <span class="entry_type_name entry_type_name_enum">byte</span>
26017
26018 <span class="entry_type_visibility"> [public as boolean]</span>
26019
Igor Murashkin6c936c12014-05-13 14:51:49 -070026020
26021
26022
Igor Murashkinca256272014-10-02 15:27:09 -070026023
Ruben Brunk49e4f912014-03-04 14:09:44 -080026024 <ul class="entry_type_enum">
26025 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026026 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026027 <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026028 </li>
26029 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026030 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026031 <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026032 </li>
26033 </ul>
26034
26035 </td> <!-- entry_type -->
26036
26037 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070026038 <p>Operating mode for hot pixel map generation.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026039 </td>
26040
26041 <td class="entry_units">
26042 </td>
26043
26044 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070026045 <p><a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026046 </td>
26047
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026048 <td class="entry_hal_version">
26049 <p>3.<wbr/>2</p>
26050 </td>
26051
Ruben Brunk49e4f912014-03-04 14:09:44 -080026052 <td class="entry_tags">
26053 <ul class="entry_tags">
26054 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070026055 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026056 </ul>
26057 </td>
26058
26059 </tr>
26060 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026061 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026062 </tr>
26063 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026064 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070026065 <p>If set to <code>true</code>,<wbr/> a hot pixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
26066If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026067 </td>
26068 </tr>
26069
26070
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026071 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026072 <!-- end of entry -->
26073
26074
26075 <tr class="entry" id="dynamic_android.statistics.hotPixelMap">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026076 <td class="entry_name
26077 " rowspan="5">
Ruben Brunk49e4f912014-03-04 14:09:44 -080026078 android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map
26079 </td>
26080 <td class="entry_type">
26081 <span class="entry_type_name">int32</span>
26082 <span class="entry_type_container">x</span>
26083
26084 <span class="entry_type_array">
26085 2 x n
26086 </span>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026087 <span class="entry_type_visibility"> [public as point]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070026088
26089
26090
Igor Murashkinca256272014-10-02 15:27:09 -070026091
Ruben Brunk49e4f912014-03-04 14:09:44 -080026092 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
26093
26094
26095 </td> <!-- entry_type -->
26096
26097 <td class="entry_description">
26098 <p>List of <code>(x,<wbr/> y)</code> coordinates of hot/<wbr/>defective pixels on the sensor.<wbr/></p>
26099 </td>
26100
26101 <td class="entry_units">
26102 </td>
26103
26104 <td class="entry_range">
26105 <p>n &lt;= number of pixels on the sensor.<wbr/>
26106The <code>(x,<wbr/> y)</code> coordinates must be bounded by
26107<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
26108 </td>
26109
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026110 <td class="entry_hal_version">
26111 <p>3.<wbr/>2</p>
26112 </td>
26113
Ruben Brunk49e4f912014-03-04 14:09:44 -080026114 <td class="entry_tags">
26115 <ul class="entry_tags">
26116 <li><a href="#tag_V1">V1</a></li>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070026117 <li><a href="#tag_RAW">RAW</a></li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026118 </ul>
26119 </td>
26120
26121 </tr>
26122 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026123 <th class="th_details" colspan="6">Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026124 </tr>
26125 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026126 <td class="entry_details" colspan="6">
Ruben Brunk49e4f912014-03-04 14:09:44 -080026127 <p>A coordinate <code>(x,<wbr/> y)</code> must lie between <code>(0,<wbr/> 0)</code>,<wbr/> and
26128<code>(width - 1,<wbr/> height - 1)</code> (inclusive),<wbr/> which are the top-left and
26129bottom-right of the pixel array,<wbr/> respectively.<wbr/> The width and
26130height dimensions are given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/>
26131This may include hot pixels that lie outside of the active array
26132bounds given by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
26133 </td>
26134 </tr>
26135
26136 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026137 <th class="th_details" colspan="6">HAL Implementation Details</th>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026138 </tr>
26139 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026140 <td class="entry_details" colspan="6">
Ruben Brunk49e4f912014-03-04 14:09:44 -080026141 <p>A hotpixel map contains the coordinates of pixels on the camera
26142sensor that do report valid values (usually due to defects in
26143the camera sensor).<wbr/> This includes pixels that are stuck at certain
26144values,<wbr/> or have a response that does not accuractly encode the
26145incoming light from the scene.<wbr/></p>
26146<p>To avoid performance issues,<wbr/> there should be significantly fewer hot
26147pixels than actual pixels on the camera sensor.<wbr/></p>
26148 </td>
26149 </tr>
26150
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026151 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunk49e4f912014-03-04 14:09:44 -080026152 <!-- end of entry -->
26153
Zhijun He602d3702014-05-02 17:38:15 -070026154
26155 <tr class="entry" id="dynamic_android.statistics.lensShadingMapMode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026156 <td class="entry_name
26157 " rowspan="3">
Zhijun He602d3702014-05-02 17:38:15 -070026158 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
26159 </td>
26160 <td class="entry_type">
26161 <span class="entry_type_name entry_type_name_enum">byte</span>
26162
26163 <span class="entry_type_visibility"> [public]</span>
26164
Igor Murashkin6c936c12014-05-13 14:51:49 -070026165
Igor Murashkinca256272014-10-02 15:27:09 -070026166 <span class="entry_type_hwlevel">[full] </span>
26167
Igor Murashkin6c936c12014-05-13 14:51:49 -070026168
26169
Zhijun He602d3702014-05-02 17:38:15 -070026170 <ul class="entry_type_enum">
26171 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026172 <span class="entry_type_enum_name">OFF (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026173 <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -070026174 </li>
26175 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026176 <span class="entry_type_enum_name">ON (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026177 <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
Zhijun He602d3702014-05-02 17:38:15 -070026178 </li>
26179 </ul>
26180
26181 </td> <!-- entry_type -->
26182
26183 <td class="entry_description">
26184 <p>Whether the camera device will output the lens
26185shading map in output result metadata.<wbr/></p>
26186 </td>
26187
26188 <td class="entry_units">
26189 </td>
26190
26191 <td class="entry_range">
Yin-Chia Yehd7dcb742015-02-04 10:04:37 -080026192 <p><a href="#static_android.statistics.info.availableLensShadingMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes</a></p>
Zhijun He602d3702014-05-02 17:38:15 -070026193 </td>
26194
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026195 <td class="entry_hal_version">
26196 <p>3.<wbr/>2</p>
26197 </td>
26198
Zhijun He602d3702014-05-02 17:38:15 -070026199 <td class="entry_tags">
Igor Murashkinca256272014-10-02 15:27:09 -070026200 <ul class="entry_tags">
26201 <li><a href="#tag_RAW">RAW</a></li>
26202 </ul>
Zhijun He602d3702014-05-02 17:38:15 -070026203 </td>
26204
26205 </tr>
26206 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026207 <th class="th_details" colspan="6">Details</th>
Zhijun He602d3702014-05-02 17:38:15 -070026208 </tr>
26209 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026210 <td class="entry_details" colspan="6">
Zhijun He602d3702014-05-02 17:38:15 -070026211 <p>When set to ON,<wbr/>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026212<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
Zhijun He602d3702014-05-02 17:38:15 -070026213the output result metadata.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070026214<p>ON is always supported on devices with the RAW capability.<wbr/></p>
Zhijun He602d3702014-05-02 17:38:15 -070026215 </td>
26216 </tr>
26217
26218
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026219 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He602d3702014-05-02 17:38:15 -070026220 <!-- end of entry -->
26221
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026222
26223 <tr class="entry" id="dynamic_android.statistics.oisDataMode">
26224 <td class="entry_name
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026225 " rowspan="1">
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026226 android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode
26227 </td>
26228 <td class="entry_type">
26229 <span class="entry_type_name entry_type_name_enum">byte</span>
26230
26231 <span class="entry_type_visibility"> [public]</span>
26232
26233
26234
26235
26236
26237 <ul class="entry_type_enum">
26238 <li>
26239 <span class="entry_type_enum_name">OFF (v3.3)</span>
26240 <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
26241 </li>
26242 <li>
26243 <span class="entry_type_enum_name">ON (v3.3)</span>
26244 <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
26245 </li>
26246 </ul>
26247
26248 </td> <!-- entry_type -->
26249
26250 <td class="entry_description">
Eino-Ville Talvalabaf80472018-02-05 16:26:26 -080026251 <p>A control for selecting whether OIS position information is included in output
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026252result metadata.<wbr/></p>
26253 </td>
26254
26255 <td class="entry_units">
26256 </td>
26257
26258 <td class="entry_range">
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070026259 <p><a href="#static_android.statistics.info.availableOisDataModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</a></p>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026260 </td>
26261
26262 <td class="entry_hal_version">
26263 <p>3.<wbr/>3</p>
26264 </td>
26265
26266 <td class="entry_tags">
26267 </td>
26268
26269 </tr>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026270
26271
26272 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
26273 <!-- end of entry -->
26274
26275
26276 <tr class="entry" id="dynamic_android.statistics.oisTimestamps">
26277 <td class="entry_name
26278 " rowspan="3">
26279 android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps
26280 </td>
26281 <td class="entry_type">
26282 <span class="entry_type_name">int64</span>
26283 <span class="entry_type_container">x</span>
26284
26285 <span class="entry_type_array">
26286 n
26287 </span>
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026288 <span class="entry_type_visibility"> [ndk_public]</span>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026289
26290
26291
26292
26293
26294
26295 </td> <!-- entry_type -->
26296
26297 <td class="entry_description">
26298 <p>An array of timestamps of OIS samples,<wbr/> in nanoseconds.<wbr/></p>
26299 </td>
26300
26301 <td class="entry_units">
26302 nanoseconds
26303 </td>
26304
26305 <td class="entry_range">
26306 </td>
26307
26308 <td class="entry_hal_version">
26309 <p>3.<wbr/>3</p>
26310 </td>
26311
26312 <td class="entry_tags">
26313 </td>
26314
26315 </tr>
26316 <tr class="entries_header">
26317 <th class="th_details" colspan="6">Details</th>
26318 </tr>
26319 <tr class="entry_cont">
26320 <td class="entry_details" colspan="6">
26321 <p>The array contains the timestamps of OIS samples.<wbr/> The timestamps are in the same
26322timebase as and comparable to <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a>.<wbr/></p>
26323 </td>
26324 </tr>
26325
26326
26327 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
26328 <!-- end of entry -->
26329
26330
26331 <tr class="entry" id="dynamic_android.statistics.oisXShifts">
26332 <td class="entry_name
26333 " rowspan="3">
26334 android.<wbr/>statistics.<wbr/>ois<wbr/>XShifts
26335 </td>
26336 <td class="entry_type">
26337 <span class="entry_type_name">float</span>
26338 <span class="entry_type_container">x</span>
26339
26340 <span class="entry_type_array">
26341 n
26342 </span>
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026343 <span class="entry_type_visibility"> [ndk_public]</span>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026344
26345
26346
26347
26348
26349
26350 </td> <!-- entry_type -->
26351
26352 <td class="entry_description">
26353 <p>An array of shifts of OIS samples,<wbr/> in x direction.<wbr/></p>
26354 </td>
26355
26356 <td class="entry_units">
26357 Pixels in active array.<wbr/>
26358 </td>
26359
26360 <td class="entry_range">
26361 </td>
26362
26363 <td class="entry_hal_version">
26364 <p>3.<wbr/>3</p>
26365 </td>
26366
26367 <td class="entry_tags">
26368 </td>
26369
26370 </tr>
26371 <tr class="entries_header">
26372 <th class="th_details" colspan="6">Details</th>
26373 </tr>
26374 <tr class="entry_cont">
26375 <td class="entry_details" colspan="6">
26376 <p>The array contains the amount of shifts in x direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
26377A positive value is a shift from left to right in active array coordinate system.<wbr/> For
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026378example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026379(3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
26380<p>The number of shifts must match the number of timestamps in
26381<a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
26382 </td>
26383 </tr>
26384
26385
26386 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
26387 <!-- end of entry -->
26388
26389
26390 <tr class="entry" id="dynamic_android.statistics.oisYShifts">
26391 <td class="entry_name
26392 " rowspan="3">
26393 android.<wbr/>statistics.<wbr/>ois<wbr/>YShifts
26394 </td>
26395 <td class="entry_type">
26396 <span class="entry_type_name">float</span>
26397 <span class="entry_type_container">x</span>
26398
26399 <span class="entry_type_array">
26400 n
26401 </span>
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026402 <span class="entry_type_visibility"> [ndk_public]</span>
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026403
26404
26405
26406
26407
26408
26409 </td> <!-- entry_type -->
26410
26411 <td class="entry_description">
26412 <p>An array of shifts of OIS samples,<wbr/> in y direction.<wbr/></p>
26413 </td>
26414
26415 <td class="entry_units">
26416 Pixels in active array.<wbr/>
26417 </td>
26418
26419 <td class="entry_range">
26420 </td>
26421
26422 <td class="entry_hal_version">
26423 <p>3.<wbr/>3</p>
26424 </td>
26425
26426 <td class="entry_tags">
26427 </td>
26428
26429 </tr>
26430 <tr class="entries_header">
26431 <th class="th_details" colspan="6">Details</th>
26432 </tr>
26433 <tr class="entry_cont">
26434 <td class="entry_details" colspan="6">
26435 <p>The array contains the amount of shifts in y direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
26436A positive value is a shift from top to bottom in active array coordinate system.<wbr/> For
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026437example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
Chien-Yu Chen2560d4f2018-01-12 17:38:00 -080026438(0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
26439<p>The number of shifts must match the number of timestamps in
26440<a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
26441 </td>
26442 </tr>
26443
26444
26445 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
26446 <!-- end of entry -->
26447
Chien-Yu Chena5cfee92018-02-15 12:34:30 -080026448
26449 <tr class="entry" id="dynamic_android.statistics.oisSamples">
26450 <td class="entry_name
26451 " rowspan="3">
26452 android.<wbr/>statistics.<wbr/>ois<wbr/>Samples
26453 </td>
26454 <td class="entry_type">
26455 <span class="entry_type_name">float</span>
26456 <span class="entry_type_container">x</span>
26457
26458 <span class="entry_type_array">
26459 n
26460 </span>
26461 <span class="entry_type_visibility"> [java_public as oisSample]</span>
26462
26463 <span class="entry_type_synthetic">[synthetic] </span>
26464
26465
26466
26467
26468
26469 </td> <!-- entry_type -->
26470
26471 <td class="entry_description">
26472 <p>An array of OIS samples.<wbr/></p>
26473 </td>
26474
26475 <td class="entry_units">
26476 </td>
26477
26478 <td class="entry_range">
26479 </td>
26480
26481 <td class="entry_hal_version">
26482 <p>3.<wbr/>3</p>
26483 </td>
26484
26485 <td class="entry_tags">
26486 </td>
26487
26488 </tr>
26489 <tr class="entries_header">
26490 <th class="th_details" colspan="6">Details</th>
26491 </tr>
26492 <tr class="entry_cont">
26493 <td class="entry_details" colspan="6">
26494 <p>Each OIS sample contains the timestamp and the amount of shifts in x and y direction,<wbr/>
26495in pixels,<wbr/> of the OIS sample.<wbr/></p>
26496<p>A positive value for a shift in x direction is a shift from left to right in active array
26497coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
26498coordinates,<wbr/> a shift of (3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
26499<p>A positive value for a shift in y direction is a shift from top to bottom in active array
26500coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
26501coordinates,<wbr/> a shift of (0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
26502 </td>
26503 </tr>
26504
26505
26506 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
26507 <!-- end of entry -->
26508
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026509
26510
26511 <!-- end of kind -->
26512 </tbody>
26513
26514 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026515 <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026516
26517
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026518 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026519
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070026520 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026521 <tr>
26522 <th class="th_name">Property Name</th>
26523 <th class="th_type">Type</th>
26524 <th class="th_description">Description</th>
26525 <th class="th_units">Units</th>
26526 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026527 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026528 <th class="th_tags">Tags</th>
26529 </tr>
26530 </thead>
26531
26532 <tbody>
26533
26534
26535
26536
26537
26538
26539
26540
26541
26542
26543 <tr class="entry" id="controls_android.tonemap.curveBlue">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026544 <td class="entry_name
26545 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080026546 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026547 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026548 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080026549 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070026550 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026551
Zhijun He704d1282013-08-19 15:26:33 -070026552 <span class="entry_type_array">
26553 n x 2
26554 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070026555 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070026556
26557
Igor Murashkinca256272014-10-02 15:27:09 -070026558 <span class="entry_type_hwlevel">[full] </span>
26559
Igor Murashkin6c936c12014-05-13 14:51:49 -070026560
Igor Murashkin0b080452013-12-27 15:30:25 -080026561 <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 -080026562
26563
26564 </td> <!-- entry_type -->
26565
26566 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026567 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
26568channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
26569CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026570 </td>
26571
26572 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026573 </td>
26574
26575 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026576 </td>
26577
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026578 <td class="entry_hal_version">
26579 <p>3.<wbr/>2</p>
26580 </td>
26581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026582 <td class="entry_tags">
26583 </td>
26584
26585 </tr>
26586 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026587 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026588 </tr>
26589 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026590 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026591 <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 -080026592 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026593 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026594
26595
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026596 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026597 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026598
26599
26600 <tr class="entry" id="controls_android.tonemap.curveGreen">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026601 <td class="entry_name
26602 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080026603 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026604 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026605 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080026606 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070026607 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026608
Zhijun He704d1282013-08-19 15:26:33 -070026609 <span class="entry_type_array">
26610 n x 2
26611 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070026612 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070026613
26614
Igor Murashkinca256272014-10-02 15:27:09 -070026615 <span class="entry_type_hwlevel">[full] </span>
26616
Igor Murashkin6c936c12014-05-13 14:51:49 -070026617
Igor Murashkin0b080452013-12-27 15:30:25 -080026618 <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 -080026619
26620
26621 </td> <!-- entry_type -->
26622
26623 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026624 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
26625channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
26626CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026627 </td>
26628
26629 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026630 </td>
26631
26632 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026633 </td>
26634
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026635 <td class="entry_hal_version">
26636 <p>3.<wbr/>2</p>
26637 </td>
26638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026639 <td class="entry_tags">
26640 </td>
26641
26642 </tr>
26643 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026644 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026645 </tr>
26646 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026647 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026648 <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 -080026649 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026650 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026651
26652
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026653 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026654 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026655
26656
26657 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026658 <td class="entry_name
26659 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080026660 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026661 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026662 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080026663 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026664 <span class="entry_type_container">x</span>
26665
26666 <span class="entry_type_array">
26667 n x 2
26668 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070026669 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070026670
26671
Igor Murashkinca256272014-10-02 15:27:09 -070026672 <span class="entry_type_hwlevel">[full] </span>
26673
Igor Murashkin6c936c12014-05-13 14:51:49 -070026674
Igor Murashkin0b080452013-12-27 15:30:25 -080026675 <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 -080026676
26677
26678 </td> <!-- entry_type -->
26679
26680 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026681 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
26682channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
26683CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026684 </td>
26685
26686 <td class="entry_units">
26687 </td>
26688
26689 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026690 <p>0-1 on both input and output coordinates,<wbr/> normalized
26691as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026692 </td>
26693
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026694 <td class="entry_hal_version">
26695 <p>3.<wbr/>2</p>
26696 </td>
26697
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026698 <td class="entry_tags">
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026699 </td>
26700
26701 </tr>
26702 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026703 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026704 </tr>
26705 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026706 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026707 <p>Each channel's curve is defined by an array of control points:</p>
26708<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
26709 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
267102 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070026711<p>These are sorted in order of increasing <code>Pin</code>; it is
26712required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
Igor Murashkin94e06c42014-01-13 16:51:17 -080026713define a complete mapping.<wbr/> For input values between control points,<wbr/>
26714the camera device must linearly interpolate between the control
26715points.<wbr/></p>
26716<p>Each curve can have an independent number of points,<wbr/> and the number
26717of points can be less than max (that is,<wbr/> the request doesn't have to
26718always provide a curve with number of points equivalent to
26719<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070026720<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
26721are ignored.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026722<p>A few examples,<wbr/> and their corresponding graphical mappings; these
26723only specify the red channel and the precision is limited to 4
26724digits,<wbr/> for conciseness.<wbr/></p>
26725<p>Linear mapping:</p>
26726<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 ]
26727</code></pre>
26728<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
26729<p>Invert mapping:</p>
26730<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 ]
26731</code></pre>
26732<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
26733<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
26734<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
26735 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/>
26736 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/>
26737 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/>
26738 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 ]
26739</code></pre>
26740<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
26741<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
26742<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
26743 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/>
26744 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/>
26745 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/>
26746 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 ]
26747</code></pre>
26748<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026749 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026750 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026751
Igor Murashkin94e06c42014-01-13 16:51:17 -080026752 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026753 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026754 </tr>
26755 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026756 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026757 <p>For good quality of mapping,<wbr/> at least 128 control points are
26758preferred.<wbr/></p>
26759<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
26760control points used as are available.<wbr/></p>
26761 </td>
26762 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026763
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026764 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026765 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026766
26767
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026768 <tr class="entry" id="controls_android.tonemap.curve">
26769 <td class="entry_name
26770 " rowspan="5">
26771 android.<wbr/>tonemap.<wbr/>curve
26772 </td>
26773 <td class="entry_type">
26774 <span class="entry_type_name">float</span>
26775
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070026776 <span class="entry_type_visibility"> [java_public as tonemapCurve]</span>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026777
26778 <span class="entry_type_synthetic">[synthetic] </span>
26779
Igor Murashkinca256272014-10-02 15:27:09 -070026780 <span class="entry_type_hwlevel">[full] </span>
26781
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026782
26783
26784
26785 </td> <!-- entry_type -->
26786
26787 <td class="entry_description">
26788 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
26789is CONTRAST_<wbr/>CURVE.<wbr/></p>
26790 </td>
26791
26792 <td class="entry_units">
26793 </td>
26794
26795 <td class="entry_range">
26796 </td>
26797
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026798 <td class="entry_hal_version">
26799 <p>3.<wbr/>2</p>
26800 </td>
26801
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026802 <td class="entry_tags">
26803 </td>
26804
26805 </tr>
26806 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026807 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026808 </tr>
26809 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026810 <td class="entry_details" colspan="6">
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026811 <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
26812channels respectively.<wbr/> The following example uses the red channel as an
26813example.<wbr/> The same logic applies to green and blue channel.<wbr/>
26814Each channel's curve is defined by an array of control points:</p>
26815<pre><code>curveRed =
26816 [ P0(in,<wbr/> out),<wbr/> P1(in,<wbr/> out),<wbr/> P2(in,<wbr/> out),<wbr/> P3(in,<wbr/> out),<wbr/> ...,<wbr/> PN(in,<wbr/> out) ]
268172 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
26818<p>These are sorted in order of increasing <code>Pin</code>; it is always
26819guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
26820define a complete mapping.<wbr/> For input values between control points,<wbr/>
26821the camera device must linearly interpolate between the control
26822points.<wbr/></p>
26823<p>Each curve can have an independent number of points,<wbr/> and the number
26824of points can be less than max (that is,<wbr/> the request doesn't have to
26825always provide a curve with number of points equivalent to
26826<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070026827<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
26828are ignored.<wbr/></p>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026829<p>A few examples,<wbr/> and their corresponding graphical mappings; these
26830only specify the red channel and the precision is limited to 4
26831digits,<wbr/> for conciseness.<wbr/></p>
26832<p>Linear mapping:</p>
26833<pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
26834</code></pre>
26835<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
26836<p>Invert mapping:</p>
26837<pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
26838</code></pre>
26839<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
26840<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
26841<pre><code>curveRed = [
26842 (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/>
26843 (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/>
26844 (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/>
26845 (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) ]
26846</code></pre>
26847<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
26848<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
26849<pre><code>curveRed = [
26850 (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/>
26851 (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/>
26852 (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/>
26853 (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) ]
26854</code></pre>
26855<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
26856 </td>
26857 </tr>
26858
26859 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026860 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026861 </tr>
26862 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026863 <td class="entry_details" colspan="6">
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026864 <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
26865curveBlue entries.<wbr/></p>
26866 </td>
26867 </tr>
26868
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026869 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026870 <!-- end of entry -->
26871
26872
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026873 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070026874 <td class="entry_name
26875 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080026876 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026877 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026878 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080026879 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026880
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070026881 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026882
Igor Murashkin6c936c12014-05-13 14:51:49 -070026883
Igor Murashkinca256272014-10-02 15:27:09 -070026884 <span class="entry_type_hwlevel">[full] </span>
26885
Igor Murashkin6c936c12014-05-13 14:51:49 -070026886
26887
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026888 <ul class="entry_type_enum">
26889 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026890 <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080026891 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026892the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026893<p>All color enhancement and tonemapping must be disabled,<wbr/> except
26894for applying the tonemapping curve specified by
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026895<a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026896<p>Must not slow down frame rate relative to raw
26897sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026898 </li>
26899 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026900 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026901 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
26902reducing frame rate compared to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026903 </li>
26904 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026905 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070026906 <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070026907the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026908 </li>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026909 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026910 <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070026911 <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026912tonemapping.<wbr/></p>
26913<p>All color enhancement and tonemapping must be disabled,<wbr/> except
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070026914for applying the tonemapping curve specified by <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a>.<wbr/></p>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026915<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
26916 </li>
26917 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080026918 <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026919 <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070026920<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026921<p>All color enhancement and tonemapping must be disabled,<wbr/> except
26922for applying the tonemapping curve specified by
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070026923<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a>.<wbr/></p>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026924<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
26925 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026926 </ul>
26927
26928 </td> <!-- entry_type -->
26929
26930 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026931 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026932 </td>
26933
26934 <td class="entry_units">
26935 </td>
26936
26937 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070026938 <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026939 </td>
26940
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026941 <td class="entry_hal_version">
26942 <p>3.<wbr/>2</p>
26943 </td>
26944
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026945 <td class="entry_tags">
26946 </td>
26947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026948 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026949 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026950 <th class="th_details" colspan="6">Details</th>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026951 </tr>
26952 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026953 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080026954 <p>When switching to an application-defined contrast curve by setting
26955<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
26956per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
26957mapping from input high-bit-depth pixel value to the output
26958low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
26959and output may change depending on the camera pipeline,<wbr/> the values
26960are specified by normalized floating-point numbers.<wbr/></p>
26961<p>More-complex color mapping operations such as 3D color look-up
26962tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
26963transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
26964CONTRAST_<wbr/>CURVE.<wbr/></p>
26965<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070026966emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
Igor Murashkin94e06c42014-01-13 16:51:17 -080026967These values are always available,<wbr/> and as close as possible to the
26968actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
Zhijun He46f82f02014-05-20 18:22:18 -070026969<p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
Igor Murashkin94e06c42014-01-13 16:51:17 -080026970provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
26971roughly the same.<wbr/></p>
26972 </td>
26973 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080026974
26975
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080026976 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080026977 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080026978
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080026979
26980 <tr class="entry" id="controls_android.tonemap.gamma">
26981 <td class="entry_name
26982 " rowspan="3">
26983 android.<wbr/>tonemap.<wbr/>gamma
26984 </td>
26985 <td class="entry_type">
26986 <span class="entry_type_name">float</span>
26987
26988 <span class="entry_type_visibility"> [public]</span>
26989
26990
26991
26992
26993
26994
26995 </td> <!-- entry_type -->
26996
26997 <td class="entry_description">
26998 <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
26999GAMMA_<wbr/>VALUE</p>
27000 </td>
27001
27002 <td class="entry_units">
27003 </td>
27004
27005 <td class="entry_range">
27006 </td>
27007
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027008 <td class="entry_hal_version">
27009 <p>3.<wbr/>2</p>
27010 </td>
27011
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027012 <td class="entry_tags">
27013 </td>
27014
27015 </tr>
27016 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027017 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027018 </tr>
27019 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027020 <td class="entry_details" colspan="6">
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027021 <p>The tonemap curve will be defined the following formula:
27022* OUT = pow(IN,<wbr/> 1.<wbr/>0 /<wbr/> gamma)
27023where IN and OUT is the input pixel value scaled to range [0.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/>
27024pow is the power function and gamma is the gamma value specified by this
27025key.<wbr/></p>
27026<p>The same curve will be applied to all color channels.<wbr/> The camera device
27027may clip the input gamma value to its supported range.<wbr/> The actual applied
27028value will be returned in capture result.<wbr/></p>
27029<p>The valid range of gamma value varies on different devices,<wbr/> but values
27030within [1.<wbr/>0,<wbr/> 5.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
27031 </td>
27032 </tr>
27033
27034
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027035 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027036 <!-- end of entry -->
27037
27038
27039 <tr class="entry" id="controls_android.tonemap.presetCurve">
27040 <td class="entry_name
27041 " rowspan="3">
27042 android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve
27043 </td>
27044 <td class="entry_type">
27045 <span class="entry_type_name entry_type_name_enum">byte</span>
27046
27047 <span class="entry_type_visibility"> [public]</span>
27048
27049
27050
27051
27052
27053 <ul class="entry_type_enum">
27054 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027055 <span class="entry_type_enum_name">SRGB (v3.2)</span>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027056 <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
27057 </li>
27058 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027059 <span class="entry_type_enum_name">REC709 (v3.2)</span>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027060 <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
27061 </li>
27062 </ul>
27063
27064 </td> <!-- entry_type -->
27065
27066 <td class="entry_description">
27067 <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27068PRESET_<wbr/>CURVE</p>
27069 </td>
27070
27071 <td class="entry_units">
27072 </td>
27073
27074 <td class="entry_range">
27075 </td>
27076
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027077 <td class="entry_hal_version">
27078 <p>3.<wbr/>2</p>
27079 </td>
27080
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027081 <td class="entry_tags">
27082 </td>
27083
27084 </tr>
27085 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027086 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027087 </tr>
27088 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027089 <td class="entry_details" colspan="6">
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027090 <p>The tonemap curve will be defined by specified standard.<wbr/></p>
27091<p>sRGB (approximated by 16 control points):</p>
27092<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
27093<p>Rec.<wbr/> 709 (approximated by 16 control points):</p>
27094<p><img alt="Rec. 709 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png"/></p>
27095<p>Note that above figures show a 16 control points approximation of preset
27096curves.<wbr/> Camera devices may apply a different approximation to the curve.<wbr/></p>
27097 </td>
27098 </tr>
27099
27100
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027101 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027102 <!-- end of entry -->
27103
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027104
27105
27106 <!-- end of kind -->
27107 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027108 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027109
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070027110 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027111 <tr>
27112 <th class="th_name">Property Name</th>
27113 <th class="th_type">Type</th>
27114 <th class="th_description">Description</th>
27115 <th class="th_units">Units</th>
27116 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027117 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027118 <th class="th_tags">Tags</th>
27119 </tr>
27120 </thead>
27121
27122 <tbody>
27123
27124
27125
27126
27127
27128
27129
27130
27131
27132
27133 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027134 <td class="entry_name
27135 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080027136 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027137 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027138 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080027139 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027140
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070027141 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027142
27143
Igor Murashkinca256272014-10-02 15:27:09 -070027144 <span class="entry_type_hwlevel">[full] </span>
27145
Igor Murashkin6c936c12014-05-13 14:51:49 -070027146
27147
27148
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027149 </td> <!-- entry_type -->
27150
27151 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080027152 <p>Maximum number of supported points in the
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027153tonemap curve that can be used for <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027154 </td>
27155
27156 <td class="entry_units">
27157 </td>
27158
27159 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027160 </td>
27161
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027162 <td class="entry_hal_version">
27163 <p>3.<wbr/>2</p>
27164 </td>
27165
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027166 <td class="entry_tags">
27167 </td>
27168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027169 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027170 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027171 <th class="th_details" colspan="6">Details</th>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027172 </tr>
27173 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027174 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070027175 <p>If the actual number of points provided by the application (in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>*) is
27176less than this maximum,<wbr/> the camera device will resample the curve to its internal
27177representation,<wbr/> using linear interpolation.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027178<p>The output curves in the result metadata may have a different number
27179of points than the input curves,<wbr/> and will represent the actual
27180hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
27181 </td>
27182 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027183
Igor Murashkin94e06c42014-01-13 16:51:17 -080027184 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027185 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027186 </tr>
27187 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027188 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027189 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
27190 </td>
27191 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027192
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027193 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027194 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027195
Ruben Brunkd14f7162014-03-04 15:01:25 -080027196
27197 <tr class="entry" id="static_android.tonemap.availableToneMapModes">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027198 <td class="entry_name
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070027199 " rowspan="5">
Ruben Brunkd14f7162014-03-04 15:01:25 -080027200 android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes
27201 </td>
27202 <td class="entry_type">
27203 <span class="entry_type_name">byte</span>
27204 <span class="entry_type_container">x</span>
27205
27206 <span class="entry_type_array">
27207 n
27208 </span>
Eino-Ville Talvalaaebc8c22014-05-27 10:50:30 -070027209 <span class="entry_type_visibility"> [public as enumList]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070027210
27211
Igor Murashkinca256272014-10-02 15:27:09 -070027212 <span class="entry_type_hwlevel">[full] </span>
27213
Igor Murashkin6c936c12014-05-13 14:51:49 -070027214
Ruben Brunkd14f7162014-03-04 15:01:25 -080027215 <div class="entry_type_notes">list of enums</div>
27216
27217
27218 </td> <!-- entry_type -->
27219
27220 <td class="entry_description">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070027221 <p>List of tonemapping modes for <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> that are supported by this camera
27222device.<wbr/></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -080027223 </td>
27224
27225 <td class="entry_units">
27226 </td>
27227
27228 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070027229 <p>Any value listed in <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -080027230 </td>
27231
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027232 <td class="entry_hal_version">
27233 <p>3.<wbr/>2</p>
27234 </td>
27235
Ruben Brunkd14f7162014-03-04 15:01:25 -080027236 <td class="entry_tags">
27237 </td>
27238
27239 </tr>
27240 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027241 <th class="th_details" colspan="6">Details</th>
Ruben Brunkd14f7162014-03-04 15:01:25 -080027242 </tr>
27243 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027244 <td class="entry_details" colspan="6">
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027245 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always contain
27246at least one of below mode combinations:</p>
27247<ul>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070027248<li>CONTRAST_<wbr/>CURVE,<wbr/> FAST and HIGH_<wbr/>QUALITY</li>
27249<li>GAMMA_<wbr/>VALUE,<wbr/> PRESET_<wbr/>CURVE,<wbr/> FAST and HIGH_<wbr/>QUALITY</li>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027250</ul>
27251<p>This includes all FULL level devices.<wbr/></p>
Ruben Brunkd14f7162014-03-04 15:01:25 -080027252 </td>
27253 </tr>
27254
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070027255 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027256 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070027257 </tr>
27258 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027259 <td class="entry_details" colspan="6">
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070027260 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if automatic tonemap control is available
27261on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
27262That is,<wbr/> if the highest quality implementation on the camera device does not slow down
27263capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
27264 </td>
27265 </tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -080027266
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027267 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Ruben Brunkd14f7162014-03-04 15:01:25 -080027268 <!-- end of entry -->
27269
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027270
27271
27272 <!-- end of kind -->
27273 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027274 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027275
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070027276 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027277 <tr>
27278 <th class="th_name">Property Name</th>
27279 <th class="th_type">Type</th>
27280 <th class="th_description">Description</th>
27281 <th class="th_units">Units</th>
27282 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027283 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027284 <th class="th_tags">Tags</th>
27285 </tr>
27286 </thead>
27287
27288 <tbody>
27289
27290
27291
27292
27293
27294
27295
27296
27297
27298
27299 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027300 <td class="entry_name
27301 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080027302 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027303 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027304 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080027305 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070027306 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027307
Zhijun He704d1282013-08-19 15:26:33 -070027308 <span class="entry_type_array">
27309 n x 2
27310 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070027311 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070027312
27313
Igor Murashkinca256272014-10-02 15:27:09 -070027314 <span class="entry_type_hwlevel">[full] </span>
27315
Igor Murashkin6c936c12014-05-13 14:51:49 -070027316
Igor Murashkin0b080452013-12-27 15:30:25 -080027317 <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 -080027318
27319
27320 </td> <!-- entry_type -->
27321
27322 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027323 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
27324channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27325CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027326 </td>
27327
27328 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027329 </td>
27330
27331 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027332 </td>
27333
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027334 <td class="entry_hal_version">
27335 <p>3.<wbr/>2</p>
27336 </td>
27337
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027338 <td class="entry_tags">
27339 </td>
27340
27341 </tr>
27342 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027343 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027344 </tr>
27345 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027346 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027347 <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 -080027348 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027349 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027350
27351
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027352 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027353 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027354
27355
27356 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027357 <td class="entry_name
27358 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080027359 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027360 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027361 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080027362 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070027363 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027364
Zhijun He704d1282013-08-19 15:26:33 -070027365 <span class="entry_type_array">
27366 n x 2
27367 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070027368 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070027369
27370
Igor Murashkinca256272014-10-02 15:27:09 -070027371 <span class="entry_type_hwlevel">[full] </span>
27372
Igor Murashkin6c936c12014-05-13 14:51:49 -070027373
Igor Murashkin0b080452013-12-27 15:30:25 -080027374 <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 -080027375
27376
27377 </td> <!-- entry_type -->
27378
27379 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027380 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
27381channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27382CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027383 </td>
27384
27385 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027386 </td>
27387
27388 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027389 </td>
27390
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027391 <td class="entry_hal_version">
27392 <p>3.<wbr/>2</p>
27393 </td>
27394
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027395 <td class="entry_tags">
27396 </td>
27397
27398 </tr>
27399 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027400 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027401 </tr>
27402 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027403 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027404 <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 -080027405 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027406 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027407
27408
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027409 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027410 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027411
27412
27413 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027414 <td class="entry_name
27415 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080027416 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027417 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027418 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080027419 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027420 <span class="entry_type_container">x</span>
27421
27422 <span class="entry_type_array">
27423 n x 2
27424 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070027425 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin6c936c12014-05-13 14:51:49 -070027426
27427
Igor Murashkinca256272014-10-02 15:27:09 -070027428 <span class="entry_type_hwlevel">[full] </span>
27429
Igor Murashkin6c936c12014-05-13 14:51:49 -070027430
Igor Murashkin0b080452013-12-27 15:30:25 -080027431 <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 -080027432
27433
27434 </td> <!-- entry_type -->
27435
27436 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027437 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
27438channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27439CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027440 </td>
27441
27442 <td class="entry_units">
27443 </td>
27444
27445 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027446 <p>0-1 on both input and output coordinates,<wbr/> normalized
27447as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027448 </td>
27449
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027450 <td class="entry_hal_version">
27451 <p>3.<wbr/>2</p>
27452 </td>
27453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027454 <td class="entry_tags">
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027455 </td>
27456
27457 </tr>
27458 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027459 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027460 </tr>
27461 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027462 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027463 <p>Each channel's curve is defined by an array of control points:</p>
27464<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
27465 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
274662 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070027467<p>These are sorted in order of increasing <code>Pin</code>; it is
27468required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
Igor Murashkin94e06c42014-01-13 16:51:17 -080027469define a complete mapping.<wbr/> For input values between control points,<wbr/>
27470the camera device must linearly interpolate between the control
27471points.<wbr/></p>
27472<p>Each curve can have an independent number of points,<wbr/> and the number
27473of points can be less than max (that is,<wbr/> the request doesn't have to
27474always provide a curve with number of points equivalent to
27475<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070027476<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
27477are ignored.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027478<p>A few examples,<wbr/> and their corresponding graphical mappings; these
27479only specify the red channel and the precision is limited to 4
27480digits,<wbr/> for conciseness.<wbr/></p>
27481<p>Linear mapping:</p>
27482<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 ]
27483</code></pre>
27484<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
27485<p>Invert mapping:</p>
27486<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 ]
27487</code></pre>
27488<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
27489<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
27490<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
27491 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/>
27492 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/>
27493 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/>
27494 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 ]
27495</code></pre>
27496<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
27497<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
27498<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
27499 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/>
27500 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/>
27501 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/>
27502 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 ]
27503</code></pre>
27504<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027505 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027507
Igor Murashkin94e06c42014-01-13 16:51:17 -080027508 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027509 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027510 </tr>
27511 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027512 <td class="entry_details" colspan="6">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027513 <p>For good quality of mapping,<wbr/> at least 128 control points are
27514preferred.<wbr/></p>
27515<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
27516control points used as are available.<wbr/></p>
27517 </td>
27518 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027519
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027520 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027521 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027522
27523
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027524 <tr class="entry" id="dynamic_android.tonemap.curve">
27525 <td class="entry_name
27526 " rowspan="5">
27527 android.<wbr/>tonemap.<wbr/>curve
27528 </td>
27529 <td class="entry_type">
27530 <span class="entry_type_name">float</span>
27531
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070027532 <span class="entry_type_visibility"> [java_public as tonemapCurve]</span>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027533
27534 <span class="entry_type_synthetic">[synthetic] </span>
27535
Igor Murashkinca256272014-10-02 15:27:09 -070027536 <span class="entry_type_hwlevel">[full] </span>
27537
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027538
27539
27540
27541 </td> <!-- entry_type -->
27542
27543 <td class="entry_description">
27544 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
27545is CONTRAST_<wbr/>CURVE.<wbr/></p>
27546 </td>
27547
27548 <td class="entry_units">
27549 </td>
27550
27551 <td class="entry_range">
27552 </td>
27553
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027554 <td class="entry_hal_version">
27555 <p>3.<wbr/>2</p>
27556 </td>
27557
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027558 <td class="entry_tags">
27559 </td>
27560
27561 </tr>
27562 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027563 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027564 </tr>
27565 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027566 <td class="entry_details" colspan="6">
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027567 <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
27568channels respectively.<wbr/> The following example uses the red channel as an
27569example.<wbr/> The same logic applies to green and blue channel.<wbr/>
27570Each channel's curve is defined by an array of control points:</p>
27571<pre><code>curveRed =
27572 [ P0(in,<wbr/> out),<wbr/> P1(in,<wbr/> out),<wbr/> P2(in,<wbr/> out),<wbr/> P3(in,<wbr/> out),<wbr/> ...,<wbr/> PN(in,<wbr/> out) ]
275732 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
27574<p>These are sorted in order of increasing <code>Pin</code>; it is always
27575guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
27576define a complete mapping.<wbr/> For input values between control points,<wbr/>
27577the camera device must linearly interpolate between the control
27578points.<wbr/></p>
27579<p>Each curve can have an independent number of points,<wbr/> and the number
27580of points can be less than max (that is,<wbr/> the request doesn't have to
27581always provide a curve with number of points equivalent to
27582<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
Shuzhen Wangca6957a2018-03-20 19:04:06 -070027583<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
27584are ignored.<wbr/></p>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027585<p>A few examples,<wbr/> and their corresponding graphical mappings; these
27586only specify the red channel and the precision is limited to 4
27587digits,<wbr/> for conciseness.<wbr/></p>
27588<p>Linear mapping:</p>
27589<pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
27590</code></pre>
27591<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
27592<p>Invert mapping:</p>
27593<pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
27594</code></pre>
27595<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
27596<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
27597<pre><code>curveRed = [
27598 (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/>
27599 (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/>
27600 (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/>
27601 (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) ]
27602</code></pre>
27603<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
27604<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
27605<pre><code>curveRed = [
27606 (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/>
27607 (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/>
27608 (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/>
27609 (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) ]
27610</code></pre>
27611<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
27612 </td>
27613 </tr>
27614
27615 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027616 <th class="th_details" colspan="6">HAL Implementation Details</th>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027617 </tr>
27618 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027619 <td class="entry_details" colspan="6">
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027620 <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
27621curveBlue entries.<wbr/></p>
27622 </td>
27623 </tr>
27624
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027625 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027626 <!-- end of entry -->
27627
27628
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027629 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027630 <td class="entry_name
27631 " rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080027632 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027633 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027634 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080027635 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027636
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070027637 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027638
Igor Murashkin6c936c12014-05-13 14:51:49 -070027639
Igor Murashkinca256272014-10-02 15:27:09 -070027640 <span class="entry_type_hwlevel">[full] </span>
27641
Igor Murashkin6c936c12014-05-13 14:51:49 -070027642
27643
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027644 <ul class="entry_type_enum">
27645 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027646 <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080027647 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027648the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027649<p>All color enhancement and tonemapping must be disabled,<wbr/> except
27650for applying the tonemapping curve specified by
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027651<a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
Igor Murashkin94e06c42014-01-13 16:51:17 -080027652<p>Must not slow down frame rate relative to raw
27653sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027654 </li>
27655 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027656 <span class="entry_type_enum_name">FAST (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070027657 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
27658reducing frame rate compared to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027659 </li>
27660 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027661 <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070027662 <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
Yin-Chia Yeh7bdefd32015-04-02 14:00:40 -070027663the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027664 </li>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027665 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027666 <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070027667 <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027668tonemapping.<wbr/></p>
27669<p>All color enhancement and tonemapping must be disabled,<wbr/> except
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070027670for applying the tonemapping curve specified by <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a>.<wbr/></p>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027671<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
27672 </li>
27673 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027674 <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027675 <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070027676<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027677<p>All color enhancement and tonemapping must be disabled,<wbr/> except
27678for applying the tonemapping curve specified by
Yin-Chia Yeh3a52b8f2015-05-05 23:49:07 -070027679<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a>.<wbr/></p>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027680<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
27681 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027682 </ul>
27683
27684 </td> <!-- entry_type -->
27685
27686 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080027687 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027688 </td>
27689
27690 <td class="entry_units">
27691 </td>
27692
27693 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070027694 <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027695 </td>
27696
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027697 <td class="entry_hal_version">
27698 <p>3.<wbr/>2</p>
27699 </td>
27700
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027701 <td class="entry_tags">
27702 </td>
27703
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027704 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080027705 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027706 <th class="th_details" colspan="6">Details</th>
Igor Murashkin595f45b2014-01-17 17:27:15 -080027707 </tr>
27708 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027709 <td class="entry_details" colspan="6">
Igor Murashkin595f45b2014-01-17 17:27:15 -080027710 <p>When switching to an application-defined contrast curve by setting
27711<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
27712per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
27713mapping from input high-bit-depth pixel value to the output
27714low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
27715and output may change depending on the camera pipeline,<wbr/> the values
27716are specified by normalized floating-point numbers.<wbr/></p>
27717<p>More-complex color mapping operations such as 3D color look-up
27718tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
27719transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27720CONTRAST_<wbr/>CURVE.<wbr/></p>
27721<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
Yin-Chia Yeh0a5f2692014-05-27 09:48:07 -070027722emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
Igor Murashkin595f45b2014-01-17 17:27:15 -080027723These values are always available,<wbr/> and as close as possible to the
27724actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
Zhijun He46f82f02014-05-20 18:22:18 -070027725<p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
Igor Murashkin595f45b2014-01-17 17:27:15 -080027726provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
27727roughly the same.<wbr/></p>
27728 </td>
27729 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027730
27731
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027732 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027733 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027734
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027735
27736 <tr class="entry" id="dynamic_android.tonemap.gamma">
27737 <td class="entry_name
27738 " rowspan="3">
27739 android.<wbr/>tonemap.<wbr/>gamma
27740 </td>
27741 <td class="entry_type">
27742 <span class="entry_type_name">float</span>
27743
27744 <span class="entry_type_visibility"> [public]</span>
27745
27746
27747
27748
27749
27750
27751 </td> <!-- entry_type -->
27752
27753 <td class="entry_description">
27754 <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27755GAMMA_<wbr/>VALUE</p>
27756 </td>
27757
27758 <td class="entry_units">
27759 </td>
27760
27761 <td class="entry_range">
27762 </td>
27763
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027764 <td class="entry_hal_version">
27765 <p>3.<wbr/>2</p>
27766 </td>
27767
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027768 <td class="entry_tags">
27769 </td>
27770
27771 </tr>
27772 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027773 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027774 </tr>
27775 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027776 <td class="entry_details" colspan="6">
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027777 <p>The tonemap curve will be defined the following formula:
27778* OUT = pow(IN,<wbr/> 1.<wbr/>0 /<wbr/> gamma)
27779where IN and OUT is the input pixel value scaled to range [0.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/>
27780pow is the power function and gamma is the gamma value specified by this
27781key.<wbr/></p>
27782<p>The same curve will be applied to all color channels.<wbr/> The camera device
27783may clip the input gamma value to its supported range.<wbr/> The actual applied
27784value will be returned in capture result.<wbr/></p>
27785<p>The valid range of gamma value varies on different devices,<wbr/> but values
27786within [1.<wbr/>0,<wbr/> 5.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
27787 </td>
27788 </tr>
27789
27790
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027791 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027792 <!-- end of entry -->
27793
27794
27795 <tr class="entry" id="dynamic_android.tonemap.presetCurve">
27796 <td class="entry_name
27797 " rowspan="3">
27798 android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve
27799 </td>
27800 <td class="entry_type">
27801 <span class="entry_type_name entry_type_name_enum">byte</span>
27802
27803 <span class="entry_type_visibility"> [public]</span>
27804
27805
27806
27807
27808
27809 <ul class="entry_type_enum">
27810 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027811 <span class="entry_type_enum_name">SRGB (v3.2)</span>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027812 <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
27813 </li>
27814 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027815 <span class="entry_type_enum_name">REC709 (v3.2)</span>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027816 <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
27817 </li>
27818 </ul>
27819
27820 </td> <!-- entry_type -->
27821
27822 <td class="entry_description">
27823 <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
27824PRESET_<wbr/>CURVE</p>
27825 </td>
27826
27827 <td class="entry_units">
27828 </td>
27829
27830 <td class="entry_range">
27831 </td>
27832
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027833 <td class="entry_hal_version">
27834 <p>3.<wbr/>2</p>
27835 </td>
27836
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027837 <td class="entry_tags">
27838 </td>
27839
27840 </tr>
27841 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027842 <th class="th_details" colspan="6">Details</th>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027843 </tr>
27844 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027845 <td class="entry_details" colspan="6">
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027846 <p>The tonemap curve will be defined by specified standard.<wbr/></p>
27847<p>sRGB (approximated by 16 control points):</p>
27848<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
27849<p>Rec.<wbr/> 709 (approximated by 16 control points):</p>
27850<p><img alt="Rec. 709 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png"/></p>
27851<p>Note that above figures show a 16 control points approximation of preset
27852curves.<wbr/> Camera devices may apply a different approximation to the curve.<wbr/></p>
27853 </td>
27854 </tr>
27855
27856
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027857 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Yin-Chia Yeh993d4c42015-02-05 13:19:21 -080027858 <!-- end of entry -->
27859
Igor Murashkin08b8aad2012-11-29 15:23:03 -080027860
27861
27862 <!-- end of kind -->
27863 </tbody>
27864
27865 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027866 <tr><td colspan="7" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027867
27868
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027869 <tr><td colspan="7" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027870
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070027871 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027872 <tr>
27873 <th class="th_name">Property Name</th>
27874 <th class="th_type">Type</th>
27875 <th class="th_description">Description</th>
27876 <th class="th_units">Units</th>
27877 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027878 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027879 <th class="th_tags">Tags</th>
27880 </tr>
27881 </thead>
27882
27883 <tbody>
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894 <tr class="entry" id="controls_android.led.transmit">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027895 <td class="entry_name
27896 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080027897 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027898 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027899 <td class="entry_type">
27900 <span class="entry_type_name entry_type_name_enum">byte</span>
27901
Igor Murashkinb8dc8812013-07-17 16:29:34 -070027902 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027903
Igor Murashkin6c936c12014-05-13 14:51:49 -070027904
27905
27906
Igor Murashkinca256272014-10-02 15:27:09 -070027907
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027908 <ul class="entry_type_enum">
27909 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027910 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027911 </li>
27912 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027913 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027914 </li>
27915 </ul>
27916
27917 </td> <!-- entry_type -->
27918
27919 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080027920 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080027921that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080027922Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080027923disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080027924any untrusted applications.<wbr/></p>
27925<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
27926transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
27927data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080027928<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080027929doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027930 </td>
27931
27932 <td class="entry_units">
27933 </td>
27934
27935 <td class="entry_range">
27936 </td>
27937
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027938 <td class="entry_hal_version">
27939 <p>3.<wbr/>2</p>
27940 </td>
27941
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027942 <td class="entry_tags">
27943 </td>
27944
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027945 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027946
27947
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027948 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080027949 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027950
27951
27952
27953 <!-- end of kind -->
27954 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027955 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027956
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070027957 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027958 <tr>
27959 <th class="th_name">Property Name</th>
27960 <th class="th_type">Type</th>
27961 <th class="th_description">Description</th>
27962 <th class="th_units">Units</th>
27963 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080027964 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027965 <th class="th_tags">Tags</th>
27966 </tr>
27967 </thead>
27968
27969 <tbody>
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980 <tr class="entry" id="dynamic_android.led.transmit">
Igor Murashkin6c936c12014-05-13 14:51:49 -070027981 <td class="entry_name
27982 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080027983 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080027984 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027985 <td class="entry_type">
27986 <span class="entry_type_name entry_type_name_enum">byte</span>
27987
Igor Murashkinb8dc8812013-07-17 16:29:34 -070027988 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027989
Igor Murashkin6c936c12014-05-13 14:51:49 -070027990
27991
27992
Igor Murashkinca256272014-10-02 15:27:09 -070027993
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027994 <ul class="entry_type_enum">
27995 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027996 <span class="entry_type_enum_name">OFF (v3.2)</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070027997 </li>
27998 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080027999 <span class="entry_type_enum_name">ON (v3.2)</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028000 </li>
28001 </ul>
28002
28003 </td> <!-- entry_type -->
28004
28005 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080028006 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028007that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080028008Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028009disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080028010any untrusted applications.<wbr/></p>
28011<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
28012transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
28013data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028014<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080028015doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028016 </td>
28017
28018 <td class="entry_units">
28019 </td>
28020
28021 <td class="entry_range">
28022 </td>
28023
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028024 <td class="entry_hal_version">
28025 <p>3.<wbr/>2</p>
28026 </td>
28027
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028028 <td class="entry_tags">
28029 </td>
28030
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028031 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028032
28033
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028034 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028035 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028036
28037
28038
28039 <!-- end of kind -->
28040 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028041 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028042
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070028043 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028044 <tr>
28045 <th class="th_name">Property Name</th>
28046 <th class="th_type">Type</th>
28047 <th class="th_description">Description</th>
28048 <th class="th_units">Units</th>
28049 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028050 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028051 <th class="th_tags">Tags</th>
28052 </tr>
28053 </thead>
28054
28055 <tbody>
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066 <tr class="entry" id="static_android.led.availableLeds">
Igor Murashkin6c936c12014-05-13 14:51:49 -070028067 <td class="entry_name
28068 " rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080028069 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028070 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028071 <td class="entry_type">
28072 <span class="entry_type_name entry_type_name_enum">byte</span>
28073 <span class="entry_type_container">x</span>
28074
28075 <span class="entry_type_array">
28076 n
28077 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070028078 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028079
Igor Murashkin6c936c12014-05-13 14:51:49 -070028080
28081
28082
Igor Murashkinca256272014-10-02 15:27:09 -070028083
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028084 <ul class="entry_type_enum">
28085 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028086 <span class="entry_type_enum_name">TRANSMIT (v3.2)</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070028087 <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used.<wbr/></p></span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028088 </li>
28089 </ul>
28090
28091 </td> <!-- entry_type -->
28092
28093 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080028094 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028095 </td>
28096
28097 <td class="entry_units">
28098 </td>
28099
28100 <td class="entry_range">
28101 </td>
28102
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028103 <td class="entry_hal_version">
28104 <p>3.<wbr/>2</p>
28105 </td>
28106
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028107 <td class="entry_tags">
28108 </td>
28109
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028110 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028111
28112
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028113 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028114 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070028115
28116
28117
28118 <!-- end of kind -->
28119 </tbody>
28120
28121 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028122 <tr><td colspan="7" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028123
28124
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028125 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028126
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070028127 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028128 <tr>
28129 <th class="th_name">Property Name</th>
28130 <th class="th_type">Type</th>
28131 <th class="th_description">Description</th>
28132 <th class="th_units">Units</th>
28133 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028134 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028135 <th class="th_tags">Tags</th>
28136 </tr>
28137 </thead>
28138
28139 <tbody>
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Igor Murashkin6c936c12014-05-13 14:51:49 -070028151 <td class="entry_name
28152 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080028153 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028154 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028155 <td class="entry_type">
28156 <span class="entry_type_name entry_type_name_enum">byte</span>
28157
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070028158 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028159
Igor Murashkin6c936c12014-05-13 14:51:49 -070028160
Igor Murashkinca256272014-10-02 15:27:09 -070028161 <span class="entry_type_hwlevel">[legacy] </span>
28162
Igor Murashkin6c936c12014-05-13 14:51:49 -070028163
28164
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028165 <ul class="entry_type_enum">
28166 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028167 <span class="entry_type_enum_name">LIMITED (v3.2)</span>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028168 <span class="entry_type_enum_notes"><p>This camera device does not have enough capabilities to qualify as a <code>FULL</code> device or
28169better.<wbr/></p>
28170<p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code> tables in the
28171<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
28172<p>All <code>LIMITED</code> devices support the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability,<wbr/> indicating basic
28173support for color image capture.<wbr/> The only exception is that the device may
28174alternatively support only the <code>DEPTH_<wbr/>OUTPUT</code> capability,<wbr/> if it can only output depth
28175measurements and not color images.<wbr/></p>
28176<p><code>LIMITED</code> devices and above require the use of <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
28177to lock exposure metering (and calculate flash power,<wbr/> for cameras with flash) before
28178capturing a high-quality still image.<wbr/></p>
28179<p>A <code>LIMITED</code> device that only lists the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability is only
28180required to support full-automatic operation and post-processing (<code>OFF</code> is not
28181supported for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/> or
28182<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)</p>
28183<p>Additional capabilities may optionally be supported by a <code>LIMITED</code>-level device,<wbr/> and
28184can be checked for in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p></span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028185 </li>
28186 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028187 <span class="entry_type_enum_name">FULL (v3.2)</span>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028188 <span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p>
28189<p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code> tables in the
28190<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
28191<p>A <code>FULL</code> device will support below capabilities:</p>
28192<ul>
28193<li><code>BURST_<wbr/>CAPTURE</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
28194 <code>BURST_<wbr/>CAPTURE</code>)</li>
28195<li>Per frame control (<a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> <code>==</code> PER_<wbr/>FRAME_<wbr/>CONTROL)</li>
28196<li>Manual sensor control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains <code>MANUAL_<wbr/>SENSOR</code>)</li>
28197<li>Manual post-processing control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
28198 <code>MANUAL_<wbr/>POST_<wbr/>PROCESSING</code>)</li>
28199<li>The required exposure time range defined in <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
28200<li>The required maxFrameDuration defined in <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
28201</ul>
28202<p>Note:
28203Pre-API level 23,<wbr/> FULL devices also supported arbitrary cropping region
28204(<a href="#static_android.scaler.croppingType">android.<wbr/>scaler.<wbr/>cropping<wbr/>Type</a> <code>== FREEFORM</code>); this requirement was relaxed in API level
2820523,<wbr/> and <code>FULL</code> devices may only support <code>CENTERED</code> cropping.<wbr/></p></span>
Ruben Brunk31b50c22014-07-02 00:13:46 +000028206 </li>
28207 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028208 <span class="entry_type_enum_name">LEGACY (v3.2)</span>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028209 <span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028210<p>Only the stream configurations listed in the <code>LEGACY</code> table in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are supported.<wbr/></p>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028211<p>A <code>LEGACY</code> device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
28212post-processing,<wbr/> arbitrary cropping regions,<wbr/> and has relaxed performance constraints.<wbr/>
28213No additional capabilities beyond <code>BACKWARD_<wbr/>COMPATIBLE</code> will ever be listed by a
28214<code>LEGACY</code> device in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
28215<p>In addition,<wbr/> the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is not functional on <code>LEGACY</code>
28216devices.<wbr/> Instead,<wbr/> every request that includes a JPEG-format output target is treated
28217as triggering a still capture,<wbr/> internally executing a precapture trigger.<wbr/> This may
28218fire the flash for flash power metering during precapture,<wbr/> and then fire the flash
28219for the final capture,<wbr/> if a flash is available on the device and the AE mode is set to
28220enable the flash.<wbr/></p></span>
28221 </li>
28222 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028223 <span class="entry_type_enum_name">3 (v3.2)</span>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028224 <span class="entry_type_enum_notes"><p>This camera device is capable of YUV reprocessing and RAW data capture,<wbr/> in addition to
28225FULL-level capabilities.<wbr/></p>
28226<p>The stream configurations listed in the <code>LEVEL_<wbr/>3</code>,<wbr/> <code>RAW</code>,<wbr/> <code>FULL</code>,<wbr/> <code>LEGACY</code> and
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028227<code>LIMITED</code> tables in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028228<p>The following additional capabilities are guaranteed to be supported:</p>
28229<ul>
28230<li><code>YUV_<wbr/>REPROCESSING</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
28231 <code>YUV_<wbr/>REPROCESSING</code>)</li>
28232<li><code>RAW</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
28233 <code>RAW</code>)</li>
28234</ul></span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028235 </li>
Yin-Chia Yeheef39222018-01-19 11:32:19 -080028236 <li>
28237 <span class="entry_type_enum_name">EXTERNAL (v3.3)</span>
28238 <span class="entry_type_enum_notes"><p>This camera device is backed by an external camera connected to this Android device.<wbr/></p>
28239<p>The device has capability identical to a LIMITED level device,<wbr/> with the following
28240exceptions:</p>
28241<ul>
28242<li>The device may not report lens/<wbr/>sensor related information such as<ul>
28243<li><a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a></li>
28244<li><a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a></li>
28245<li><a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a></li>
28246<li><a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a></li>
28247<li><a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a></li>
28248<li><a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a></li>
28249<li><a href="#dynamic_android.sensor.rollingShutterSkew">android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew</a></li>
28250</ul>
28251</li>
28252<li>The device will report 0 for <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a></li>
28253<li>The device has less guarantee on stable framerate,<wbr/> as the framerate partly depends
28254 on the external camera being used.<wbr/></li>
28255</ul></span>
28256 </li>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028257 </ul>
28258
28259 </td> <!-- entry_type -->
28260
28261 <td class="entry_description">
Igor Murashkin57d570d2014-02-06 15:35:37 -080028262 <p>Generally classifies the overall set of the camera device functionality.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028263 </td>
28264
28265 <td class="entry_units">
28266 </td>
28267
28268 <td class="entry_range">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028269 </td>
28270
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028271 <td class="entry_hal_version">
28272 <p>3.<wbr/>2</p>
28273 </td>
28274
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028275 <td class="entry_tags">
28276 </td>
28277
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028278 </tr>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028279 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028280 <th class="th_details" colspan="6">Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028281 </tr>
28282 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028283 <td class="entry_details" colspan="6">
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028284 <p>The supported hardware level is a high-level description of the camera device's
28285capabilities,<wbr/> summarizing several capabilities into one field.<wbr/> Each level adds additional
28286features to the previous one,<wbr/> and is always a strict superset of the previous level.<wbr/>
28287The ordering is <code>LEGACY &lt; LIMITED &lt; FULL &lt; LEVEL_<wbr/>3</code>.<wbr/></p>
28288<p>Starting from <code>LEVEL_<wbr/>3</code>,<wbr/> the level enumerations are guaranteed to be in increasing
28289numerical value as well.<wbr/> To check if a given device is at least at a given hardware level,<wbr/>
28290the following code snippet can be used:</p>
28291<pre><code>//<wbr/> Returns true if the device supports the required hardware level,<wbr/> or better.<wbr/>
28292boolean isHardwareLevelSupported(CameraCharacteristics c,<wbr/> int requiredLevel) {
28293 int deviceLevel = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL);
28294 if (deviceLevel == Camera<wbr/>Characteristics.<wbr/>INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL_<wbr/>LEGACY) {
28295 return requiredLevel == deviceLevel;
28296 }
28297 //<wbr/> deviceLevel is not LEGACY,<wbr/> can use numerical sort
28298 return requiredLevel &lt;= deviceLevel;
28299}
28300</code></pre>
28301<p>At a high level,<wbr/> the levels are:</p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028302<ul>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028303<li><code>LEGACY</code> devices operate in a backwards-compatibility mode for older
28304 Android devices,<wbr/> and have very limited capabilities.<wbr/></li>
28305<li><code>LIMITED</code> devices represent the
28306 baseline feature set,<wbr/> and may also include additional capabilities that are
28307 subsets of <code>FULL</code>.<wbr/></li>
28308<li><code>FULL</code> devices additionally support per-frame manual control of sensor,<wbr/> flash,<wbr/> lens and
28309 post-processing settings,<wbr/> and image capture at a high rate.<wbr/></li>
28310<li><code>LEVEL_<wbr/>3</code> devices additionally support YUV reprocessing and RAW image capture,<wbr/> along
28311 with additional output stream configurations.<wbr/></li>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028312</ul>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028313<p>See the individual level enums for full descriptions of the supported capabilities.<wbr/> The
28314<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> entry describes the device's capabilities at a
28315finer-grain level,<wbr/> if needed.<wbr/> In addition,<wbr/> many controls have their available settings or
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028316ranges defined in individual entries from <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>.<wbr/></p>
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070028317<p>Some features are not part of any particular hardware level or capability and must be
28318queried separately.<wbr/> These include:</p>
28319<ul>
28320<li>Calibrated timestamps (<a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME)</li>
28321<li>Precision lens control (<a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> <code>==</code> CALIBRATED)</li>
28322<li>Face detection (<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>)</li>
28323<li>Optical or electrical image stabilization
28324 (<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a>,<wbr/>
28325 <a href="#static_android.control.availableVideoStabilizationModes">android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes</a>)</li>
28326</ul>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028327 </td>
28328 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028329
Igor Murashkin57d570d2014-02-06 15:35:37 -080028330 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028331 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028332 </tr>
28333 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028334 <td class="entry_details" colspan="6">
28335 <p>A camera HALv3 device can implement one of three possible operational modes; LIMITED,<wbr/>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028336FULL,<wbr/> and LEVEL_<wbr/>3.<wbr/></p>
28337<p>FULL support or better is expected from new higher-end devices.<wbr/> Limited
28338mode has hardware requirements roughly in line with those for a camera HAL device v1
28339implementation,<wbr/> and is expected from older or inexpensive devices.<wbr/> Each level is a strict
28340superset of the previous level,<wbr/> and they share the same essential operational flow.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028341<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028342<p>Camera HAL3+ must not implement LEGACY mode.<wbr/> It is there for backwards compatibility in
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028343the <code>android.<wbr/>hardware.<wbr/>camera2</code> user-facing API only on legacy HALv1 devices,<wbr/> and is
28344implemented by the camera framework code.<wbr/></p>
Yin-Chia Yeheef39222018-01-19 11:32:19 -080028345<p>EXTERNAL level devices have lower peformance bar in CTS since the peformance might depend
28346on the external camera being used and is not fully controlled by the device manufacturer.<wbr/>
28347The ITS test suite is exempted for the same reason.<wbr/></p>
Igor Murashkin57d570d2014-02-06 15:35:37 -080028348 </td>
28349 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028350
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028351 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028352 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028353
Chien-Yu Chen218925a2018-01-03 12:04:48 -080028354
28355 <tr class="entry" id="static_android.info.version">
28356 <td class="entry_name
28357 " rowspan="5">
28358 android.<wbr/>info.<wbr/>version
28359 </td>
28360 <td class="entry_type">
28361 <span class="entry_type_name">byte</span>
28362
28363 <span class="entry_type_visibility"> [public as string]</span>
28364
28365
28366
28367
28368
28369
28370 </td> <!-- entry_type -->
28371
28372 <td class="entry_description">
28373 <p>A short string for manufacturer version information about the camera device,<wbr/> such as
28374ISP hardware,<wbr/> sensors,<wbr/> etc.<wbr/></p>
28375 </td>
28376
28377 <td class="entry_units">
28378 </td>
28379
28380 <td class="entry_range">
28381 </td>
28382
28383 <td class="entry_hal_version">
28384 <p>3.<wbr/>3</p>
28385 </td>
28386
28387 <td class="entry_tags">
28388 </td>
28389
28390 </tr>
28391 <tr class="entries_header">
28392 <th class="th_details" colspan="6">Details</th>
28393 </tr>
28394 <tr class="entry_cont">
28395 <td class="entry_details" colspan="6">
28396 <p>This can be used in <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_IMAGE_DESCRIPTION">TAG_<wbr/>IMAGE_<wbr/>DESCRIPTION</a>
28397in jpeg EXIF.<wbr/> This key may be absent if no version information is available on the
28398device.<wbr/></p>
28399 </td>
28400 </tr>
28401
28402 <tr class="entries_header">
28403 <th class="th_details" colspan="6">HAL Implementation Details</th>
28404 </tr>
28405 <tr class="entry_cont">
28406 <td class="entry_details" colspan="6">
28407 <p>The string must consist of only alphanumeric characters,<wbr/> punctuation,<wbr/> and
28408whitespace,<wbr/> i.<wbr/>e.<wbr/> it must match regular expression "[\p{Alnum}\p{Punct}\p{Space}]*".<wbr/>
28409It must not exceed 256 characters.<wbr/></p>
28410 </td>
28411 </tr>
28412
28413 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
28414 <!-- end of entry -->
28415
Igor Murashkin38b8cae2013-05-23 16:38:59 -070028416
28417
28418 <!-- end of kind -->
28419 </tbody>
28420
28421 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028422 <tr><td colspan="7" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028423
28424
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028425 <tr><td colspan="7" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028426
28427 <thead class="entries_header">
28428 <tr>
28429 <th class="th_name">Property Name</th>
28430 <th class="th_type">Type</th>
28431 <th class="th_description">Description</th>
28432 <th class="th_units">Units</th>
28433 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028434 <th class="th_hal_version">Initial HIDL HAL version</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028435 <th class="th_tags">Tags</th>
28436 </tr>
28437 </thead>
28438
28439 <tbody>
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450 <tr class="entry" id="controls_android.blackLevel.lock">
Igor Murashkin6c936c12014-05-13 14:51:49 -070028451 <td class="entry_name
28452 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080028453 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028454 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028455 <td class="entry_type">
28456 <span class="entry_type_name entry_type_name_enum">byte</span>
28457
Igor Murashkinb8dc8812013-07-17 16:29:34 -070028458 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028459
Igor Murashkin6c936c12014-05-13 14:51:49 -070028460
Igor Murashkinca256272014-10-02 15:27:09 -070028461 <span class="entry_type_hwlevel">[full] </span>
28462
Igor Murashkin6c936c12014-05-13 14:51:49 -070028463
28464
Zhijun He69fc0ea2013-07-17 09:42:58 -070028465 <ul class="entry_type_enum">
28466 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028467 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028468 </li>
28469 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028470 <span class="entry_type_enum_name">ON (v3.2)</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028471 </li>
28472 </ul>
28473
28474 </td> <!-- entry_type -->
28475
28476 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080028477 <p>Whether black-level compensation is locked
28478to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028479 </td>
28480
28481 <td class="entry_units">
28482 </td>
28483
28484 <td class="entry_range">
28485 </td>
28486
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028487 <td class="entry_hal_version">
28488 <p>3.<wbr/>2</p>
28489 </td>
28490
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028491 <td class="entry_tags">
28492 <ul class="entry_tags">
28493 <li><a href="#tag_HAL2">HAL2</a></li>
28494 </ul>
28495 </td>
28496
28497 </tr>
28498 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028499 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028500 </tr>
28501 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028502 <td class="entry_details" colspan="6">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070028503 <p>When set to <code>true</code> (ON),<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028504compensation will not change until the lock is set to
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070028505<code>false</code> (OFF).<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028506<p>Since changes to certain capture parameters (such as
28507exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080028508compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028509the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080028510metadata.<wbr/></p>
28511<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028512<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080028513<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
28514<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
28515<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
28516<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
28517<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
28518<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028519</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028520<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080028521device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028522result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028523<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080028524<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
28525<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
28526<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
28527<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
28528<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
28529<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080028530</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080028531<p>This indicates to the application that on frame 4,<wbr/> black
28532levels were reset due to exposure value changes,<wbr/> and pixel
28533values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028534<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080028535possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028536other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080028537or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028538 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028539 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028540
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028541 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028542 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028543 </tr>
28544 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028545 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080028546 <p>If for some reason black level locking is no longer possible
28547(for example,<wbr/> the analog gain has changed,<wbr/> which forces
28548black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028549override this request (and it must report 'OFF' when this
28550does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080028551possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028552 </td>
28553 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028554
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028555 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028556 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070028557
28558
28559
28560 <!-- end of kind -->
28561 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028562 <tr><td colspan="7" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028563
28564 <thead class="entries_header">
28565 <tr>
28566 <th class="th_name">Property Name</th>
28567 <th class="th_type">Type</th>
28568 <th class="th_description">Description</th>
28569 <th class="th_units">Units</th>
28570 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028571 <th class="th_hal_version">Initial HIDL HAL version</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028572 <th class="th_tags">Tags</th>
28573 </tr>
28574 </thead>
28575
28576 <tbody>
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587 <tr class="entry" id="dynamic_android.blackLevel.lock">
Igor Murashkin6c936c12014-05-13 14:51:49 -070028588 <td class="entry_name
28589 " rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080028590 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028591 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028592 <td class="entry_type">
28593 <span class="entry_type_name entry_type_name_enum">byte</span>
28594
Igor Murashkinb8dc8812013-07-17 16:29:34 -070028595 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028596
Igor Murashkin6c936c12014-05-13 14:51:49 -070028597
Igor Murashkinca256272014-10-02 15:27:09 -070028598 <span class="entry_type_hwlevel">[full] </span>
28599
Igor Murashkin6c936c12014-05-13 14:51:49 -070028600
28601
Zhijun He69fc0ea2013-07-17 09:42:58 -070028602 <ul class="entry_type_enum">
28603 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028604 <span class="entry_type_enum_name">OFF (v3.2)</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028605 </li>
28606 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028607 <span class="entry_type_enum_name">ON (v3.2)</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028608 </li>
28609 </ul>
28610
28611 </td> <!-- entry_type -->
28612
28613 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080028614 <p>Whether black-level compensation is locked
28615to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070028616 </td>
28617
28618 <td class="entry_units">
28619 </td>
28620
28621 <td class="entry_range">
28622 </td>
28623
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028624 <td class="entry_hal_version">
28625 <p>3.<wbr/>2</p>
28626 </td>
28627
Zhijun He69fc0ea2013-07-17 09:42:58 -070028628 <td class="entry_tags">
28629 <ul class="entry_tags">
28630 <li><a href="#tag_HAL2">HAL2</a></li>
28631 </ul>
28632 </td>
28633
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028634 </tr>
28635 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028636 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028637 </tr>
28638 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028639 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080028640 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080028641ON 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 -080028642a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080028643perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028644 </td>
28645 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028646
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028647 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028648 <th class="th_details" colspan="6">HAL Implementation Details</th>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028649 </tr>
28650 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028651 <td class="entry_details" colspan="6">
Igor Murashkin0b080452013-12-27 15:30:25 -080028652 <p>If for some reason black level locking is no longer possible
28653(for example,<wbr/> the analog gain has changed,<wbr/> which forces
28654black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028655override this request (and it must report 'OFF' when this
28656does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080028657possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080028658 </td>
28659 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080028660
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028661 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080028662 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070028663
28664
28665
28666 <!-- end of kind -->
28667 </tbody>
28668
28669 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028670 <tr><td colspan="7" id="section_sync" class="section">sync</td></tr>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028671
28672
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028673 <tr><td colspan="7" class="kind">dynamic</td></tr>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028674
28675 <thead class="entries_header">
28676 <tr>
28677 <th class="th_name">Property Name</th>
28678 <th class="th_type">Type</th>
28679 <th class="th_description">Description</th>
28680 <th class="th_units">Units</th>
28681 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028682 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028683 <th class="th_tags">Tags</th>
28684 </tr>
28685 </thead>
28686
28687 <tbody>
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698 <tr class="entry" id="dynamic_android.sync.frameNumber">
Igor Murashkin6c936c12014-05-13 14:51:49 -070028699 <td class="entry_name
28700 " rowspan="5">
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028701 android.<wbr/>sync.<wbr/>frame<wbr/>Number
28702 </td>
28703 <td class="entry_type">
28704 <span class="entry_type_name entry_type_name_enum">int64</span>
28705
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070028706 <span class="entry_type_visibility"> [ndk_public]</span>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028707
Igor Murashkin6c936c12014-05-13 14:51:49 -070028708
Igor Murashkinca256272014-10-02 15:27:09 -070028709 <span class="entry_type_hwlevel">[legacy] </span>
28710
Igor Murashkin6c936c12014-05-13 14:51:49 -070028711
28712
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028713 <ul class="entry_type_enum">
28714 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028715 <span class="entry_type_enum_name">CONVERGING (v3.2)</span>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028716 <span class="entry_type_enum_value">-1</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070028717 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
28718<p>Synchronization is in progress,<wbr/> and reading metadata from this
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028719result may include a mix of data that have taken effect since the
28720last synchronization time.<wbr/></p>
28721<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
28722this value will update to the actual frame number frame number
28723the result is guaranteed to be synchronized to (as long as the
28724request settings remain constant).<wbr/></p></span>
28725 </li>
28726 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028727 <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028728 <span class="entry_type_enum_value">-2</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070028729 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
28730<p>The result may have already converged,<wbr/> or it may be in
28731progress.<wbr/> Reading from this result may include some mix
28732of settings from past requests.<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028733<p>After a settings change,<wbr/> the new settings will eventually all
28734take effect for the output buffers and results.<wbr/> However,<wbr/> this
28735value will not change when that happens.<wbr/> Altering settings
28736rapidly may provide outcomes using mixes of settings from recent
28737requests.<wbr/></p>
28738<p>This value is intended primarily for backwards compatibility with
28739the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
28740 </li>
28741 </ul>
28742
28743 </td> <!-- entry_type -->
28744
28745 <td class="entry_description">
28746 <p>The frame number corresponding to the last request
28747with which the output result (metadata + buffers) has been fully
28748synchronized.<wbr/></p>
28749 </td>
28750
28751 <td class="entry_units">
28752 </td>
28753
28754 <td class="entry_range">
28755 <p>Either a non-negative value corresponding to a
28756<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
28757 </td>
28758
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028759 <td class="entry_hal_version">
28760 <p>3.<wbr/>2</p>
28761 </td>
28762
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028763 <td class="entry_tags">
28764 <ul class="entry_tags">
Zhijun He5fb671c2014-05-21 17:51:05 -070028765 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028766 </ul>
28767 </td>
28768
28769 </tr>
28770 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028771 <th class="th_details" colspan="6">Details</th>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028772 </tr>
28773 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028774 <td class="entry_details" colspan="6">
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028775 <p>When a request is submitted to the camera device,<wbr/> there is usually a
28776delay of several frames before the controls get applied.<wbr/> A camera
28777device may either choose to account for this delay by implementing a
28778pipeline and carefully submit well-timed atomic control updates,<wbr/> or
28779it may start streaming control changes that span over several frame
28780boundaries.<wbr/></p>
28781<p>In the latter case,<wbr/> whenever a request's settings change relative to
28782the previous submitted request,<wbr/> the full set of changes may take
28783multiple frame durations to fully take effect.<wbr/> Some settings may
28784take effect sooner (in less frame durations) than others.<wbr/></p>
28785<p>While a set of control changes are being propagated,<wbr/> this value
28786will be CONVERGING.<wbr/></p>
28787<p>Once it is fully known that a set of control changes have been
28788finished propagating,<wbr/> and the resulting updated control settings
28789have been read back by the camera device,<wbr/> this value will be set
28790to a non-negative frame number (corresponding to the request to
28791which the results have synchronized to).<wbr/></p>
28792<p>Older camera device implementations may not have a way to detect
28793when all camera controls have been applied,<wbr/> and will always set this
28794value to UNKNOWN.<wbr/></p>
28795<p>FULL capability devices will always have this value set to the
28796frame number of the request corresponding to this result.<wbr/></p>
28797<p><em>Further details</em>:</p>
28798<ul>
28799<li>Whenever a request differs from the last request,<wbr/> any future
28800results not yet returned may have this value set to CONVERGING (this
28801could include any in-progress captures not yet returned by the camera
28802device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
28803<li>Submitting a series of multiple requests that differ from the
28804previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
28805moves the new synchronization frame to the last non-repeating
28806request (using the smallest frame number from the contiguous list of
28807repeating requests).<wbr/></li>
28808<li>Submitting the same request repeatedly will not change this value
28809to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
28810<li>When this value changes to non-negative,<wbr/> that means that all of the
28811metadata controls from the request have been applied,<wbr/> all of the
28812metadata controls from the camera device have been read to the
28813updated values (into the result),<wbr/> and all of the graphics buffers
28814corresponding to this result are also synchronized to the request.<wbr/></li>
28815</ul>
28816<p><em>Pipeline considerations</em>:</p>
28817<p>Submitting a request with updated controls relative to the previously
28818submitted requests may also invalidate the synchronization state
28819of all the results corresponding to currently in-flight requests.<wbr/></p>
28820<p>In other words,<wbr/> results for this current request and up to
28821<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
28822<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
28823 </td>
28824 </tr>
28825
28826 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028827 <th class="th_details" colspan="6">HAL Implementation Details</th>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028828 </tr>
28829 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028830 <td class="entry_details" colspan="6">
Eino-Ville Talvala7fabc1e2014-02-10 12:39:35 -080028831 <p>Using UNKNOWN here is illegal unless <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028832is also UNKNOWN.<wbr/></p>
28833<p>FULL capability devices should simply set this value to the
28834<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
28835 </td>
28836 </tr>
28837
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028838 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028839 <!-- end of entry -->
28840
28841
28842
28843 <!-- end of kind -->
28844 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028845 <tr><td colspan="7" class="kind">static</td></tr>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028846
28847 <thead class="entries_header">
28848 <tr>
28849 <th class="th_name">Property Name</th>
28850 <th class="th_type">Type</th>
28851 <th class="th_description">Description</th>
28852 <th class="th_units">Units</th>
28853 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028854 <th class="th_hal_version">Initial HIDL HAL version</th>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028855 <th class="th_tags">Tags</th>
28856 </tr>
28857 </thead>
28858
28859 <tbody>
28860
28861
28862
28863
28864
28865
28866
28867
28868
28869
28870 <tr class="entry" id="static_android.sync.maxLatency">
Igor Murashkin6c936c12014-05-13 14:51:49 -070028871 <td class="entry_name
28872 " rowspan="5">
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028873 android.<wbr/>sync.<wbr/>max<wbr/>Latency
28874 </td>
28875 <td class="entry_type">
28876 <span class="entry_type_name entry_type_name_enum">int32</span>
28877
28878 <span class="entry_type_visibility"> [public]</span>
28879
Igor Murashkin6c936c12014-05-13 14:51:49 -070028880
Igor Murashkinca256272014-10-02 15:27:09 -070028881 <span class="entry_type_hwlevel">[legacy] </span>
28882
Igor Murashkin6c936c12014-05-13 14:51:49 -070028883
28884
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028885 <ul class="entry_type_enum">
28886 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028887 <span class="entry_type_enum_name">PER_FRAME_CONTROL (v3.2)</span>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028888 <span class="entry_type_enum_value">0</span>
Eino-Ville Talvalab4329162014-06-09 14:23:02 -070028889 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028890<p>Changing controls over multiple requests one after another will
28891produce results that have those controls applied atomically
28892each frame.<wbr/></p>
28893<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
28894 </li>
28895 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080028896 <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028897 <span class="entry_type_enum_value">-1</span>
28898 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
28899of the past requests applied to the camera settings.<wbr/></p>
28900<p>By submitting a series of identical requests,<wbr/> the camera device
28901will eventually have the camera settings applied,<wbr/> but it is
Igor Murashkin757ec242014-07-25 16:55:18 -070028902unknown when that exact point will be.<wbr/></p>
28903<p>All LEGACY capability devices will have this as their maxLatency.<wbr/></p></span>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028904 </li>
28905 </ul>
28906
28907 </td> <!-- entry_type -->
28908
28909 <td class="entry_description">
28910 <p>The maximum number of frames that can occur after a request
28911(different than the previous) has been submitted,<wbr/> and before the
Chien-Yu Chen5f568ff2015-06-26 11:25:45 -070028912result's state becomes synchronized.<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028913 </td>
28914
28915 <td class="entry_units">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070028916 Frame counts
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028917 </td>
28918
28919 <td class="entry_range">
Eino-Ville Talvala567167a2014-10-02 18:27:34 -070028920 <p>A positive value,<wbr/> PER_<wbr/>FRAME_<wbr/>CONTROL,<wbr/> or UNKNOWN.<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028921 </td>
28922
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028923 <td class="entry_hal_version">
28924 <p>3.<wbr/>2</p>
28925 </td>
28926
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028927 <td class="entry_tags">
28928 <ul class="entry_tags">
Zhijun He5fb671c2014-05-21 17:51:05 -070028929 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028930 </ul>
28931 </td>
28932
28933 </tr>
28934 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028935 <th class="th_details" colspan="6">Details</th>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028936 </tr>
28937 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028938 <td class="entry_details" colspan="6">
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028939 <p>This defines the maximum distance (in number of metadata results),<wbr/>
Chien-Yu Chen5f568ff2015-06-26 11:25:45 -070028940between the frame number of the request that has new controls to apply
28941and the frame number of the result that has all the controls applied.<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028942<p>In other words this acts as an upper boundary for how many frames
28943must occur before the camera device knows for a fact that the new
28944submitted camera settings have been applied in outgoing frames.<wbr/></p>
Chien-Yu Chen5f568ff2015-06-26 11:25:45 -070028945 </td>
28946 </tr>
28947
28948 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028949 <th class="th_details" colspan="6">HAL Implementation Details</th>
Chien-Yu Chen5f568ff2015-06-26 11:25:45 -070028950 </tr>
28951 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028952 <td class="entry_details" colspan="6">
Chien-Yu Chen5f568ff2015-06-26 11:25:45 -070028953 <p>For example if maxLatency was 2,<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028954<pre><code>initial request = X (repeating)
28955request1 = X
28956request2 = Y
28957request3 = Y
28958request4 = Y
28959
28960where requestN has frameNumber N,<wbr/> and the first of the repeating
28961initial request's has frameNumber F (and F &lt; 1).<wbr/>
28962
28963initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
28964result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
28965result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
28966result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
28967result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
28968
28969where resultN has frameNumber N.<wbr/>
28970</code></pre>
28971<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
28972<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
28973<code>4 - 2 = 2</code>.<wbr/></p>
Chien-Yu Chen5f568ff2015-06-26 11:25:45 -070028974<p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070028975<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a> or
Eino-Ville Talvalaea3b2682016-01-21 12:23:56 -080028976<code><a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html#getFrameNumber">CaptureResult#getFrameNumber</a></code>.<wbr/></p>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028977<p>LIMITED devices are strongly encouraged to use a non-negative
28978value.<wbr/> If UNKNOWN is used here then app developers do not have a way
28979to know when sensor settings have been applied.<wbr/></p>
28980 </td>
28981 </tr>
28982
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028983 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Igor Murashkin5c1fc682014-01-16 17:51:36 -080028984 <!-- end of entry -->
28985
28986
28987
28988 <!-- end of kind -->
28989 </tbody>
28990
28991 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028992 <tr><td colspan="7" id="section_reprocess" class="section">reprocess</td></tr>
Zhijun He41d6f042015-01-15 18:17:24 -080028993
28994
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080028995 <tr><td colspan="7" class="kind">controls</td></tr>
Zhijun He41d6f042015-01-15 18:17:24 -080028996
28997 <thead class="entries_header">
28998 <tr>
28999 <th class="th_name">Property Name</th>
29000 <th class="th_type">Type</th>
29001 <th class="th_description">Description</th>
29002 <th class="th_units">Units</th>
29003 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029004 <th class="th_hal_version">Initial HIDL HAL version</th>
Zhijun He41d6f042015-01-15 18:17:24 -080029005 <th class="th_tags">Tags</th>
29006 </tr>
29007 </thead>
29008
29009 <tbody>
29010
29011
29012
29013
29014
29015
29016
29017
29018
29019
29020 <tr class="entry" id="controls_android.reprocess.effectiveExposureFactor">
29021 <td class="entry_name
29022 " rowspan="3">
29023 android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor
29024 </td>
29025 <td class="entry_type">
29026 <span class="entry_type_name">float</span>
29027
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070029028 <span class="entry_type_visibility"> [java_public]</span>
Zhijun He41d6f042015-01-15 18:17:24 -080029029
29030
Zhijun He51379152015-04-24 17:59:50 -070029031 <span class="entry_type_hwlevel">[limited] </span>
Zhijun He41d6f042015-01-15 18:17:24 -080029032
29033
29034
29035
29036 </td> <!-- entry_type -->
29037
29038 <td class="entry_description">
29039 <p>The amount of exposure time increase factor applied to the original output
29040frame by the application processing before sending for reprocessing.<wbr/></p>
29041 </td>
29042
29043 <td class="entry_units">
29044 Relative exposure time increase factor.<wbr/>
29045 </td>
29046
29047 <td class="entry_range">
29048 <p>&gt;= 1.<wbr/>0</p>
29049 </td>
29050
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029051 <td class="entry_hal_version">
29052 <p>3.<wbr/>2</p>
29053 </td>
29054
Zhijun He41d6f042015-01-15 18:17:24 -080029055 <td class="entry_tags">
29056 <ul class="entry_tags">
Zhijun He51379152015-04-24 17:59:50 -070029057 <li><a href="#tag_REPROC">REPROC</a></li>
Zhijun He41d6f042015-01-15 18:17:24 -080029058 </ul>
29059 </td>
29060
29061 </tr>
29062 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029063 <th class="th_details" colspan="6">Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -080029064 </tr>
29065 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029066 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -080029067 <p>This is optional,<wbr/> and will be supported if the camera device supports YUV_<wbr/>REPROCESSING
29068capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains YUV_<wbr/>REPROCESSING).<wbr/></p>
29069<p>For some YUV reprocessing use cases,<wbr/> the application may choose to filter the original
29070output frames to effectively reduce the noise to the same level as a frame that was
29071captured with longer exposure time.<wbr/> To be more specific,<wbr/> assuming the original captured
29072images were captured with a sensitivity of S and an exposure time of T,<wbr/> the model in
29073the camera device is that the amount of noise in the image would be approximately what
29074would be expected if the original capture parameters had been a sensitivity of
29075S/<wbr/>effectiveExposureFactor and an exposure time of T*effectiveExposureFactor,<wbr/> rather
29076than S and T respectively.<wbr/> If the captured images were processed by the application
29077before being sent for reprocessing,<wbr/> then the application may have used image processing
29078algorithms and/<wbr/>or multi-frame image fusion to reduce the noise in the
29079application-processed images (input images).<wbr/> By using the effectiveExposureFactor
29080control,<wbr/> the application can communicate to the camera device the actual noise level
29081improvement in the application-processed image.<wbr/> With this information,<wbr/> the camera
29082device can select appropriate noise reduction and edge enhancement parameters to avoid
29083excessive noise reduction (<a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>) and insufficient edge
29084enhancement (<a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>) being applied to the reprocessed frames.<wbr/></p>
29085<p>For example,<wbr/> for multi-frame image fusion use case,<wbr/> the application may fuse
29086multiple output frames together to a final frame for reprocessing.<wbr/> When N image are
29087fused into 1 image for reprocessing,<wbr/> the exposure time increase factor could be up to
29088square root of N (based on a simple photon shot noise model).<wbr/> The camera device will
29089adjust the reprocessing noise reduction and edge enhancement parameters accordingly to
29090produce the best quality images.<wbr/></p>
29091<p>This is relative factor,<wbr/> 1.<wbr/>0 indicates the application hasn't processed the input
29092buffer in a way that affects its effective exposure time.<wbr/></p>
29093<p>This control is only effective for YUV reprocessing capture request.<wbr/> For noise
29094reduction reprocessing,<wbr/> it is only effective when <code><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> != OFF</code>.<wbr/>
29095Similarly,<wbr/> for edge enhancement reprocessing,<wbr/> it is only effective when
29096<code><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> != OFF</code>.<wbr/></p>
29097 </td>
29098 </tr>
29099
29100
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029101 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He41d6f042015-01-15 18:17:24 -080029102 <!-- end of entry -->
29103
29104
29105
29106 <!-- end of kind -->
29107 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029108 <tr><td colspan="7" class="kind">dynamic</td></tr>
Zhijun He41d6f042015-01-15 18:17:24 -080029109
29110 <thead class="entries_header">
29111 <tr>
29112 <th class="th_name">Property Name</th>
29113 <th class="th_type">Type</th>
29114 <th class="th_description">Description</th>
29115 <th class="th_units">Units</th>
29116 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029117 <th class="th_hal_version">Initial HIDL HAL version</th>
Zhijun He41d6f042015-01-15 18:17:24 -080029118 <th class="th_tags">Tags</th>
29119 </tr>
29120 </thead>
29121
29122 <tbody>
29123
29124
29125
29126
29127
29128
29129
29130
29131
29132
29133 <tr class="entry" id="dynamic_android.reprocess.effectiveExposureFactor">
29134 <td class="entry_name
29135 " rowspan="3">
29136 android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor
29137 </td>
29138 <td class="entry_type">
29139 <span class="entry_type_name">float</span>
29140
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070029141 <span class="entry_type_visibility"> [java_public]</span>
Zhijun He41d6f042015-01-15 18:17:24 -080029142
29143
Zhijun He51379152015-04-24 17:59:50 -070029144 <span class="entry_type_hwlevel">[limited] </span>
Zhijun He41d6f042015-01-15 18:17:24 -080029145
29146
29147
29148
29149 </td> <!-- entry_type -->
29150
29151 <td class="entry_description">
29152 <p>The amount of exposure time increase factor applied to the original output
29153frame by the application processing before sending for reprocessing.<wbr/></p>
29154 </td>
29155
29156 <td class="entry_units">
29157 Relative exposure time increase factor.<wbr/>
29158 </td>
29159
29160 <td class="entry_range">
29161 <p>&gt;= 1.<wbr/>0</p>
29162 </td>
29163
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029164 <td class="entry_hal_version">
29165 <p>3.<wbr/>2</p>
29166 </td>
29167
Zhijun He41d6f042015-01-15 18:17:24 -080029168 <td class="entry_tags">
29169 <ul class="entry_tags">
Zhijun He51379152015-04-24 17:59:50 -070029170 <li><a href="#tag_REPROC">REPROC</a></li>
Zhijun He41d6f042015-01-15 18:17:24 -080029171 </ul>
29172 </td>
29173
29174 </tr>
29175 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029176 <th class="th_details" colspan="6">Details</th>
Zhijun He41d6f042015-01-15 18:17:24 -080029177 </tr>
29178 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029179 <td class="entry_details" colspan="6">
Zhijun He41d6f042015-01-15 18:17:24 -080029180 <p>This is optional,<wbr/> and will be supported if the camera device supports YUV_<wbr/>REPROCESSING
29181capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains YUV_<wbr/>REPROCESSING).<wbr/></p>
29182<p>For some YUV reprocessing use cases,<wbr/> the application may choose to filter the original
29183output frames to effectively reduce the noise to the same level as a frame that was
29184captured with longer exposure time.<wbr/> To be more specific,<wbr/> assuming the original captured
29185images were captured with a sensitivity of S and an exposure time of T,<wbr/> the model in
29186the camera device is that the amount of noise in the image would be approximately what
29187would be expected if the original capture parameters had been a sensitivity of
29188S/<wbr/>effectiveExposureFactor and an exposure time of T*effectiveExposureFactor,<wbr/> rather
29189than S and T respectively.<wbr/> If the captured images were processed by the application
29190before being sent for reprocessing,<wbr/> then the application may have used image processing
29191algorithms and/<wbr/>or multi-frame image fusion to reduce the noise in the
29192application-processed images (input images).<wbr/> By using the effectiveExposureFactor
29193control,<wbr/> the application can communicate to the camera device the actual noise level
29194improvement in the application-processed image.<wbr/> With this information,<wbr/> the camera
29195device can select appropriate noise reduction and edge enhancement parameters to avoid
29196excessive noise reduction (<a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>) and insufficient edge
29197enhancement (<a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>) being applied to the reprocessed frames.<wbr/></p>
29198<p>For example,<wbr/> for multi-frame image fusion use case,<wbr/> the application may fuse
29199multiple output frames together to a final frame for reprocessing.<wbr/> When N image are
29200fused into 1 image for reprocessing,<wbr/> the exposure time increase factor could be up to
29201square root of N (based on a simple photon shot noise model).<wbr/> The camera device will
29202adjust the reprocessing noise reduction and edge enhancement parameters accordingly to
29203produce the best quality images.<wbr/></p>
29204<p>This is relative factor,<wbr/> 1.<wbr/>0 indicates the application hasn't processed the input
29205buffer in a way that affects its effective exposure time.<wbr/></p>
29206<p>This control is only effective for YUV reprocessing capture request.<wbr/> For noise
29207reduction reprocessing,<wbr/> it is only effective when <code><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> != OFF</code>.<wbr/>
29208Similarly,<wbr/> for edge enhancement reprocessing,<wbr/> it is only effective when
29209<code><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> != OFF</code>.<wbr/></p>
29210 </td>
29211 </tr>
29212
29213
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029214 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He41d6f042015-01-15 18:17:24 -080029215 <!-- end of entry -->
29216
29217
29218
29219 <!-- end of kind -->
29220 </tbody>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029221 <tr><td colspan="7" class="kind">static</td></tr>
Zhijun He51379152015-04-24 17:59:50 -070029222
29223 <thead class="entries_header">
29224 <tr>
29225 <th class="th_name">Property Name</th>
29226 <th class="th_type">Type</th>
29227 <th class="th_description">Description</th>
29228 <th class="th_units">Units</th>
29229 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029230 <th class="th_hal_version">Initial HIDL HAL version</th>
Zhijun He51379152015-04-24 17:59:50 -070029231 <th class="th_tags">Tags</th>
29232 </tr>
29233 </thead>
29234
29235 <tbody>
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246 <tr class="entry" id="static_android.reprocess.maxCaptureStall">
29247 <td class="entry_name
29248 " rowspan="3">
29249 android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall
29250 </td>
29251 <td class="entry_type">
29252 <span class="entry_type_name">int32</span>
29253
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070029254 <span class="entry_type_visibility"> [java_public]</span>
Zhijun He51379152015-04-24 17:59:50 -070029255
29256
29257 <span class="entry_type_hwlevel">[limited] </span>
29258
29259
29260
29261
29262 </td> <!-- entry_type -->
29263
29264 <td class="entry_description">
29265 <p>The maximal camera capture pipeline stall (in unit of frame count) introduced by a
29266reprocess capture request.<wbr/></p>
29267 </td>
29268
29269 <td class="entry_units">
29270 Number of frames.<wbr/>
29271 </td>
29272
29273 <td class="entry_range">
29274 <p>&lt;= 4</p>
29275 </td>
29276
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029277 <td class="entry_hal_version">
29278 <p>3.<wbr/>2</p>
29279 </td>
29280
Zhijun He51379152015-04-24 17:59:50 -070029281 <td class="entry_tags">
29282 <ul class="entry_tags">
29283 <li><a href="#tag_REPROC">REPROC</a></li>
29284 </ul>
29285 </td>
29286
29287 </tr>
29288 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029289 <th class="th_details" colspan="6">Details</th>
Zhijun He51379152015-04-24 17:59:50 -070029290 </tr>
29291 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029292 <td class="entry_details" colspan="6">
Zhijun He51379152015-04-24 17:59:50 -070029293 <p>The key describes the maximal interference that one reprocess (input) request
29294can introduce to the camera simultaneous streaming of regular (output) capture
29295requests,<wbr/> including repeating requests.<wbr/></p>
29296<p>When a reprocessing capture request is submitted while a camera output repeating request
29297(e.<wbr/>g.<wbr/> preview) is being served by the camera device,<wbr/> it may preempt the camera capture
29298pipeline for at least one frame duration so that the camera device is unable to process
29299the following capture request in time for the next sensor start of exposure boundary.<wbr/>
29300When this happens,<wbr/> the application may observe a capture time gap (longer than one frame
29301duration) between adjacent capture output frames,<wbr/> which usually exhibits as preview
29302glitch if the repeating request output targets include a preview surface.<wbr/> This key gives
29303the worst-case number of frame stall introduced by one reprocess request with any kind of
29304formats/<wbr/>sizes combination.<wbr/></p>
29305<p>If this key reports 0,<wbr/> it means a reprocess request doesn't introduce any glitch to the
29306ongoing camera repeating request outputs,<wbr/> as if this reprocess request is never issued.<wbr/></p>
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070029307<p>This key is supported if the camera device supports PRIVATE or YUV reprocessing (
29308i.<wbr/>e.<wbr/> <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains PRIVATE_<wbr/>REPROCESSING or
Zhijun He51379152015-04-24 17:59:50 -070029309YUV_<wbr/>REPROCESSING).<wbr/></p>
29310 </td>
29311 </tr>
29312
29313
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029314 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Zhijun He51379152015-04-24 17:59:50 -070029315 <!-- end of entry -->
29316
29317
29318
29319 <!-- end of kind -->
29320 </tbody>
Zhijun He41d6f042015-01-15 18:17:24 -080029321
29322 <!-- end of section -->
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029323 <tr><td colspan="7" id="section_depth" class="section">depth</td></tr>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029324
29325
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029326 <tr><td colspan="7" class="kind">static</td></tr>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029327
29328 <thead class="entries_header">
29329 <tr>
29330 <th class="th_name">Property Name</th>
29331 <th class="th_type">Type</th>
29332 <th class="th_description">Description</th>
29333 <th class="th_units">Units</th>
29334 <th class="th_range">Range</th>
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029335 <th class="th_hal_version">Initial HIDL HAL version</th>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029336 <th class="th_tags">Tags</th>
29337 </tr>
29338 </thead>
29339
29340 <tbody>
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351 <tr class="entry" id="static_android.depth.maxDepthSamples">
29352 <td class="entry_name
29353 " rowspan="3">
29354 android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples
29355 </td>
29356 <td class="entry_type">
29357 <span class="entry_type_name">int32</span>
29358
29359 <span class="entry_type_visibility"> [system]</span>
29360
29361
29362 <span class="entry_type_hwlevel">[limited] </span>
29363
29364
29365
29366
29367 </td> <!-- entry_type -->
29368
29369 <td class="entry_description">
29370 <p>Maximum number of points that a depth point cloud may contain.<wbr/></p>
29371 </td>
29372
29373 <td class="entry_units">
29374 </td>
29375
29376 <td class="entry_range">
29377 </td>
29378
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029379 <td class="entry_hal_version">
29380 <p>3.<wbr/>2</p>
29381 </td>
29382
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029383 <td class="entry_tags">
29384 <ul class="entry_tags">
29385 <li><a href="#tag_DEPTH">DEPTH</a></li>
29386 </ul>
29387 </td>
29388
29389 </tr>
29390 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029391 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029392 </tr>
29393 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029394 <td class="entry_details" colspan="6">
Eino-Ville Talvaladdda2bb2015-04-16 13:49:52 -070029395 <p>If a camera device supports outputting depth range data in the form of a depth point
29396cloud (<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH_POINT_CLOUD">Image<wbr/>Format#DEPTH_<wbr/>POINT_<wbr/>CLOUD</a>),<wbr/> this is the maximum
29397number of points an output buffer may contain.<wbr/></p>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029398<p>Any given buffer may contain between 0 and maxDepthSamples points,<wbr/> inclusive.<wbr/>
29399If output in the depth point cloud format is not supported,<wbr/> this entry will
29400not be defined.<wbr/></p>
29401 </td>
29402 </tr>
29403
29404
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029405 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029406 <!-- end of entry -->
29407
29408
29409 <tr class="entry" id="static_android.depth.availableDepthStreamConfigurations">
29410 <td class="entry_name
29411 " rowspan="3">
29412 android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stream<wbr/>Configurations
29413 </td>
29414 <td class="entry_type">
29415 <span class="entry_type_name entry_type_name_enum">int32</span>
29416 <span class="entry_type_container">x</span>
29417
29418 <span class="entry_type_array">
29419 n x 4
29420 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070029421 <span class="entry_type_visibility"> [ndk_public as streamConfiguration]</span>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029422
29423
29424 <span class="entry_type_hwlevel">[limited] </span>
29425
29426
29427
29428 <ul class="entry_type_enum">
29429 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080029430 <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029431 </li>
29432 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080029433 <span class="entry_type_enum_name">INPUT (v3.2)</span>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029434 </li>
29435 </ul>
29436
29437 </td> <!-- entry_type -->
29438
29439 <td class="entry_description">
29440 <p>The available depth dataspace stream
29441configurations that this camera device supports
29442(i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
29443 </td>
29444
29445 <td class="entry_units">
29446 </td>
29447
29448 <td class="entry_range">
29449 </td>
29450
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029451 <td class="entry_hal_version">
29452 <p>3.<wbr/>2</p>
29453 </td>
29454
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029455 <td class="entry_tags">
29456 <ul class="entry_tags">
29457 <li><a href="#tag_DEPTH">DEPTH</a></li>
29458 </ul>
29459 </td>
29460
29461 </tr>
29462 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029463 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029464 </tr>
29465 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029466 <td class="entry_details" colspan="6">
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029467 <p>These are output stream configurations for use with
29468dataSpace HAL_<wbr/>DATASPACE_<wbr/>DEPTH.<wbr/> The configurations are
29469listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code> tuples.<wbr/></p>
29470<p>Only devices that support depth output for at least
29471the HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>Y16 dense depth map may include
29472this entry.<wbr/></p>
29473<p>A device that also supports the HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>BLOB
29474sparse depth point cloud must report a single entry for
29475the format in this list as <code>(HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>BLOB,<wbr/>
29476<a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a>,<wbr/> 1,<wbr/> OUTPUT)</code> in addition to
29477the entries for HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>Y16.<wbr/></p>
29478 </td>
29479 </tr>
29480
29481
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029482 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029483 <!-- end of entry -->
29484
29485
29486 <tr class="entry" id="static_android.depth.availableDepthMinFrameDurations">
29487 <td class="entry_name
29488 " rowspan="3">
29489 android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Min<wbr/>Frame<wbr/>Durations
29490 </td>
29491 <td class="entry_type">
29492 <span class="entry_type_name">int64</span>
29493 <span class="entry_type_container">x</span>
29494
29495 <span class="entry_type_array">
29496 4 x n
29497 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070029498 <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029499
29500
29501 <span class="entry_type_hwlevel">[limited] </span>
29502
29503
29504
29505
29506 </td> <!-- entry_type -->
29507
29508 <td class="entry_description">
29509 <p>This lists the minimum frame duration for each
29510format/<wbr/>size combination for depth output formats.<wbr/></p>
29511 </td>
29512
29513 <td class="entry_units">
29514 (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
29515 </td>
29516
29517 <td class="entry_range">
29518 </td>
29519
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029520 <td class="entry_hal_version">
29521 <p>3.<wbr/>2</p>
29522 </td>
29523
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029524 <td class="entry_tags">
29525 <ul class="entry_tags">
29526 <li><a href="#tag_DEPTH">DEPTH</a></li>
29527 </ul>
29528 </td>
29529
29530 </tr>
29531 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029532 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029533 </tr>
29534 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029535 <td class="entry_details" colspan="6">
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029536 <p>This should correspond to the frame duration when only that
29537stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
29538set to either OFF or FAST.<wbr/></p>
29539<p>When multiple streams are used in a request,<wbr/> the minimum frame
29540duration will be max(individual stream min durations).<wbr/></p>
29541<p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
29542is the same regardless of whether the stream is input or output.<wbr/></p>
29543<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
29544<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
29545calculating the max frame rate.<wbr/></p>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029546 </td>
29547 </tr>
29548
29549
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029550 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029551 <!-- end of entry -->
29552
29553
29554 <tr class="entry" id="static_android.depth.availableDepthStallDurations">
29555 <td class="entry_name
29556 " rowspan="3">
29557 android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stall<wbr/>Durations
29558 </td>
29559 <td class="entry_type">
29560 <span class="entry_type_name">int64</span>
29561 <span class="entry_type_container">x</span>
29562
29563 <span class="entry_type_array">
29564 4 x n
29565 </span>
Yin-Chia Yehc6c24162016-04-02 16:30:30 -070029566 <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029567
29568
29569 <span class="entry_type_hwlevel">[limited] </span>
29570
29571
29572
29573
29574 </td> <!-- entry_type -->
29575
29576 <td class="entry_description">
29577 <p>This lists the maximum stall duration for each
Zhijun He51379152015-04-24 17:59:50 -070029578output format/<wbr/>size combination for depth streams.<wbr/></p>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029579 </td>
29580
29581 <td class="entry_units">
29582 (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
29583 </td>
29584
29585 <td class="entry_range">
29586 </td>
29587
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029588 <td class="entry_hal_version">
29589 <p>3.<wbr/>2</p>
29590 </td>
29591
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029592 <td class="entry_tags">
29593 <ul class="entry_tags">
29594 <li><a href="#tag_DEPTH">DEPTH</a></li>
29595 </ul>
29596 </td>
29597
29598 </tr>
29599 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029600 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029601 </tr>
29602 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029603 <td class="entry_details" colspan="6">
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029604 <p>A stall duration is how much extra time would get added
29605to the normal minimum frame duration for a repeating request
29606that has streams with non-zero stall.<wbr/></p>
29607<p>This functions similarly to
29608<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for depth
29609streams.<wbr/></p>
29610<p>All depth output stream formats may have a nonzero stall
29611duration.<wbr/></p>
29612 </td>
29613 </tr>
29614
29615
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029616 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029617 <!-- end of entry -->
29618
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029619
29620 <tr class="entry" id="static_android.depth.depthIsExclusive">
29621 <td class="entry_name
29622 " rowspan="3">
29623 android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive
29624 </td>
29625 <td class="entry_type">
29626 <span class="entry_type_name entry_type_name_enum">byte</span>
29627
29628 <span class="entry_type_visibility"> [public as boolean]</span>
29629
29630
29631 <span class="entry_type_hwlevel">[limited] </span>
29632
29633
29634
29635 <ul class="entry_type_enum">
29636 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080029637 <span class="entry_type_enum_name">FALSE (v3.2)</span>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029638 </li>
29639 <li>
Eino-Ville Talvala63674ff2017-12-07 13:06:05 -080029640 <span class="entry_type_enum_name">TRUE (v3.2)</span>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029641 </li>
29642 </ul>
29643
29644 </td> <!-- entry_type -->
29645
29646 <td class="entry_description">
29647 <p>Indicates whether a capture request may target both a
29648DEPTH16 /<wbr/> DEPTH_<wbr/>POINT_<wbr/>CLOUD output,<wbr/> and normal color outputs (such as
29649YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> or RAW) simultaneously.<wbr/></p>
29650 </td>
29651
29652 <td class="entry_units">
29653 </td>
29654
29655 <td class="entry_range">
29656 </td>
29657
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029658 <td class="entry_hal_version">
29659 <p>3.<wbr/>2</p>
29660 </td>
29661
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029662 <td class="entry_tags">
29663 </td>
29664
29665 </tr>
29666 <tr class="entries_header">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029667 <th class="th_details" colspan="6">Details</th>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029668 </tr>
29669 <tr class="entry_cont">
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029670 <td class="entry_details" colspan="6">
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029671 <p>If TRUE,<wbr/> including both depth and color outputs in a single
29672capture request is not supported.<wbr/> An application must interleave color
29673and depth requests.<wbr/> If FALSE,<wbr/> a single request can target both types
29674of output.<wbr/></p>
29675<p>Typically,<wbr/> this restriction exists on camera devices that
29676need to emit a specific pattern or wavelength of light to
29677measure depth values,<wbr/> which causes the color image to be
29678corrupted during depth measurement.<wbr/></p>
29679 </td>
29680 </tr>
29681
29682
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080029683 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
Eino-Ville Talvala8f0d2d12015-04-13 17:28:29 -070029684 <!-- end of entry -->
29685
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080029686
29687
29688 <!-- end of kind -->
29689 </tbody>
29690
29691 <!-- end of section -->
Shuzhen Wang0144f582017-11-30 12:03:37 -080029692 <tr><td colspan="7" id="section_logicalMultiCamera" class="section">logicalMultiCamera</td></tr>
29693
29694
29695 <tr><td colspan="7" class="kind">static</td></tr>
29696
29697 <thead class="entries_header">
29698 <tr>
29699 <th class="th_name">Property Name</th>
29700 <th class="th_type">Type</th>
29701 <th class="th_description">Description</th>
29702 <th class="th_units">Units</th>
29703 <th class="th_range">Range</th>
29704 <th class="th_hal_version">Initial HIDL HAL version</th>
29705 <th class="th_tags">Tags</th>
29706 </tr>
29707 </thead>
29708
29709 <tbody>
29710
29711
29712
29713
29714
29715
29716
29717
29718
29719
29720 <tr class="entry" id="static_android.logicalMultiCamera.physicalIds">
29721 <td class="entry_name
29722 " rowspan="3">
29723 android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids
29724 </td>
29725 <td class="entry_type">
29726 <span class="entry_type_name">byte</span>
29727 <span class="entry_type_container">x</span>
29728
29729 <span class="entry_type_array">
29730 n
29731 </span>
29732 <span class="entry_type_visibility"> [hidden]</span>
29733
29734
29735 <span class="entry_type_hwlevel">[limited] </span>
29736
29737
29738
29739
29740 </td> <!-- entry_type -->
29741
29742 <td class="entry_description">
29743 <p>String containing the ids of the underlying physical cameras.<wbr/></p>
29744 </td>
29745
29746 <td class="entry_units">
29747 UTF-8 null-terminated string
29748 </td>
29749
29750 <td class="entry_range">
29751 </td>
29752
29753 <td class="entry_hal_version">
29754 <p>3.<wbr/>3</p>
29755 </td>
29756
29757 <td class="entry_tags">
29758 <ul class="entry_tags">
29759 <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
29760 </ul>
29761 </td>
29762
29763 </tr>
29764 <tr class="entries_header">
29765 <th class="th_details" colspan="6">Details</th>
29766 </tr>
29767 <tr class="entry_cont">
29768 <td class="entry_details" colspan="6">
29769 <p>For a logical camera,<wbr/> this is concatenation of all underlying physical camera ids.<wbr/>
29770The null terminator for physical camera id must be preserved so that the whole string
29771can be tokenized using '\0' to generate list of physical camera ids.<wbr/></p>
29772<p>For example,<wbr/> if the physical camera ids of the logical camera are "2" and "3",<wbr/> the
29773value of this tag will be ['2',<wbr/> '\0',<wbr/> '3',<wbr/> '\0'].<wbr/></p>
29774<p>The number of physical camera ids must be no less than 2.<wbr/></p>
29775 </td>
29776 </tr>
29777
29778
29779 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
29780 <!-- end of entry -->
29781
29782
29783 <tr class="entry" id="static_android.logicalMultiCamera.sensorSyncType">
29784 <td class="entry_name
29785 " rowspan="3">
29786 android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type
29787 </td>
29788 <td class="entry_type">
29789 <span class="entry_type_name entry_type_name_enum">byte</span>
29790
29791 <span class="entry_type_visibility"> [public]</span>
29792
29793
29794 <span class="entry_type_hwlevel">[limited] </span>
29795
29796
29797
29798 <ul class="entry_type_enum">
29799 <li>
29800 <span class="entry_type_enum_name">APPROXIMATE (v3.3)</span>
29801 <span class="entry_type_enum_notes"><p>A software mechanism is used to synchronize between the physical cameras.<wbr/> As a result,<wbr/>
29802the timestamp of an image from a physical stream is only an approximation of the
29803image sensor start-of-exposure time.<wbr/></p></span>
29804 </li>
29805 <li>
29806 <span class="entry_type_enum_name">CALIBRATED (v3.3)</span>
29807 <span class="entry_type_enum_notes"><p>The camera device supports frame timestamp synchronization at the hardware level,<wbr/>
29808and the timestamp of a physical stream image accurately reflects its
29809start-of-exposure time.<wbr/></p></span>
29810 </li>
29811 </ul>
29812
29813 </td> <!-- entry_type -->
29814
29815 <td class="entry_description">
29816 <p>The accuracy of frame timestamp synchronization between physical cameras</p>
29817 </td>
29818
29819 <td class="entry_units">
29820 </td>
29821
29822 <td class="entry_range">
29823 </td>
29824
29825 <td class="entry_hal_version">
29826 <p>3.<wbr/>3</p>
29827 </td>
29828
29829 <td class="entry_tags">
29830 <ul class="entry_tags">
29831 <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
29832 </ul>
29833 </td>
29834
29835 </tr>
29836 <tr class="entries_header">
29837 <th class="th_details" colspan="6">Details</th>
29838 </tr>
29839 <tr class="entry_cont">
29840 <td class="entry_details" colspan="6">
29841 <p>The accuracy of the frame timestamp synchronization determines the physical cameras'
29842ability to start exposure at the same time.<wbr/> If the sensorSyncType is CALIBRATED,<wbr/>
29843the physical camera sensors usually run in master-slave mode so that their shutter
29844time is synchronized.<wbr/> For APPROXIMATE sensorSyncType,<wbr/> the camera sensors usually run in
29845master-master mode,<wbr/> and there could be offset between their start of exposure.<wbr/></p>
29846<p>In both cases,<wbr/> all images generated for a particular capture request still carry the same
29847timestamps,<wbr/> so that they can be used to look up the matching frame number and
29848onCaptureStarted callback.<wbr/></p>
29849 </td>
29850 </tr>
29851
29852
29853 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
29854 <!-- end of entry -->
29855
29856
29857
29858 <!-- end of kind -->
29859 </tbody>
29860
29861 <!-- end of section -->
Eino-Ville Talvalad4c0fe32018-03-13 19:46:57 -070029862 <tr><td colspan="7" id="section_distortionCorrection" class="section">distortionCorrection</td></tr>
29863
29864
29865 <tr><td colspan="7" class="kind">controls</td></tr>
29866
29867 <thead class="entries_header">
29868 <tr>
29869 <th class="th_name">Property Name</th>
29870 <th class="th_type">Type</th>
29871 <th class="th_description">Description</th>
29872 <th class="th_units">Units</th>
29873 <th class="th_range">Range</th>
29874 <th class="th_hal_version">Initial HIDL HAL version</th>
29875 <th class="th_tags">Tags</th>
29876 </tr>
29877 </thead>
29878
29879 <tbody>
29880
29881
29882
29883
29884
29885
29886
29887
29888
29889
29890 <tr class="entry" id="controls_android.distortionCorrection.mode">
29891 <td class="entry_name
29892 " rowspan="3">
29893 android.<wbr/>distortion<wbr/>Correction.<wbr/>mode
29894 </td>
29895 <td class="entry_type">
29896 <span class="entry_type_name entry_type_name_enum">byte</span>
29897
29898 <span class="entry_type_visibility"> [public]</span>
29899
29900
29901
29902
29903
29904 <ul class="entry_type_enum">
29905 <li>
29906 <span class="entry_type_enum_name">OFF (v3.3)</span>
29907 <span class="entry_type_enum_notes"><p>No distortion correction is applied.<wbr/></p></span>
29908 </li>
29909 <li>
29910 <span class="entry_type_enum_name">FAST (v3.3)</span>
29911 <span class="entry_type_enum_notes"><p>Lens distortion correction is applied without reducing frame rate
29912relative to sensor output.<wbr/> It may be the same as OFF if distortion correction would
29913reduce frame rate relative to sensor.<wbr/></p></span>
29914 </li>
29915 <li>
29916 <span class="entry_type_enum_name">HIGH_QUALITY (v3.3)</span>
29917 <span class="entry_type_enum_notes"><p>High-quality distortion correction is applied,<wbr/> at the cost of
29918possibly reduced frame rate relative to sensor output.<wbr/></p></span>
29919 </li>
29920 </ul>
29921
29922 </td> <!-- entry_type -->
29923
29924 <td class="entry_description">
29925 <p>Mode of operation for the lens distortion correction block.<wbr/></p>
29926 </td>
29927
29928 <td class="entry_units">
29929 </td>
29930
29931 <td class="entry_range">
29932 <p><a href="#static_android.distortionCorrection.availableModes">android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes</a></p>
29933 </td>
29934
29935 <td class="entry_hal_version">
29936 <p>3.<wbr/>3</p>
29937 </td>
29938
29939 <td class="entry_tags">
29940 </td>
29941
29942 </tr>
29943 <tr class="entries_header">
29944 <th class="th_details" colspan="6">Details</th>
29945 </tr>
29946 <tr class="entry_cont">
29947 <td class="entry_details" colspan="6">
29948 <p>The lens distortion correction block attempts to improve image quality by fixing
29949radial,<wbr/> tangential,<wbr/> or other geometric aberrations in the camera device's optics.<wbr/> If
29950available,<wbr/> the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> field documents the lens's distortion parameters.<wbr/></p>
29951<p>OFF means no distortion correction is done.<wbr/></p>
29952<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined distortion correction will be
29953applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will use the highest-quality
29954correction algorithms,<wbr/> even if it slows down capture rate.<wbr/> FAST means the camera device
29955will not slow down capture rate when applying correction.<wbr/> FAST may be the same as OFF if
29956any correction at all would slow down capture rate.<wbr/> Every output stream will have a
29957similar amount of enhancement applied.<wbr/></p>
29958<p>The correction only applies to processed outputs such as YUV,<wbr/> JPEG,<wbr/> or DEPTH16; it is not
29959applied to any RAW output.<wbr/> Metadata coordinates such as face rectangles or metering
29960regions are also not affected by correction.<wbr/></p>
29961<p>Applications enabling distortion correction need to pay extra attention when converting
29962image coordinates between corrected output buffers and the sensor array.<wbr/> For example,<wbr/> if
29963the app supports tap-to-focus and enables correction,<wbr/> it then has to apply the distortion
29964model described in <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> to the image buffer tap coordinates to properly
29965calculate the tap position on the sensor active array to be used with
29966<a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/> The same applies in reverse to detected face rectangles if
29967they need to be drawn on top of the corrected output buffers.<wbr/></p>
29968 </td>
29969 </tr>
29970
29971
29972 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
29973 <!-- end of entry -->
29974
29975
29976
29977 <!-- end of kind -->
29978 </tbody>
29979 <tr><td colspan="7" class="kind">static</td></tr>
29980
29981 <thead class="entries_header">
29982 <tr>
29983 <th class="th_name">Property Name</th>
29984 <th class="th_type">Type</th>
29985 <th class="th_description">Description</th>
29986 <th class="th_units">Units</th>
29987 <th class="th_range">Range</th>
29988 <th class="th_hal_version">Initial HIDL HAL version</th>
29989 <th class="th_tags">Tags</th>
29990 </tr>
29991 </thead>
29992
29993 <tbody>
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004 <tr class="entry" id="static_android.distortionCorrection.availableModes">
30005 <td class="entry_name
30006 " rowspan="5">
30007 android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes
30008 </td>
30009 <td class="entry_type">
30010 <span class="entry_type_name">byte</span>
30011 <span class="entry_type_container">x</span>
30012
30013 <span class="entry_type_array">
30014 n
30015 </span>
30016 <span class="entry_type_visibility"> [public as enumList]</span>
30017
30018
30019
30020
30021 <div class="entry_type_notes">list of enums</div>
30022
30023
30024 </td> <!-- entry_type -->
30025
30026 <td class="entry_description">
30027 <p>List of distortion correction modes for <a href="#controls_android.distortionCorrection.mode">android.<wbr/>distortion<wbr/>Correction.<wbr/>mode</a> that are
30028supported by this camera device.<wbr/></p>
30029 </td>
30030
30031 <td class="entry_units">
30032 </td>
30033
30034 <td class="entry_range">
30035 <p>Any value listed in <a href="#controls_android.distortionCorrection.mode">android.<wbr/>distortion<wbr/>Correction.<wbr/>mode</a></p>
30036 </td>
30037
30038 <td class="entry_hal_version">
30039 <p>3.<wbr/>3</p>
30040 </td>
30041
30042 <td class="entry_tags">
30043 <ul class="entry_tags">
30044 <li><a href="#tag_V1">V1</a></li>
30045 <li><a href="#tag_REPROC">REPROC</a></li>
30046 </ul>
30047 </td>
30048
30049 </tr>
30050 <tr class="entries_header">
30051 <th class="th_details" colspan="6">Details</th>
30052 </tr>
30053 <tr class="entry_cont">
30054 <td class="entry_details" colspan="6">
30055 <p>No device is required to support this API; such devices will always list only 'OFF'.<wbr/>
30056All devices that support this API will list both FAST and HIGH_<wbr/>QUALITY.<wbr/></p>
30057 </td>
30058 </tr>
30059
30060 <tr class="entries_header">
30061 <th class="th_details" colspan="6">HAL Implementation Details</th>
30062 </tr>
30063 <tr class="entry_cont">
30064 <td class="entry_details" colspan="6">
30065 <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if distortion correction is available
30066on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
30067That is,<wbr/> if the highest quality implementation on the camera device does not slow down
30068capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
30069 </td>
30070 </tr>
30071
30072 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
30073 <!-- end of entry -->
30074
30075
30076
30077 <!-- end of kind -->
30078 </tbody>
30079 <tr><td colspan="7" class="kind">dynamic</td></tr>
30080
30081 <thead class="entries_header">
30082 <tr>
30083 <th class="th_name">Property Name</th>
30084 <th class="th_type">Type</th>
30085 <th class="th_description">Description</th>
30086 <th class="th_units">Units</th>
30087 <th class="th_range">Range</th>
30088 <th class="th_hal_version">Initial HIDL HAL version</th>
30089 <th class="th_tags">Tags</th>
30090 </tr>
30091 </thead>
30092
30093 <tbody>
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104 <tr class="entry" id="dynamic_android.distortionCorrection.mode">
30105 <td class="entry_name
30106 " rowspan="3">
30107 android.<wbr/>distortion<wbr/>Correction.<wbr/>mode
30108 </td>
30109 <td class="entry_type">
30110 <span class="entry_type_name entry_type_name_enum">byte</span>
30111
30112 <span class="entry_type_visibility"> [public]</span>
30113
30114
30115
30116
30117
30118 <ul class="entry_type_enum">
30119 <li>
30120 <span class="entry_type_enum_name">OFF (v3.3)</span>
30121 <span class="entry_type_enum_notes"><p>No distortion correction is applied.<wbr/></p></span>
30122 </li>
30123 <li>
30124 <span class="entry_type_enum_name">FAST (v3.3)</span>
30125 <span class="entry_type_enum_notes"><p>Lens distortion correction is applied without reducing frame rate
30126relative to sensor output.<wbr/> It may be the same as OFF if distortion correction would
30127reduce frame rate relative to sensor.<wbr/></p></span>
30128 </li>
30129 <li>
30130 <span class="entry_type_enum_name">HIGH_QUALITY (v3.3)</span>
30131 <span class="entry_type_enum_notes"><p>High-quality distortion correction is applied,<wbr/> at the cost of
30132possibly reduced frame rate relative to sensor output.<wbr/></p></span>
30133 </li>
30134 </ul>
30135
30136 </td> <!-- entry_type -->
30137
30138 <td class="entry_description">
30139 <p>Mode of operation for the lens distortion correction block.<wbr/></p>
30140 </td>
30141
30142 <td class="entry_units">
30143 </td>
30144
30145 <td class="entry_range">
30146 <p><a href="#static_android.distortionCorrection.availableModes">android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes</a></p>
30147 </td>
30148
30149 <td class="entry_hal_version">
30150 <p>3.<wbr/>3</p>
30151 </td>
30152
30153 <td class="entry_tags">
30154 </td>
30155
30156 </tr>
30157 <tr class="entries_header">
30158 <th class="th_details" colspan="6">Details</th>
30159 </tr>
30160 <tr class="entry_cont">
30161 <td class="entry_details" colspan="6">
30162 <p>The lens distortion correction block attempts to improve image quality by fixing
30163radial,<wbr/> tangential,<wbr/> or other geometric aberrations in the camera device's optics.<wbr/> If
30164available,<wbr/> the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> field documents the lens's distortion parameters.<wbr/></p>
30165<p>OFF means no distortion correction is done.<wbr/></p>
30166<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined distortion correction will be
30167applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will use the highest-quality
30168correction algorithms,<wbr/> even if it slows down capture rate.<wbr/> FAST means the camera device
30169will not slow down capture rate when applying correction.<wbr/> FAST may be the same as OFF if
30170any correction at all would slow down capture rate.<wbr/> Every output stream will have a
30171similar amount of enhancement applied.<wbr/></p>
30172<p>The correction only applies to processed outputs such as YUV,<wbr/> JPEG,<wbr/> or DEPTH16; it is not
30173applied to any RAW output.<wbr/> Metadata coordinates such as face rectangles or metering
30174regions are also not affected by correction.<wbr/></p>
30175<p>Applications enabling distortion correction need to pay extra attention when converting
30176image coordinates between corrected output buffers and the sensor array.<wbr/> For example,<wbr/> if
30177the app supports tap-to-focus and enables correction,<wbr/> it then has to apply the distortion
30178model described in <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> to the image buffer tap coordinates to properly
30179calculate the tap position on the sensor active array to be used with
30180<a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/> The same applies in reverse to detected face rectangles if
30181they need to be drawn on top of the corrected output buffers.<wbr/></p>
30182 </td>
30183 </tr>
30184
30185
30186 <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
30187 <!-- end of entry -->
30188
30189
30190
30191 <!-- end of kind -->
30192 </tbody>
30193
30194 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030195<!-- </namespace> -->
30196 </table>
30197
30198 <div class="tags" id="tag_index">
30199 <h2>Tags</h2>
30200 <ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030201 <li id="tag_BC">BC -
30202 Needed for backwards compatibility with old Java API
30203
30204 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080030205 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030206 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
30207 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
30208 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
30209 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
30210 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070030211 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030212 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
30213 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070030214 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030215 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
30216 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
30217 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
30218 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
30219 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
30220 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
30221 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
30222 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Zhijun He5fb671c2014-05-21 17:51:05 -070030223 <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080030224 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Zhijun He5fb671c2014-05-21 17:51:05 -070030225 <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030226 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
30227 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
30228 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
30229 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
30230 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
30231 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
30232 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
30233 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
30234 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
Yin-Chia Yeh3417b292015-02-20 15:34:14 -080030235 <li><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a> (static)</li>
30236 <li><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030237 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
30238 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
30239 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
30240 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
30241 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
30242 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
30243 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
30244 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
30245 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
30246 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
30247 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
30248 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030249 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
30250 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
30251 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
30252 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
30253 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
30254 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070030255 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030256 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
30257 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
30258 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070030259 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030260 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
30261 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
30262 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
30263 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
30264 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
Zhijun He66e62a42014-05-23 11:02:34 -070030265 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030266 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
30267 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
30268 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
30269 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
30270 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
30271 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
30272 </ul>
30273 </li> <!-- tag_BC -->
30274 <li id="tag_V1">V1 -
30275 New features for first camera 2 release (API1)
30276
30277 <ul class="tags_entries">
Zhijun He33776412014-08-18 10:55:33 -070030278 <li><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a> (static)</li>
Zhijun He17f2d2c2014-06-10 18:21:34 -070030279 <li><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a> (static)</li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080030280 <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080030281 <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030282 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080030283 <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030284 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
30285 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
30286 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
30287 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
30288 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
30289 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
30290 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
30291 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
30292 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030293 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
30294 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
Zhijun Hef92c76a2014-02-06 01:40:35 -080030295 <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030296 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
30297 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080030298 <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030299 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
Zhijun He5fb671c2014-05-21 17:51:05 -070030300 <li><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a> (static)</li>
30301 <li><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030302 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
30303 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
30304 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070030305 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030306 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
30307 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
30308 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
Eino-Ville Talvala122906c2014-07-28 12:49:25 -070030309 <li><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030310 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
Zhijun Hecc5cfdc2014-06-11 10:44:53 -070030311 <li><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a> (dynamic)</li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080030312 <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
30313 <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080030314 <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
Zhijun He5fb671c2014-05-21 17:51:05 -070030315 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
30316 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
Eino-Ville Talvalad4c0fe32018-03-13 19:46:57 -070030317 <li><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a> (static)</li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080030318 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030319 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
30320 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
30321 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
30322 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
Ruben Brunkd14f7162014-03-04 15:01:25 -080030323 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030324 </ul>
30325 </li> <!-- tag_V1 -->
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070030326 <li id="tag_RAW">RAW -
30327 Needed for useful RAW image processing and DNG file support
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030328
30329 <ul class="tags_entries">
Ruben Brunk9d4a5e02014-02-18 11:27:07 -080030330 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080030331 <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030332 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
30333 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
30334 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
30335 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
Ruben Brunk93192942015-07-01 11:32:39 -070030336 <li><a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</a> (static)</li>
Ruben Brunk7db06e22014-04-15 17:43:56 -070030337 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
30338 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li>
30339 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
30340 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
30341 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
30342 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
30343 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
30344 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030345 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080030346 <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a> (static)</li>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080030347 <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
Ruben Brunk6a424ff2014-07-23 15:13:16 -070030348 <li><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a> (dynamic)</li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080030349 <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a> (dynamic)</li>
30350 <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a> (dynamic)</li>
Ruben Brunk6a5fd112014-02-11 17:55:32 -080030351 <li><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a> (dynamic)</li>
Zhijun Hed363a122015-11-12 17:27:27 -080030352 <li><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a> (dynamic)</li>
30353 <li><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</a> (dynamic)</li>
Ruben Brunk49e4f912014-03-04 14:09:44 -080030354 <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
30355 <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
30356 <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
Igor Murashkinca256272014-10-02 15:27:09 -070030357 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a> (controls)</li>
Ruben Brunk9d4a5e02014-02-18 11:27:07 -080030358 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030359 </ul>
Eino-Ville Talvala9a7f3d82014-07-15 10:43:01 -070030360 </li> <!-- tag_RAW -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070030361 <li id="tag_HAL2">HAL2 -
Eino-Ville Talvala0d404952017-11-10 15:13:04 -080030362 Entry is only used by camera device legacy HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070030363
30364 <ul class="tags_entries">
30365 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
30366 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
30367 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He12744b22014-01-22 15:58:57 -080030368 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070030369 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070030370 </ul>
30371 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070030372 <li id="tag_FULL">FULL -
30373 Entry is required for full hardware level devices, and optional for other hardware levels
30374
30375 <ul class="tags_entries">
Alex Rayef40ad62013-10-01 17:52:33 -070030376 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
Alex Rayef40ad62013-10-01 17:52:33 -070030377 </ul>
30378 </li> <!-- tag_FULL -->
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080030379 <li id="tag_DEPTH">DEPTH -
30380 Entry is required for the depth capability.
30381
30382 <ul class="tags_entries">
Eino-Ville Talvala489e58c2015-02-09 15:47:27 -080030383 <li><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a> (static)</li>
30384 <li><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a> (static)</li>
30385 <li><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a> (static)</li>
30386 <li><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a> (static)</li>
Eino-Ville Talvala245e2792018-03-13 19:10:23 -070030387 <li><a href="#static_android.lens.distortion">android.lens.distortion</a> (static)</li>
Eino-Ville Talvalaa166f502015-02-23 15:51:58 -080030388 <li><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a> (static)</li>
30389 <li><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a> (static)</li>
30390 <li><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a> (static)</li>
30391 <li><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a> (static)</li>
30392 </ul>
30393 </li> <!-- tag_DEPTH -->
Zhijun He51379152015-04-24 17:59:50 -070030394 <li id="tag_REPROC">REPROC -
Chien-Yu Chenf8581f62015-05-12 15:13:00 -070030395 Entry is required for the YUV or PRIVATE reprocessing capability.
Zhijun He51379152015-04-24 17:59:50 -070030396
30397 <ul class="tags_entries">
30398 <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
30399 <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
30400 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
30401 <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
30402 <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a> (static)</li>
30403 <li><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a> (static)</li>
30404 <li><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a> (controls)</li>
30405 <li><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a> (static)</li>
Eino-Ville Talvalad4c0fe32018-03-13 19:46:57 -070030406 <li><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a> (static)</li>
Zhijun He51379152015-04-24 17:59:50 -070030407 <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
30408 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
30409 </ul>
30410 </li> <!-- tag_REPROC -->
Shuzhen Wang0144f582017-11-30 12:03:37 -080030411 <li id="tag_LOGICALCAMERA">LOGICALCAMERA -
30412 Entry is required for logical multi-camera capability.
30413
30414 <ul class="tags_entries">
30415 <li><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a> (static)</li>
30416 <li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a> (static)</li>
30417 </ul>
30418 </li> <!-- tag_LOGICALCAMERA -->
Zhijun He66e62a42014-05-23 11:02:34 -070030419 <li id="tag_FUTURE">FUTURE -
30420 Entry is under-specified and is not required for now. This is for book-keeping purpose,
30421 do not implement or use it, it may be revised for future.
30422
30423 <ul class="tags_entries">
30424 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
30425 <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li>
30426 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
30427 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
30428 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
30429 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
30430 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
30431 <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li>
Zhijun He66e62a42014-05-23 11:02:34 -070030432 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li>
30433 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li>
30434 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
30435 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
30436 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
30437 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
30438 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
30439 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li>
30440 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li>
30441 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li>
30442 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li>
30443 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
30444 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
30445 </ul>
30446 </li> <!-- tag_FUTURE -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080030447 </ul>
30448 </div>
30449
30450 [ <a href="#">top</a> ]
30451
30452</body>
30453</html>