| <!DOCTYPE html> |
| <html> |
| <!-- Copyright (C) 2012 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <head> |
| <!-- automatically generated from html.mako. do NOT edit directly --> |
| <meta charset="utf-8" /> |
| <title>Android Camera HAL3.4 Properties</title> |
| <style type="text/css"> |
| body { background-color: #f7f7f7; font-family: Roboto, sans-serif;} |
| h1 { color: #333333; } |
| h2 { color: #333333; } |
| a:link { color: #258aaf; text-decoration: none} |
| a:hover { color: #459aaf; text-decoration: underline } |
| a:visited { color: #154a5f; text-decoration: none} |
| .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} |
| .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa } |
| .entry { background-color: #f0f0f0 } |
| .entry_cont { background-color: #f0f0f0 } |
| .entries_header { background-color: #dddddd; text-align: center} |
| |
| /* toc style */ |
| .toc_section_header { font-size:1.3em; } |
| .toc_kind_header { font-size:1.2em; } |
| .toc_deprecated { text-decoration:line-through; } |
| |
| /* table column sizes */ |
| table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word } |
| td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em } |
| .th_name { width: 20% } |
| .th_units { width: 10% } |
| .th_tags { width: 5% } |
| .th_details { width: 25% } |
| .th_type { width: 17% } |
| .th_description { width: 20% } |
| .th_range { width: 8% } |
| .th_hal_version { width: 5% } |
| td { font-size: 0.9em; } |
| |
| /* hide the first thead, we need it there only to enforce column sizes */ |
| .thead_dummy { visibility: hidden; } |
| |
| /* Entry flair */ |
| .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; } |
| .entry_name_deprecated { text-decoration:line-through; } |
| |
| /* Entry type flair */ |
| .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;} |
| .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" } |
| .entry_type_visibility { font-weight: bolder; padding-left:1em} |
| .entry_type_synthetic { font-weight: bolder; color: #996600; } |
| .entry_type_hwlevel { font-weight: bolder; color: #000066; } |
| .entry_type_deprecated { font-weight: bolder; color: #4D4D4D; } |
| .entry_type_enum_name { font-family: monospace; font-weight: bolder; } |
| .entry_type_enum_notes:before { content:" - " } |
| .entry_type_enum_notes>p:first-child { display:inline; } |
| .entry_type_enum_value:before { content:" = " } |
| .entry_type_enum_value { font-family: monospace; } |
| .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; } |
| .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;} |
| .entry_range_deprecated { font-weight: bolder; } |
| |
| /* Entry tags flair */ |
| .entry_tags ul { list-style-type: none; } |
| |
| /* Entry details (full docs) flair */ |
| .entry_details_header { font-weight: bold; background-color: #dddddd; |
| text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; } |
| |
| /* Entry spacer flair */ |
| .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; } |
| |
| /* TODO: generate abbr element for each tag link? */ |
| /* TODO for each x.y.z try to link it to the entry */ |
| |
| </style> |
| |
| <style> |
| |
| { |
| /* broken... |
| supposedly there is a bug in chrome that it lays out tables before |
| it knows its being printed, so the page-break-* styles are ignored |
| */ |
| tr { page-break-after: always; page-break-inside: avoid; } |
| } |
| |
| </style> |
| </head> |
| |
| |
| |
| <body> |
| <h1>Android Camera HAL3.2 Properties</h1> |
| |
| |
| <h2>Table of Contents</h2> |
| <ul class="toc"> |
| <li><a href="#tag_index" class="toc_section_header">Tags</a></li> |
| <li> |
| <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li> |
| <li |
| ><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li> |
| <li |
| ><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li> |
| <li |
| ><a href="#controls_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a></li> |
| <li |
| ><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li> |
| <li |
| ><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li> |
| <li |
| ><a href="#dynamic_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_control">control</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li> |
| <li |
| ><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li> |
| <li |
| ><a href="#controls_android.control.aeLock">android.control.aeLock</a></li> |
| <li |
| ><a href="#controls_android.control.aeMode">android.control.aeMode</a></li> |
| <li |
| ><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li> |
| <li |
| ><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li> |
| <li |
| ><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li> |
| <li |
| ><a href="#controls_android.control.afMode">android.control.afMode</a></li> |
| <li |
| ><a href="#controls_android.control.afRegions">android.control.afRegions</a></li> |
| <li |
| ><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li> |
| <li |
| ><a href="#controls_android.control.awbLock">android.control.awbLock</a></li> |
| <li |
| ><a href="#controls_android.control.awbMode">android.control.awbMode</a></li> |
| <li |
| ><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li> |
| <li |
| ><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li> |
| <li |
| ><a href="#controls_android.control.effectMode">android.control.effectMode</a></li> |
| <li |
| ><a href="#controls_android.control.mode">android.control.mode</a></li> |
| <li |
| ><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li> |
| <li |
| ><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li> |
| <li |
| ><a href="#controls_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li> |
| <li |
| ><a href="#controls_android.control.enableZsl">android.control.enableZsl</a></li> |
| <li |
| ><a href="#controls_android.control.extendedSceneMode">android.control.extendedSceneMode</a></li> |
| <li |
| ><a href="#controls_android.control.zoomRatio">android.control.zoomRatio</a></li> |
| <li |
| ><a href="#controls_android.control.afRegionsSet">android.control.afRegionsSet</a></li> |
| <li |
| ><a href="#controls_android.control.aeRegionsSet">android.control.aeRegionsSet</a></li> |
| <li |
| ><a href="#controls_android.control.awbRegionsSet">android.control.awbRegionsSet</a></li> |
| <li |
| ><a href="#controls_android.control.settingsOverride">android.control.settingsOverride</a></li> |
| <li |
| ><a href="#controls_android.control.autoframing">android.control.autoframing</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li> |
| <li |
| ><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li> |
| <li |
| ><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li> |
| <li |
| ><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li> |
| <li |
| ><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li> |
| <li |
| ><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li> |
| <li |
| ><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li> |
| <li |
| ><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li> |
| <li |
| ><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li> |
| <li |
| ><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li> |
| <li |
| ><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li> |
| <li |
| ><a href="#static_android.control.maxRegionsAe">android.control.maxRegionsAe</a></li> |
| <li |
| ><a href="#static_android.control.maxRegionsAwb">android.control.maxRegionsAwb</a></li> |
| <li |
| ><a href="#static_android.control.maxRegionsAf">android.control.maxRegionsAf</a></li> |
| <li |
| ><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li> |
| <li |
| ><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a></li> |
| <li |
| ><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a></li> |
| <li |
| ><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</a></li> |
| <li |
| ><a href="#static_android.control.availableModes">android.control.availableModes</a></li> |
| <li |
| ><a href="#static_android.control.postRawSensitivityBoostRange">android.control.postRawSensitivityBoostRange</a></li> |
| <li |
| ><a href="#static_android.control.availableExtendedSceneModeMaxSizes">android.control.availableExtendedSceneModeMaxSizes</a></li> |
| <li |
| ><a href="#static_android.control.availableExtendedSceneModeZoomRatioRanges">android.control.availableExtendedSceneModeZoomRatioRanges</a></li> |
| <li |
| ><a href="#static_android.control.availableExtendedSceneModeCapabilities">android.control.availableExtendedSceneModeCapabilities</a></li> |
| <li |
| ><a href="#static_android.control.zoomRatioRange">android.control.zoomRatioRange</a></li> |
| <li |
| ><a href="#static_android.control.availableHighSpeedVideoConfigurationsMaximumResolution">android.control.availableHighSpeedVideoConfigurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.control.availableSettingsOverrides">android.control.availableSettingsOverrides</a></li> |
| <li |
| ><a href="#static_android.control.autoframingAvailable">android.control.autoframingAvailable</a></li> |
| <li |
| ><a href="#static_android.control.lowLightBoostInfoLuminanceRange">android.control.lowLightBoostInfoLuminanceRange</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeLock">android.control.aeLock</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li> |
| <li |
| ><a href="#dynamic_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li> |
| <li |
| ><a href="#dynamic_android.control.aeState">android.control.aeState</a></li> |
| <li |
| ><a href="#dynamic_android.control.afMode">android.control.afMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li> |
| <li |
| ><a href="#dynamic_android.control.afTrigger">android.control.afTrigger</a></li> |
| <li |
| ><a href="#dynamic_android.control.afState">android.control.afState</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li> |
| <li |
| ><a href="#dynamic_android.control.awbLock">android.control.awbLock</a></li> |
| <li |
| ><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li> |
| <li |
| ><a href="#dynamic_android.control.captureIntent">android.control.captureIntent</a></li> |
| <li |
| ><a href="#dynamic_android.control.awbState">android.control.awbState</a></li> |
| <li |
| ><a href="#dynamic_android.control.effectMode">android.control.effectMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.mode">android.control.mode</a></li> |
| <li |
| ><a href="#dynamic_android.control.sceneMode">android.control.sceneMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li> |
| <li |
| ><a href="#dynamic_android.control.enableZsl">android.control.enableZsl</a></li> |
| <li |
| ><a href="#dynamic_android.control.afSceneChange">android.control.afSceneChange</a></li> |
| <li |
| ><a href="#dynamic_android.control.extendedSceneMode">android.control.extendedSceneMode</a></li> |
| <li |
| ><a href="#dynamic_android.control.zoomRatio">android.control.zoomRatio</a></li> |
| <li |
| ><a href="#dynamic_android.control.settingsOverride">android.control.settingsOverride</a></li> |
| <li |
| ><a href="#dynamic_android.control.settingsOverridingFrameNumber">android.control.settingsOverridingFrameNumber</a></li> |
| <li |
| ><a href="#dynamic_android.control.autoframing">android.control.autoframing</a></li> |
| <li |
| ><a href="#dynamic_android.control.autoframingState">android.control.autoframingState</a></li> |
| <li |
| ><a href="#dynamic_android.control.lowLightBoostState">android.control.lowLightBoostState</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_edge">edge</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.edge.mode">android.edge.mode</a></li> |
| <li |
| ><a href="#controls_android.edge.strength">android.edge.strength</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.edge.mode">android.edge.mode</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_flash">flash</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li> |
| <li |
| ><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li> |
| <li |
| ><a href="#controls_android.flash.mode">android.flash.mode</a></li> |
| <li |
| ><a href="#controls_android.flash.strengthLevel">android.flash.strengthLevel</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| |
| <li |
| ><a href="#static_android.flash.info.available">android.flash.info.available</a></li> |
| <li |
| ><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li> |
| <li |
| ><a href="#static_android.flash.info.strengthMaximumLevel">android.flash.info.strengthMaximumLevel</a></li> |
| <li |
| ><a href="#static_android.flash.info.strengthDefaultLevel">android.flash.info.strengthDefaultLevel</a></li> |
| |
| <li |
| ><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li> |
| <li |
| ><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li> |
| <li |
| ><a href="#static_android.flash.singleStrengthMaxLevel">android.flash.singleStrengthMaxLevel</a></li> |
| <li |
| ><a href="#static_android.flash.singleStrengthDefaultLevel">android.flash.singleStrengthDefaultLevel</a></li> |
| <li |
| ><a href="#static_android.flash.torchStrengthMaxLevel">android.flash.torchStrengthMaxLevel</a></li> |
| <li |
| ><a href="#static_android.flash.torchStrengthDefaultLevel">android.flash.torchStrengthDefaultLevel</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li> |
| <li |
| ><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li> |
| <li |
| ><a href="#dynamic_android.flash.mode">android.flash.mode</a></li> |
| <li |
| ><a href="#dynamic_android.flash.state">android.flash.state</a></li> |
| <li |
| ><a href="#dynamic_android.flash.strengthLevel">android.flash.strengthLevel</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li> |
| <li |
| ><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li> |
| <li |
| ><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li> |
| <li |
| ><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li> |
| <li |
| ><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li> |
| <li |
| ><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li> |
| <li |
| ><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li> |
| <li |
| ><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li> |
| <li |
| ><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li> |
| <li |
| ><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_lens">lens</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.lens.aperture">android.lens.aperture</a></li> |
| <li |
| ><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li> |
| <li |
| ><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li> |
| <li |
| ><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li> |
| <li |
| ><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| |
| <li |
| ><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li> |
| <li |
| ><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li> |
| <li |
| ><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li> |
| <li |
| ><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li> |
| <li |
| ><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li> |
| <li |
| ><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li> |
| <li |
| ><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li> |
| <li |
| ><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li> |
| |
| <li |
| ><a href="#static_android.lens.facing">android.lens.facing</a></li> |
| <li |
| ><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a></li> |
| <li |
| ><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a></li> |
| <li |
| ><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a></li> |
| <li |
| ><a href="#static_android.lens.poseReference">android.lens.poseReference</a></li> |
| <li |
| ><a href="#static_android.lens.distortion">android.lens.distortion</a></li> |
| <li |
| ><a href="#static_android.lens.distortionMaximumResolution">android.lens.distortionMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.lens.intrinsicCalibrationMaximumResolution">android.lens.intrinsicCalibrationMaximumResolution</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li> |
| <li |
| ><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li> |
| <li |
| ><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li> |
| <li |
| ><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li> |
| <li |
| ><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li> |
| <li |
| ><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li> |
| <li |
| ><a href="#dynamic_android.lens.state">android.lens.state</a></li> |
| <li |
| ><a href="#dynamic_android.lens.poseRotation">android.lens.poseRotation</a></li> |
| <li |
| ><a href="#dynamic_android.lens.poseTranslation">android.lens.poseTranslation</a></li> |
| <li |
| ><a href="#dynamic_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.lens.radialDistortion">android.lens.radialDistortion</a></li> |
| <li |
| ><a href="#dynamic_android.lens.distortion">android.lens.distortion</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li> |
| <li |
| ><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_quirks">quirks</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_request">request</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| class="toc_deprecated" |
| ><a href="#controls_android.request.frameCount">android.request.frameCount</a></li> |
| <li |
| ><a href="#controls_android.request.id">android.request.id</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li> |
| <li |
| ><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#controls_android.request.type">android.request.type</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li> |
| <li |
| ><a href="#static_android.request.maxNumOutputRaw">android.request.maxNumOutputRaw</a></li> |
| <li |
| ><a href="#static_android.request.maxNumOutputProc">android.request.maxNumOutputProc</a></li> |
| <li |
| ><a href="#static_android.request.maxNumOutputProcStalling">android.request.maxNumOutputProcStalling</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li> |
| <li |
| ><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li> |
| <li |
| ><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li> |
| <li |
| ><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li> |
| <li |
| ><a href="#static_android.request.availableCapabilities">android.request.availableCapabilities</a></li> |
| <li |
| ><a href="#static_android.request.availableRequestKeys">android.request.availableRequestKeys</a></li> |
| <li |
| ><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li> |
| <li |
| ><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li> |
| <li |
| ><a href="#static_android.request.availableSessionKeys">android.request.availableSessionKeys</a></li> |
| <li |
| ><a href="#static_android.request.availablePhysicalCameraRequestKeys">android.request.availablePhysicalCameraRequestKeys</a></li> |
| <li |
| ><a href="#static_android.request.characteristicKeysNeedingPermission">android.request.characteristicKeysNeedingPermission</a></li> |
| <li |
| ><a href="#static_android.request.availableDynamicRangeProfiles">android.request.availableDynamicRangeProfiles</a></li> |
| <li |
| ><a href="#static_android.request.availableDynamicRangeProfilesMap">android.request.availableDynamicRangeProfilesMap</a></li> |
| <li |
| ><a href="#static_android.request.recommendedTenBitDynamicRangeProfile">android.request.recommendedTenBitDynamicRangeProfile</a></li> |
| <li |
| ><a href="#static_android.request.availableColorSpaceProfiles">android.request.availableColorSpaceProfiles</a></li> |
| <li |
| ><a href="#static_android.request.availableColorSpaceProfilesMap">android.request.availableColorSpaceProfilesMap</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li> |
| <li |
| ><a href="#dynamic_android.request.id">android.request.id</a></li> |
| <li |
| ><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li> |
| <li |
| ><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_scaler">scaler</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li> |
| <li |
| ><a href="#controls_android.scaler.rotateAndCrop">android.scaler.rotateAndCrop</a></li> |
| <li |
| ><a href="#controls_android.scaler.cropRegionSet">android.scaler.cropRegionSet</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li> |
| <li |
| ><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li> |
| <li |
| ><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li> |
| <li |
| ><a href="#static_android.scaler.availableStreamConfigurations">android.scaler.availableStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a></li> |
| <li |
| ><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a></li> |
| <li |
| ><a href="#static_android.scaler.streamConfigurationMap">android.scaler.streamConfigurationMap</a></li> |
| <li |
| ><a href="#static_android.scaler.croppingType">android.scaler.croppingType</a></li> |
| <li |
| ><a href="#static_android.scaler.availableRecommendedStreamConfigurations">android.scaler.availableRecommendedStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.scaler.availableRecommendedInputOutputFormatsMap">android.scaler.availableRecommendedInputOutputFormatsMap</a></li> |
| <li |
| ><a href="#static_android.scaler.mandatoryStreamCombinations">android.scaler.mandatoryStreamCombinations</a></li> |
| <li |
| ><a href="#static_android.scaler.mandatoryConcurrentStreamCombinations">android.scaler.mandatoryConcurrentStreamCombinations</a></li> |
| <li |
| ><a href="#static_android.scaler.availableRotateAndCropModes">android.scaler.availableRotateAndCropModes</a></li> |
| <li |
| ><a href="#static_android.scaler.defaultSecureImageSize">android.scaler.defaultSecureImageSize</a></li> |
| <li |
| ><a href="#static_android.scaler.physicalCameraMultiResolutionStreamConfigurations">android.scaler.physicalCameraMultiResolutionStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.scaler.multiResolutionStreamConfigurationMap">android.scaler.multiResolutionStreamConfigurationMap</a></li> |
| <li |
| ><a href="#static_android.scaler.availableStreamConfigurationsMaximumResolution">android.scaler.availableStreamConfigurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.scaler.availableMinFrameDurationsMaximumResolution">android.scaler.availableMinFrameDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.scaler.availableStallDurationsMaximumResolution">android.scaler.availableStallDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.scaler.streamConfigurationMapMaximumResolution">android.scaler.streamConfigurationMapMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.scaler.availableInputOutputFormatsMapMaximumResolution">android.scaler.availableInputOutputFormatsMapMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.scaler.mandatoryMaximumResolutionStreamCombinations">android.scaler.mandatoryMaximumResolutionStreamCombinations</a></li> |
| <li |
| ><a href="#static_android.scaler.mandatoryTenBitOutputStreamCombinations">android.scaler.mandatoryTenBitOutputStreamCombinations</a></li> |
| <li |
| ><a href="#static_android.scaler.mandatoryPreviewStabilizationOutputStreamCombinations">android.scaler.mandatoryPreviewStabilizationOutputStreamCombinations</a></li> |
| <li |
| ><a href="#static_android.scaler.multiResolutionStreamSupported">android.scaler.multiResolutionStreamSupported</a></li> |
| <li |
| ><a href="#static_android.scaler.availableStreamUseCases">android.scaler.availableStreamUseCases</a></li> |
| <li |
| ><a href="#static_android.scaler.mandatoryUseCaseStreamCombinations">android.scaler.mandatoryUseCaseStreamCombinations</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li> |
| <li |
| ><a href="#dynamic_android.scaler.rotateAndCrop">android.scaler.rotateAndCrop</a></li> |
| <li |
| ><a href="#dynamic_android.scaler.rawCropRegion">android.scaler.rawCropRegion</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_sensor">sensor</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li> |
| <li |
| ><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li> |
| <li |
| ><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li> |
| <li |
| ><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li> |
| <li |
| ><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li> |
| <li |
| ><a href="#controls_android.sensor.pixelMode">android.sensor.pixelMode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| |
| <li |
| ><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li> |
| <li |
| ><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li> |
| <li |
| ><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li> |
| <li |
| ><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li> |
| <li |
| ><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li> |
| <li |
| ><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li> |
| <li |
| ><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li> |
| <li |
| ><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li> |
| <li |
| ><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a></li> |
| <li |
| ><a href="#static_android.sensor.info.lensShadingApplied">android.sensor.info.lensShadingApplied</a></li> |
| <li |
| ><a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</a></li> |
| <li |
| ><a href="#static_android.sensor.info.activeArraySizeMaximumResolution">android.sensor.info.activeArraySizeMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.sensor.info.pixelArraySizeMaximumResolution">android.sensor.info.pixelArraySizeMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.sensor.info.preCorrectionActiveArraySizeMaximumResolution">android.sensor.info.preCorrectionActiveArraySizeMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.sensor.info.binningFactor">android.sensor.info.binningFactor</a></li> |
| |
| <li |
| ><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li> |
| <li |
| ><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li> |
| <li |
| ><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li> |
| <li |
| ><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li> |
| <li |
| ><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li> |
| <li |
| ><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li> |
| <li |
| ><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li> |
| <li |
| ><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li> |
| <li |
| ><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li> |
| <li |
| ><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li> |
| <li |
| ><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li> |
| <li |
| ><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li> |
| <li |
| ><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li> |
| <li |
| ><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li> |
| <li |
| ><a href="#static_android.sensor.opticalBlackRegions">android.sensor.opticalBlackRegions</a></li> |
| <li |
| ><a href="#static_android.sensor.opaqueRawSize">android.sensor.opaqueRawSize</a></li> |
| <li |
| ><a href="#static_android.sensor.opaqueRawSizeMaximumResolution">android.sensor.opaqueRawSizeMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.sensor.readoutTimestamp">android.sensor.readoutTimestamp</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.testPatternData">android.sensor.testPatternData</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.pixelMode">android.sensor.pixelMode</a></li> |
| <li |
| ><a href="#dynamic_android.sensor.rawBinningFactorUsed">android.sensor.rawBinningFactorUsed</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_shading">shading</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.shading.mode">android.shading.mode</a></li> |
| <li |
| ><a href="#controls_android.shading.strength">android.shading.strength</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.shading.mode">android.shading.mode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.shading.availableModes">android.shading.availableModes</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_statistics">statistics</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li> |
| <li |
| ><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li> |
| <li |
| ><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li> |
| <li |
| ><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li> |
| <li |
| ><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li> |
| <li |
| ><a href="#controls_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| |
| <li |
| ><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li> |
| <li |
| ><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li> |
| <li |
| ><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li> |
| <li |
| ><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li> |
| <li |
| ><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li> |
| <li |
| ><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li> |
| <li |
| ><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li> |
| <li |
| ><a href="#static_android.statistics.info.availableLensShadingMapModes">android.statistics.info.availableLensShadingMapModes</a></li> |
| <li |
| ><a href="#static_android.statistics.info.availableOisDataModes">android.statistics.info.availableOisDataModes</a></li> |
| |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.faces">android.statistics.faces</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.statistics.lensShadingCorrectionMap</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li> |
| <li |
| class="toc_deprecated" |
| ><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.oisTimestamps">android.statistics.oisTimestamps</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.oisXShifts">android.statistics.oisXShifts</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.oisYShifts">android.statistics.oisYShifts</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.oisSamples">android.statistics.oisSamples</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.lensIntrinsicsSamples">android.statistics.lensIntrinsicsSamples</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.lensIntrinsicTimestamps">android.statistics.lensIntrinsicTimestamps</a></li> |
| <li |
| ><a href="#dynamic_android.statistics.lensIntrinsicSamples">android.statistics.lensIntrinsicSamples</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li> |
| <li |
| ><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li> |
| <li |
| ><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li> |
| <li |
| ><a href="#controls_android.tonemap.curve">android.tonemap.curve</a></li> |
| <li |
| ><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li> |
| <li |
| ><a href="#controls_android.tonemap.gamma">android.tonemap.gamma</a></li> |
| <li |
| ><a href="#controls_android.tonemap.presetCurve">android.tonemap.presetCurve</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li> |
| <li |
| ><a href="#static_android.tonemap.availableToneMapModes">android.tonemap.availableToneMapModes</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li> |
| <li |
| ><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li> |
| <li |
| ><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li> |
| <li |
| ><a href="#dynamic_android.tonemap.curve">android.tonemap.curve</a></li> |
| <li |
| ><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li> |
| <li |
| ><a href="#dynamic_android.tonemap.gamma">android.tonemap.gamma</a></li> |
| <li |
| ><a href="#dynamic_android.tonemap.presetCurve">android.tonemap.presetCurve</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_led">led</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.led.transmit">android.led.transmit</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.led.transmit">android.led.transmit</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_info">info</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li> |
| <li |
| ><a href="#static_android.info.version">android.info.version</a></li> |
| <li |
| ><a href="#static_android.info.supportedBufferManagementVersion">android.info.supportedBufferManagementVersion</a></li> |
| <li |
| ><a href="#static_android.info.deviceStateSensorOrientationMap">android.info.deviceStateSensorOrientationMap</a></li> |
| <li |
| ><a href="#static_android.info.deviceStateOrientations">android.info.deviceStateOrientations</a></li> |
| <li |
| ><a href="#static_android.info.sessionConfigurationQueryVersion">android.info.sessionConfigurationQueryVersion</a></li> |
| <li |
| ><a href="#static_android.info.deviceId">android.info.deviceId</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_sync">sync</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_reprocess">reprocess</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_depth">depth</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a></li> |
| <li |
| ><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a></li> |
| <li |
| ><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a></li> |
| <li |
| ><a href="#static_android.depth.depthIsExclusive">android.depth.depthIsExclusive</a></li> |
| <li |
| ><a href="#static_android.depth.availableRecommendedDepthStreamConfigurations">android.depth.availableRecommendedDepthStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.depth.availableDynamicDepthStreamConfigurations">android.depth.availableDynamicDepthStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.depth.availableDynamicDepthMinFrameDurations">android.depth.availableDynamicDepthMinFrameDurations</a></li> |
| <li |
| ><a href="#static_android.depth.availableDynamicDepthStallDurations">android.depth.availableDynamicDepthStallDurations</a></li> |
| <li |
| ><a href="#static_android.depth.availableDepthStreamConfigurationsMaximumResolution">android.depth.availableDepthStreamConfigurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.depth.availableDepthMinFrameDurationsMaximumResolution">android.depth.availableDepthMinFrameDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.depth.availableDepthStallDurationsMaximumResolution">android.depth.availableDepthStallDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.depth.availableDynamicDepthStreamConfigurationsMaximumResolution">android.depth.availableDynamicDepthStreamConfigurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.depth.availableDynamicDepthMinFrameDurationsMaximumResolution">android.depth.availableDynamicDepthMinFrameDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.depth.availableDynamicDepthStallDurationsMaximumResolution">android.depth.availableDynamicDepthStallDurationsMaximumResolution</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_logicalMultiCamera">logicalMultiCamera</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a></li> |
| <li |
| ><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.logicalMultiCamera.activePhysicalId">android.logicalMultiCamera.activePhysicalId</a></li> |
| <li |
| ><a href="#dynamic_android.logicalMultiCamera.activePhysicalSensorCropRegion">android.logicalMultiCamera.activePhysicalSensorCropRegion</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_distortionCorrection">distortionCorrection</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_heic">heic</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| |
| <li |
| ><a href="#static_android.heic.info.supported">android.heic.info.supported</a></li> |
| <li |
| ><a href="#static_android.heic.info.maxJpegAppSegmentsCount">android.heic.info.maxJpegAppSegmentsCount</a></li> |
| |
| <li |
| ><a href="#static_android.heic.availableHeicStreamConfigurations">android.heic.availableHeicStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.heic.availableHeicMinFrameDurations">android.heic.availableHeicMinFrameDurations</a></li> |
| <li |
| ><a href="#static_android.heic.availableHeicStallDurations">android.heic.availableHeicStallDurations</a></li> |
| <li |
| ><a href="#static_android.heic.availableHeicStreamConfigurationsMaximumResolution">android.heic.availableHeicStreamConfigurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.heic.availableHeicMinFrameDurationsMaximumResolution">android.heic.availableHeicMinFrameDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.heic.availableHeicStallDurationsMaximumResolution">android.heic.availableHeicStallDurationsMaximumResolution</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_automotive">automotive</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| |
| <li |
| ><a href="#static_android.automotive.lens.facing">android.automotive.lens.facing</a></li> |
| |
| <li |
| ><a href="#static_android.automotive.location">android.automotive.location</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_extension">extension</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.extension.strength">android.extension.strength</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.extension.currentType">android.extension.currentType</a></li> |
| <li |
| ><a href="#dynamic_android.extension.strength">android.extension.strength</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_jpegr">jpegr</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.jpegr.availableJpegRStreamConfigurations">android.jpegr.availableJpegRStreamConfigurations</a></li> |
| <li |
| ><a href="#static_android.jpegr.availableJpegRMinFrameDurations">android.jpegr.availableJpegRMinFrameDurations</a></li> |
| <li |
| ><a href="#static_android.jpegr.availableJpegRStallDurations">android.jpegr.availableJpegRStallDurations</a></li> |
| <li |
| ><a href="#static_android.jpegr.availableJpegRStreamConfigurationsMaximumResolution">android.jpegr.availableJpegRStreamConfigurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.jpegr.availableJpegRMinFrameDurationsMaximumResolution">android.jpegr.availableJpegRMinFrameDurationsMaximumResolution</a></li> |
| <li |
| ><a href="#static_android.jpegr.availableJpegRStallDurationsMaximumResolution">android.jpegr.availableJpegRStallDurationsMaximumResolution</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_efv">efv</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#static_android.efv.paddingZoomFactorRange">android.efv.paddingZoomFactorRange</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#controls_android.efv.paddingZoomFactor">android.efv.paddingZoomFactor</a></li> |
| <li |
| ><a href="#controls_android.efv.autoZoom">android.efv.autoZoom</a></li> |
| <li |
| ><a href="#controls_android.efv.maxPaddingZoomFactor">android.efv.maxPaddingZoomFactor</a></li> |
| <li |
| ><a href="#controls_android.efv.stabilizationMode">android.efv.stabilizationMode</a></li> |
| <li |
| ><a href="#controls_android.efv.translateViewport">android.efv.translateViewport</a></li> |
| <li |
| ><a href="#controls_android.efv.rotateViewport">android.efv.rotateViewport</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li |
| ><a href="#dynamic_android.efv.paddingRegion">android.efv.paddingRegion</a></li> |
| <li |
| ><a href="#dynamic_android.efv.autoZoomPaddingRegion">android.efv.autoZoomPaddingRegion</a></li> |
| <li |
| ><a href="#dynamic_android.efv.targetCoordinates">android.efv.targetCoordinates</a></li> |
| <li |
| ><a href="#dynamic_android.efv.paddingZoomFactor">android.efv.paddingZoomFactor</a></li> |
| <li |
| ><a href="#dynamic_android.efv.stabilizationMode">android.efv.stabilizationMode</a></li> |
| <li |
| ><a href="#dynamic_android.efv.autoZoom">android.efv.autoZoom</a></li> |
| <li |
| ><a href="#dynamic_android.efv.rotateViewport">android.efv.rotateViewport</a></li> |
| <li |
| ><a href="#dynamic_android.efv.translateViewport">android.efv.translateViewport</a></li> |
| <li |
| ><a href="#dynamic_android.efv.maxPaddingZoomFactor">android.efv.maxPaddingZoomFactor</a></li> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| </ul> |
| |
| |
| <h1>Properties</h1> |
| <table class="properties"> |
| |
| <thead class="thead_dummy"> |
| <tr> |
| <th class="th_name">Property Name</th> |
| <th class="th_type">Type</th> |
| <th class="th_description">Description</th> |
| <th class="th_units">Units</th> |
| <th class="th_range">Range</th> |
| <th class="th_hal_version">HIDL HAL version</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> <!-- so that the first occurrence of thead is not |
| above the first occurrence of tr --> |
| <!-- <namespace name="android"> --> |
| <tr><td colspan="7" id="section_colorCorrection" class="section">colorCorrection</td></tr> |
| |
| |
| <tr><td colspan="7" class="kind">controls</td></tr> |
| |
| <thead class="entries_header"> |
| <tr> |
| <th class="th_name">Property Name</th> |
| <th class="th_type">Type</th> |
| <th class="th_description">Description</th> |
| <th class="th_units">Units</th> |
| <th class="th_range">Range</th> |
| <th class="th_hal_version">Initial HIDL HAL version</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.mode"> |
| <td class="entry_name |
| " rowspan="5"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>mode |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[full] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix |
| and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p> |
| <p>All advanced white balance adjustments (not specified |
| by our white balance pipeline) must be disabled.<wbr/></p> |
| <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 |
| TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override |
| this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Color correction processing must not slow down |
| capture rate relative to sensor raw output.<wbr/></p> |
| <p>Advanced white balance adjustments above and beyond |
| the specified white balance pipeline may be applied.<wbr/></p> |
| <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 |
| the camera device uses the last frame's AWB values |
| (or defaults if AWB has never been run).<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Color correction processing operates at improved |
| quality but the capture rate might be reduced (relative to sensor |
| raw output rate)</p> |
| <p>Advanced white balance adjustments above and beyond |
| the specified white balance pipeline may be applied.<wbr/></p> |
| <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 |
| the camera device uses the last frame's AWB values |
| (or defaults if AWB has never been run).<wbr/></p></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>The mode control selects how the image data is converted from the |
| sensor's native color into linear sRGB color.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <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 |
| control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the |
| application controls how the color mapping is performed.<wbr/></p> |
| <p>We define the expected processing pipeline below.<wbr/> For consistency |
| across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p> |
| <p>When either FAST or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may |
| do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and |
| <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the |
| camera device (in the results) and be roughly correct.<wbr/></p> |
| <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from |
| FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point |
| as what was produced by the camera device in the earlier frame.<wbr/></p> |
| <p>The expected processing pipeline is as follows:</p> |
| <p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p> |
| <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance |
| gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform |
| matrix (applied after demosaic).<wbr/></p> |
| <p>The 4-channel white-balance gains are defined as:</p> |
| <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ] |
| </code></pre> |
| <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the |
| output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/> |
| These may be identical for a given camera device implementation; if |
| the camera device does not support a separate gain for even/<wbr/>odd green |
| channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to |
| <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p> |
| <p>The matrices for color transforms are defined as a 9-entry vector:</p> |
| <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 ] |
| </code></pre> |
| <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/> |
| to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p> |
| <p>with colors as follows:</p> |
| <pre><code>r' = I0r + I1g + I2b |
| g' = I3r + I4g + I5b |
| b' = I6r + I7g + I8b |
| </code></pre> |
| <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow |
| values are clipped to fit within the range.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">HAL Implementation Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available |
| on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/> |
| That is,<wbr/> if the highest quality implementation on the camera device does not slow down |
| capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.transform"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>transform |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 x 3 |
| </span> |
| <span class="entry_type_visibility"> [public as colorSpaceTransform]</span> |
| |
| |
| <span class="entry_type_hwlevel">[full] </span> |
| |
| |
| <div class="entry_type_notes">3x3 rational matrix in row-major order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>A color transform matrix to use to transform |
| from sensor RGB color space to output linear sRGB color space.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| Unitless scale factors |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>This matrix is either set by the camera device when the request |
| <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or |
| directly by the application in the request when the |
| <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p> |
| <p>In the latter case,<wbr/> the camera device may round the matrix to account |
| for precision issues; the final rounded matrix should be reported back |
| in this matrix result metadata.<wbr/> The transform should keep the magnitude |
| of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color |
| values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p> |
| <p>The valid range of each matrix element varies on different devices,<wbr/> but |
| values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p> |
| </td> |
| </tr> |
| |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.gains"> |
| <td class="entry_name |
| " rowspan="5"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>gains |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 4 |
| </span> |
| <span class="entry_type_visibility"> [public as rggbChannelVector]</span> |
| |
| |
| <span class="entry_type_hwlevel">[full] </span> |
| |
| |
| <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>Gains applying to Bayer raw color channels for |
| white-balance.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| Unitless gain factors |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>These per-channel gains are either set by the camera device |
| when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not |
| TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the |
| request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is |
| TRANSFORM_<wbr/>MATRIX.<wbr/></p> |
| <p>The gains in the result metadata are the gains actually |
| applied by the camera device to the current frame.<wbr/></p> |
| <p>The valid range of gains varies on different devices,<wbr/> but gains |
| between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given |
| device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because |
| this can create color artifacts.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">HAL Implementation Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>The 4-channel white-balance gains are defined in |
| the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain |
| for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code> |
| is the gain for green pixels on the odd rows.<wbr/></p> |
| <p>If a HAL does not support a separate gain for even/<wbr/>odd green |
| channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write |
| <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.aberrationMode"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate |
| relative to sensor raw output.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be |
| reduced (relative to sensor raw output rate)</p></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light |
| can not focus on the same point after exiting from the lens.<wbr/> This metadata defines |
| the high level control of chromatic aberration correction algorithm,<wbr/> which aims to |
| minimize the chromatic artifacts that may occur along the object boundaries in an |
| image.<wbr/></p> |
| <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration |
| correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will |
| use the highest-quality aberration correction algorithms,<wbr/> even if it slows down |
| capture rate.<wbr/> FAST means the camera device will not slow down capture rate when |
| applying aberration correction.<wbr/></p> |
| <p>LEGACY devices will always be in FAST mode.<wbr/></p> |
| </td> |
| </tr> |
| |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| <tr><td colspan="7" class="kind">dynamic</td></tr> |
| |
| <thead class="entries_header"> |
| <tr> |
| <th class="th_name">Property Name</th> |
| <th class="th_type">Type</th> |
| <th class="th_description">Description</th> |
| <th class="th_units">Units</th> |
| <th class="th_range">Range</th> |
| <th class="th_hal_version">Initial HIDL HAL version</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.colorCorrection.mode"> |
| <td class="entry_name |
| " rowspan="5"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>mode |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[full] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix |
| and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p> |
| <p>All advanced white balance adjustments (not specified |
| by our white balance pipeline) must be disabled.<wbr/></p> |
| <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 |
| TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override |
| this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Color correction processing must not slow down |
| capture rate relative to sensor raw output.<wbr/></p> |
| <p>Advanced white balance adjustments above and beyond |
| the specified white balance pipeline may be applied.<wbr/></p> |
| <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 |
| the camera device uses the last frame's AWB values |
| (or defaults if AWB has never been run).<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Color correction processing operates at improved |
| quality but the capture rate might be reduced (relative to sensor |
| raw output rate)</p> |
| <p>Advanced white balance adjustments above and beyond |
| the specified white balance pipeline may be applied.<wbr/></p> |
| <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 |
| the camera device uses the last frame's AWB values |
| (or defaults if AWB has never been run).<wbr/></p></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>The mode control selects how the image data is converted from the |
| sensor's native color into linear sRGB color.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <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 |
| control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the |
| application controls how the color mapping is performed.<wbr/></p> |
| <p>We define the expected processing pipeline below.<wbr/> For consistency |
| across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p> |
| <p>When either FAST or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may |
| do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and |
| <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the |
| camera device (in the results) and be roughly correct.<wbr/></p> |
| <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from |
| FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point |
| as what was produced by the camera device in the earlier frame.<wbr/></p> |
| <p>The expected processing pipeline is as follows:</p> |
| <p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p> |
| <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance |
| gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform |
| matrix (applied after demosaic).<wbr/></p> |
| <p>The 4-channel white-balance gains are defined as:</p> |
| <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ] |
| </code></pre> |
| <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the |
| output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/> |
| These may be identical for a given camera device implementation; if |
| the camera device does not support a separate gain for even/<wbr/>odd green |
| channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to |
| <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p> |
| <p>The matrices for color transforms are defined as a 9-entry vector:</p> |
| <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 ] |
| </code></pre> |
| <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/> |
| to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p> |
| <p>with colors as follows:</p> |
| <pre><code>r' = I0r + I1g + I2b |
| g' = I3r + I4g + I5b |
| b' = I6r + I7g + I8b |
| </code></pre> |
| <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow |
| values are clipped to fit within the range.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">HAL Implementation Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available |
| on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/> |
| That is,<wbr/> if the highest quality implementation on the camera device does not slow down |
| capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.colorCorrection.transform"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>transform |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 x 3 |
| </span> |
| <span class="entry_type_visibility"> [public as colorSpaceTransform]</span> |
| |
| |
| <span class="entry_type_hwlevel">[full] </span> |
| |
| |
| <div class="entry_type_notes">3x3 rational matrix in row-major order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>A color transform matrix to use to transform |
| from sensor RGB color space to output linear sRGB color space.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| Unitless scale factors |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>This matrix is either set by the camera device when the request |
| <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or |
| directly by the application in the request when the |
| <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p> |
| <p>In the latter case,<wbr/> the camera device may round the matrix to account |
| for precision issues; the final rounded matrix should be reported back |
| in this matrix result metadata.<wbr/> The transform should keep the magnitude |
| of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color |
| values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p> |
| <p>The valid range of each matrix element varies on different devices,<wbr/> but |
| values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p> |
| </td> |
| </tr> |
| |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.colorCorrection.gains"> |
| <td class="entry_name |
| " rowspan="5"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>gains |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 4 |
| </span> |
| <span class="entry_type_visibility"> [public as rggbChannelVector]</span> |
| |
| |
| <span class="entry_type_hwlevel">[full] </span> |
| |
| |
| <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>Gains applying to Bayer raw color channels for |
| white-balance.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| Unitless gain factors |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>These per-channel gains are either set by the camera device |
| when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not |
| TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the |
| request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is |
| TRANSFORM_<wbr/>MATRIX.<wbr/></p> |
| <p>The gains in the result metadata are the gains actually |
| applied by the camera device to the current frame.<wbr/></p> |
| <p>The valid range of gains varies on different devices,<wbr/> but gains |
| between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given |
| device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because |
| this can create color artifacts.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">HAL Implementation Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>The 4-channel white-balance gains are defined in |
| the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain |
| for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code> |
| is the gain for green pixels on the odd rows.<wbr/></p> |
| <p>If a HAL does not support a separate gain for even/<wbr/>odd green |
| channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write |
| <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.colorCorrection.aberrationMode"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate |
| relative to sensor raw output.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be |
| reduced (relative to sensor raw output rate)</p></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light |
| can not focus on the same point after exiting from the lens.<wbr/> This metadata defines |
| the high level control of chromatic aberration correction algorithm,<wbr/> which aims to |
| minimize the chromatic artifacts that may occur along the object boundaries in an |
| image.<wbr/></p> |
| <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration |
| correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will |
| use the highest-quality aberration correction algorithms,<wbr/> even if it slows down |
| capture rate.<wbr/> FAST means the camera device will not slow down capture rate when |
| applying aberration correction.<wbr/></p> |
| <p>LEGACY devices will always be in FAST mode.<wbr/></p> |
| </td> |
| </tr> |
| |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| <tr><td colspan="7" class="kind">static</td></tr> |
| |
| <thead class="entries_header"> |
| <tr> |
| <th class="th_name">Property Name</th> |
| <th class="th_type">Type</th> |
| <th class="th_description">Description</th> |
| <th class="th_units">Units</th> |
| <th class="th_range">Range</th> |
| <th class="th_hal_version">Initial HIDL HAL version</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.colorCorrection.availableAberrationModes"> |
| <td class="entry_name |
| " rowspan="5"> |
| android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public as enumList]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| <div class="entry_type_notes">list of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <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 |
| supported by this camera device.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| <p>Any value listed in <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></p> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <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 |
| aberration correction modes are available for a device,<wbr/> this list will solely include |
| OFF mode.<wbr/> All camera devices will support either OFF or FAST mode.<wbr/></p> |
| <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list |
| OFF mode.<wbr/> This includes all FULL level devices.<wbr/></p> |
| <p>LEGACY devices will always only support FAST mode.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">HAL Implementation Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if chromatic aberration control is available |
| on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/> |
| That is,<wbr/> if the highest quality implementation on the camera device does not slow down |
| capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_control" class="section">control</td></tr> |
| |
| |
| <tr><td colspan="7" class="kind">controls</td></tr> |
| |
| <thead class="entries_header"> |
| <tr> |
| <th class="th_name">Property Name</th> |
| <th class="th_type">Type</th> |
| <th class="th_description">Description</th> |
| <th class="th_units">Units</th> |
| <th class="th_range">Range</th> |
| <th class="th_hal_version">Initial HIDL HAL version</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.control.aeAntibandingMode"> |
| <td class="entry_name |
| " rowspan="5"> |
| android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to |
| avoid banding problems.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">50HZ (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to |
| avoid banding problems with 50Hz illumination sources.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">60HZ (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to |
| avoid banding problems with 60Hz illumination |
| sources.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its |
| antibanding routine to the current illumination |
| condition.<wbr/> This is the default mode if AUTO is |
| available on given camera device.<wbr/></p></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>The desired setting for the camera device's auto-exposure |
| algorithm's antibanding compensation.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent |
| lights,<wbr/> flicker at the rate of the power supply frequency |
| (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is |
| typically not noticeable to a person,<wbr/> it can be visible to |
| a camera device.<wbr/> If a camera sets its exposure time to the |
| wrong value,<wbr/> the flicker may become visible in the |
| viewfinder as flicker or in a final captured image,<wbr/> as a |
| set of variable-brightness bands across the image.<wbr/></p> |
| <p>Therefore,<wbr/> the auto-exposure routines of camera devices |
| include antibanding routines that ensure that the chosen |
| exposure value will not cause such banding.<wbr/> The choice of |
| exposure time depends on the rate of flicker,<wbr/> which the |
| camera device can detect automatically,<wbr/> or the expected |
| rate can be selected by the application using this |
| control.<wbr/></p> |
| <p>A given camera device may not support all of the possible |
| options for the antibanding mode.<wbr/> The |
| <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains |
| the available modes for a given camera device.<wbr/></p> |
| <p>AUTO mode is the default if it is available on given |
| camera device.<wbr/> When AUTO mode is not available,<wbr/> the |
| default will be either 50HZ or 60HZ,<wbr/> and both 50HZ |
| and 60HZ will be available.<wbr/></p> |
| <p>If manual exposure control is enabled (by setting |
| <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/> |
| then this setting has no effect,<wbr/> and the application must |
| ensure it selects exposure times that do not cause banding |
| issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist |
| the application in this.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">HAL Implementation Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>For all capture request templates,<wbr/> this field must be set |
| to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/> |
| the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and |
| 60HZ must be available.<wbr/></p> |
| <p>If manual exposure control is enabled (by setting |
| <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/> |
| then the exposure values provided by the application must not be |
| adjusted for antibanding.<wbr/></p> |
| </td> |
| </tr> |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeExposureCompensation"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>Adjustment to auto-exposure (AE) target image |
| brightness.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| Compensation steps |
| </td> |
| |
| <td class="entry_range"> |
| <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>The adjustment is measured as a count of steps,<wbr/> with the |
| step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the |
| allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p> |
| <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6' |
| will mean an exposure compensation of +2 EV; -3 will mean an |
| exposure compensation of -1 EV.<wbr/> One EV represents a doubling |
| of image brightness.<wbr/> Note that this control will only be |
| effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control |
| will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p> |
| <p>In the event of exposure compensation value being changed,<wbr/> camera device |
| may take several frames to reach the newly requested exposure target.<wbr/> |
| During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING |
| state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will |
| change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or |
| FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p> |
| </td> |
| </tr> |
| |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeLock"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>control.<wbr/>ae<wbr/>Lock |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public as boolean]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm |
| is free to update its parameters.<wbr/></p></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm |
| must not update the exposure and sensitivity parameters |
| while the lock is active.<wbr/></p> |
| <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes |
| will still take effect while auto-exposure is locked.<wbr/></p> |
| <p>Some rare LEGACY devices may not support |
| this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| <p>Whether auto-exposure (AE) is currently locked to its latest |
| calculated values.<wbr/></p> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_hal_version"> |
| <p>3.<wbr/>2</p> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> |
| <tr class="entries_header"> |
| <th class="th_details" colspan="6">Details</th> |
| </tr> |
| <tr class="entry_cont"> |
| <td class="entry_details" colspan="6"> |
| <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/> |
| and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p> |
| <p>Note that even when AE is locked,<wbr/> the flash may be fired if |
| the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> |
| ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p> |
| <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 |
| is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p> |
| <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) |
| when AE is already locked,<wbr/> the camera device will not change the exposure time |
| (<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>) |
| parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> |
| is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the |
| <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/> |
| Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p> |
| <p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock |
| the AE if AE is locked by the camera device internally during precapture metering |
| sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an |
| ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence |
| will never succeed in a sequence of preview requests where AE lock is always set |
| to <code>false</code>.<wbr/></p> |
| <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that |
| get locked do not necessarily correspond to the settings that were present in the |
| latest capture result received from the camera device,<wbr/> since additional captures |
| and AE updates may have occurred even before the result was sent out.<wbr/> If an |
| application is switching between automatic and manual control and wishes to eliminate |
| any flicker during the switch,<wbr/> the following procedure is recommended:</p> |
| <ol> |
| <li>Starting in auto-AE mode:</li> |
| <li>Lock AE</li> |
| <li>Wait for the first result to be output that has the AE locked</li> |
| <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li> |
| <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li> |
| </ol> |
| <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> |
| </td> |
| </tr> |
| |
| |
| <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr> |
| <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeMode"> |
| <td class="entry_name |
| " rowspan="3"> |
| android.<wbr/>control.<wbr/>ae<wbr/>Mode |
| </td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| <span class="entry_type_hwlevel">[legacy] </span> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF (v3.2)</span> |
| <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p> |
| <p>The application-selected <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> and |
| <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera |
| device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's |
| |