| <!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.0 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 } |
| .entries_header { background-color: #dddddd; text-align: center} |
| |
| /* toc style */ |
| .toc_section_header { font-size:1.3em; } |
| .toc_kind_header { font-size:1.2em; } |
| |
| /* 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_notes { width: 25% } |
| .th_type { width: 20% } |
| .th_description { width: 20% } |
| .th_range { width: 10% } |
| 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; } |
| |
| /* 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_enum_name { font-family: monospace; font-weight: bolder; } |
| .entry_type_enum_notes:before { content:" - " } |
| .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 visibility flair */ |
| |
| /* Entry tags flair */ |
| .entry_tags ul { list-style-type: none; } |
| |
| |
| /* 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.0 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> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li> |
| <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</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> |
| </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.sceneModeOverrides">android.control.sceneModeOverrides</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li> |
| <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</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.afState">android.control.afState</a></li> |
| <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</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.awbState">android.control.awbState</a></li> |
| <li><a href="#dynamic_android.control.mode">android.control.mode</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">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> |
| </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.colorTemperature">android.flash.colorTemperature</a></li> |
| <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</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> |
| </ul> |
| </li> |
| </ul> <!-- toc_section --> |
| </li> |
| <li> |
| <span class="toc_section_header"><a href="#section_geometric">geometric</a></span> |
| <ul class="toc_section"> |
| <li> |
| <span class="toc_kind_header">controls</span> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li> |
| <li><a href="#controls_android.geometric.strength">android.geometric.strength</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.info.map">android.hotPixel.info.map</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.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.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.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li> |
| <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</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.facing">android.lens.facing</a></li> |
| <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li> |
| <li><a href="#static_android.lens.position">android.lens.position</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> |
| </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">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><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li> |
| <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li> |
| <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li> |
| <li><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><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><a href="#controls_android.request.frameCount">android.request.frameCount</a></li> |
| <li><a href="#controls_android.request.id">android.request.id</a></li> |
| <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li> |
| <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li> |
| <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li> |
| <li><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.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">dynamic</span> |
| <ul class="toc_section"> |
| <li><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><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</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> |
| </ul> |
| </li> |
| <li> |
| <span class="toc_kind_header">static</span> |
| <ul class="toc_section"> |
| <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li> |
| <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li> |
| <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li> |
| <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li> |
| <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li> |
| <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li> |
| <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li> |
| <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</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> |
| </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> |
| </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.baseGainFactor">android.sensor.baseGainFactor</a></li> |
| <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</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.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li> |
| <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li> |
| <li><a href="#static_android.sensor.orientation">android.sensor.orientation</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> |
| </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> |
| </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> |
| </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.lensShadingMapMode">android.statistics.lensShadingMapMode</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> |
| |
| </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.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.lensShadingMap">android.statistics.lensShadingMap</a></li> |
| <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li> |
| <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li> |
| <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</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.mode">android.tonemap.mode</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> |
| </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.mode">android.tonemap.mode</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> |
| </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> |
| </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_notes">Notes</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.mode"> |
| <td class="entry_name">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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">TRANSFORM_MATRIX</span> |
| <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix |
| and android.<wbr>color<wbr>Correction.<wbr>gains to do color conversion</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When android.<wbr>control.<wbr>awb<wbr>Mode is not OFF,<wbr> TRANSFORM_<wbr>MATRIX |
| should be ignored.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.transform"> |
| <td class="entry_name">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]</span> |
| <div class="entry_type_notes">3x3 rational matrix in row-major order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A color transform matrix to use to transform |
| from sensor RGB color space to output linear sRGB color space |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Output values are expected to be in the range |
| (0,<wbr>1) |
| </td> |
| |
| <td class="entry_notes"> |
| This matrix is either set by HAL when the request |
| android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or |
| directly by the application in the request when the |
| android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr> |
| <br> |
| <br> In the latter case,<wbr> the HAL may round the matrix to account |
| for precision issues; the final rounded matrix should be |
| reported back in this matrix result metadata.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.colorCorrection.gains"> |
| <td class="entry_name">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]</span> |
| <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Gains applying to Bayer color channels for |
| white-balance |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| The 4-channel white-balance gains are defined in |
| the order of [R G_<wbr>even G_<wbr>odd B],<wbr> where G_<wbr>even is the gain |
| for green pixels on even rows of the output,<wbr> and G_<wbr>odd |
| is the gain for greenpixels on the odd rows.<wbr> if a HAL |
| does not support a separate gain for even/<wbr>odd green channels,<wbr> |
| it should use the G_<wbr>even value,<wbr>and write G_<wbr>odd equal to |
| G_<wbr>even in the output result metadata.<wbr> |
| <br> |
| <br> This array is either set by HAL when the request |
| android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or |
| directly by the application in the request when the |
| android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr> |
| <br> |
| <br> The ouput should be the gains actually applied by the HAL to |
| the current frame.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.colorCorrection.transform"> |
| <td class="entry_name">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]</span> |
| <div class="entry_type_notes">3x3 rational matrix in row-major order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A color transform matrix to use to transform |
| from sensor RGB color space to output linear sRGB color space |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Output values are expected to be in the range |
| (0,<wbr>1) |
| </td> |
| |
| <td class="entry_notes"> |
| This matrix is either set by HAL when the request |
| android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or |
| directly by the application in the request when the |
| android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr> |
| <br> |
| <br> In the latter case,<wbr> the HAL may round the matrix to account |
| for precision issues; the final rounded matrix should be |
| reported back in this matrix result metadata.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.colorCorrection.gains"> |
| <td class="entry_name">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]</span> |
| <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Gains applying to Bayer color channels for |
| white-balance |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| The 4-channel white-balance gains are defined in |
| the order of [R G_<wbr>even G_<wbr>odd B],<wbr> where G_<wbr>even is the gain |
| for green pixels on even rows of the output,<wbr> and G_<wbr>odd |
| is the gain for greenpixels on the odd rows.<wbr> if a HAL |
| does not support a separate gain for even/<wbr>odd green channels,<wbr> |
| it should use the G_<wbr>even value,<wbr>and write G_<wbr>odd equal to |
| G_<wbr>even in the output result metadata.<wbr> |
| <br> |
| <br> This array is either set by HAL when the request |
| android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or |
| directly by the application in the request when the |
| android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr> |
| <br> |
| <br> The ouput should be the gains actually applied by the HAL to |
| the current frame.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.control.aeAntibandingMode"> |
| <td class="entry_name">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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">50HZ</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">60HZ</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Enum for controlling |
| antibanding |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| |
| android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeExposureCompensation"> |
| <td class="entry_name">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> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Adjustment to AE target image |
| brightness |
| </td> |
| |
| <td class="entry_units"> |
| count of positive/<wbr>negative EV steps |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| For example,<wbr> if EV step is 0.<wbr>333,<wbr> '6' will mean an |
| exposure compensation of +2 EV; -3 will mean an exposure |
| compensation of -1 |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeLock"> |
| <td class="entry_name">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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Autoexposure lock is disabled; the AE algorithm |
| is free to update its parameters.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| <span class="entry_type_enum_notes">Autoexposure lock is enabled; the AE algorithm |
| must not update the exposure and sensitivity parameters |
| while the lock is active</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AE is currently locked to its latest |
| calculated values |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Note that even when AE is locked,<wbr> the flash may be |
| fired if the AE mode is ON_<wbr>AUTO_<wbr>FLASH /<wbr> ON_<wbr>ALWAYS_<wbr>FLASH /<wbr> |
| ON_<wbr>AUTO_<wbr>FLASH_<wbr>REDEYE.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeMode"> |
| <td class="entry_name">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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Autoexposure is disabled; sensor.<wbr>exposureTime,<wbr> |
| sensor.<wbr>sensitivity and sensor.<wbr>frameDuration are used</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| <span class="entry_type_enum_notes">Autoexposure is active,<wbr> no flash |
| control</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON_AUTO_FLASH</span> |
| <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto |
| flash control; flash may be fired when precapture |
| trigger is activated,<wbr> and for captures for which |
| captureIntent = STILL_<wbr>CAPTURE</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span> |
| <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto |
| flash control for precapture trigger and always flash |
| when captureIntent = STILL_<wbr>CAPTURE</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span> |
| <span class="entry_type_enum_notes">optional Automatic red eye reduction with flash.<wbr> |
| If deemed necessary,<wbr> red eye reduction sequence should |
| fire when precapture trigger is activated,<wbr> and final |
| flash should fire when captureIntent = |
| STILL_<wbr>CAPTURE</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AE is currently updating the sensor |
| exposure and sensitivity fields |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| Only effective if android.<wbr>control.<wbr>mode = |
| AUTO |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 5 x area_count |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of areas to use for |
| metering |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> |
| xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the |
| specified coordinates.<wbr> |
| <br> |
| <br> The coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the |
| bottom-right pixel in the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> |
| <br> |
| <br> If all regions have 0 weight,<wbr> then no specific metering area |
| needs to be used by the HAL.<wbr> If the metering region is |
| outside the current android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL |
| should ignore the sections outside the region and output the |
| used sections in the frame metadata |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aeTargetFpsRange"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Target<wbr>Fps<wbr>Range</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Range over which fps can be adjusted to |
| maintain exposure |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges |
| </td> |
| |
| <td class="entry_notes"> |
| Only constrains AE algorithm,<wbr> not manual control |
| of android.<wbr>sensor.<wbr>exposure<wbr>Time |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.aePrecaptureTrigger"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Trigger</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">IDLE</span> |
| <span class="entry_type_enum_notes">The trigger is idle.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">START</span> |
| <span class="entry_type_enum_notes">The precapture metering sequence |
| must be started.<wbr> The exact effect of the precapture |
| trigger depends on the current AE mode and |
| state.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether the HAL must trigger precapture |
| metering.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| This entry is normally set to IDLE,<wbr> or is not |
| included at all in the request settings.<wbr> When included and |
| set to START,<wbr> the HAL must trigger the autoexposure |
| precapture metering sequence.<wbr> |
| <br> |
| <br> The effect of AE precapture trigger depends on the current |
| AE mode and state; see the camera HAL device v3 header for |
| details.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.afMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">The 3A routines do not control the lens; |
| android.<wbr>lens.<wbr>focus<wbr>Distance is controlled by the |
| application</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> |
| |
| Use android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens |
| is fixed focus In this mode,<wbr> the lens does not move unless |
| the autofocus trigger action is called.<wbr> When that trigger |
| is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then to |
| the outcome of the scan (FOCUSED or |
| NOT_<wbr>FOCUSED).<wbr> |
| |
| Triggering cancel AF resets the lens position to default,<wbr> |
| and sets the AF state to INACTIVE.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">MACRO</span> |
| <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the |
| autofocus trigger action is called.<wbr> |
| |
| When that trigger is activated,<wbr> AF must transition to |
| ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED or |
| NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens |
| position to default,<wbr> and sets the AF state to |
| INACTIVE.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span> |
| <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens |
| position continually to attempt to provide a |
| constantly-in-focus image stream.<wbr> |
| |
| The focusing behavior should be suitable for good quality |
| video recording; typically this means slower focus |
| movement and no overshoots.<wbr> When the AF trigger is not |
| involved,<wbr> the AF algorithm should start in INACTIVE state,<wbr> |
| and then transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED |
| states as appropriate.<wbr> When the AF trigger is activated,<wbr> |
| the algorithm should immediately transition into |
| AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the |
| lens position until a cancel AF trigger is received.<wbr> |
| |
| Once cancel is received,<wbr> the algorithm should transition |
| back to INACTIVE and resume passive scan.<wbr> Note that this |
| behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr> since an |
| ongoing PASSIVE_<wbr>SCAN must immediately be |
| canceled.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span> |
| <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens |
| position continually to attempt to provide a |
| constantly-in-focus image stream.<wbr> |
| |
| The focusing behavior should be suitable for still image |
| capture; typically this means focusing as fast as |
| possible.<wbr> When the AF trigger is not involved,<wbr> the AF |
| algorithm should start in INACTIVE state,<wbr> and then |
| transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as |
| appropriate as it attempts to maintain focus.<wbr> When the AF |
| trigger is activated,<wbr> the algorithm should finish its |
| PASSIVE_<wbr>SCAN if active,<wbr> and then transition into |
| AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the |
| lens position until a cancel AF trigger is received.<wbr> |
| |
| When the AF cancel trigger is activated,<wbr> the algorithm |
| should transition back to INACTIVE and then act as if it |
| has just been started.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">EDOF</span> |
| <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF |
| trigger is ignored,<wbr> AF state should always be |
| INACTIVE.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AF is currently enabled,<wbr> and what |
| mode it is set to |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.afRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 5 x area_count |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of areas to use for focus |
| estimation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> |
| xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the |
| specified coordinates.<wbr> |
| <br> |
| <br> The coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the |
| bottom-right pixel in the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> |
| <br> |
| <br> If all regions have 0 weight,<wbr> then no specific focus area |
| needs to be used by the HAL.<wbr> If the focusing region is |
| outside the current android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL |
| should ignore the sections outside the region and output the |
| used sections in the frame metadata |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.afTrigger"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">IDLE</span> |
| <span class="entry_type_enum_notes">The trigger is idle.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">START</span> |
| <span class="entry_type_enum_notes">Autofocus must trigger now.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CANCEL</span> |
| <span class="entry_type_enum_notes">Autofocus must return to initial |
| state,<wbr> and cancel any active trigger.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether the HAL must trigger autofocus.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| This entry is normally set to IDLE,<wbr> or is not |
| included at all in the request settings.<wbr> |
| <br> |
| <br> When included and set to START,<wbr> the HAL must trigger the |
| autofocus algorithm.<wbr> The effect of AF trigger depends on the |
| current AF mode and state; see the camera HAL device v3 |
| header for details.<wbr> When set to CANCEL,<wbr> the HAL must cancel |
| any active trigger,<wbr> and return to initial AF state.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.awbLock"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Auto-whitebalance lock is disabled; the AWB |
| algorithm is free to update its parameters if in AUTO |
| mode.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| <span class="entry_type_enum_notes">Auto-whitebalance lock is enabled; the AWB |
| algorithm must not update the exposure and sensitivity |
| parameters while the lock is active</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AWB is currently locked to its |
| latest calculated values |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Note that AWB lock is only meaningful for AUTO |
| mode; in other modes,<wbr> AWB is already fixed to a specific |
| setting |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.awbMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">INCANDESCENT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FLUORESCENT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">WARM_FLUORESCENT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">DAYLIGHT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">TWILIGHT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SHADE</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AWB is currently setting the color |
| transform fields,<wbr> and what its illumination target |
| is |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| [BC - AWB lock,<wbr>AWB modes] |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| <li><a href="#tag_AWB">AWB</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.awbRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 5 x area_count |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of areas to use for illuminant |
| estimation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Only used in AUTO mode.<wbr> |
| <br> |
| <br> Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> |
| xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the |
| specified coordinates.<wbr> |
| <br> |
| <br> The coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the |
| bottom-right pixel in the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> |
| <br> |
| <br> If all regions have 0 weight,<wbr> then no specific metering area |
| needs to be used by the HAL.<wbr> If the metering region is |
| outside the current android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL |
| should ignore the sections outside the region and output the |
| used sections in the frame metadata |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.captureIntent"> |
| <td class="entry_name">android.<wbr>control.<wbr>capture<wbr>Intent</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">CUSTOM</span> |
| <span class="entry_type_enum_notes">This request doesn't fall into the other |
| categories.<wbr> Default to preview-like |
| behavior.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PREVIEW</span> |
| <span class="entry_type_enum_notes">This request is for a preview-like usecase.<wbr> The |
| precapture trigger may be used to start off a metering |
| w/<wbr>flash sequence</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">STILL_CAPTURE</span> |
| <span class="entry_type_enum_notes">This request is for a still capture-type |
| usecase.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">VIDEO_RECORD</span> |
| <span class="entry_type_enum_notes">This request is for a video recording |
| usecase.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span> |
| <span class="entry_type_enum_notes">This request is for a video snapshot (still |
| image while recording video) usecase</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span> |
| <span class="entry_type_enum_notes">This request is for a ZSL usecase; the |
| application will stream full-resolution images and |
| reprocess one or several later for a final |
| capture</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Information to 3A routines about the purpose |
| of this capture,<wbr> to help decide optimal 3A |
| strategy |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| all must be supported |
| </td> |
| |
| <td class="entry_notes"> |
| Only used if android.<wbr>control.<wbr>mode != OFF.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.effectMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>effect<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">MONO</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">NEGATIVE</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SOLARIZE</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SEPIA</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">POSTERIZE</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">WHITEBOARD</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">BLACKBOARD</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AQUA</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether any special color effect is in use.<wbr> |
| Only used if android.<wbr>control.<wbr>mode != OFF |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>control.<wbr>available<wbr>Effects |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.mode"> |
| <td class="entry_name">android.<wbr>control.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A |
| routines are disabled,<wbr> no other settings in |
| android.<wbr>control.<wbr>* have any effect</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr> |
| Manual control of capture parameters is disabled.<wbr> All |
| controls in android.<wbr>control.<wbr>* besides sceneMode take |
| effect</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">USE_SCENE_MODE</span> |
| <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables |
| control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode |
| controls; the HAL must ignore those settings while |
| USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY |
| scene mode).<wbr> Other control entries are still active.<wbr> |
| This setting can only be used if availableSceneModes != |
| UNSUPPORTED</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Overall mode of 3A control |
| routines |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| all must be supported |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.sceneMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>scene<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">UNSUPPORTED</span> |
| <span class="entry_type_enum_value">0</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FACE_PRIORITY</span> |
| <span class="entry_type_enum_notes">if face detection support exists Use face |
| detection data to drive 3A routines.<wbr> If face detection |
| statistics are disabled,<wbr> should still operate correctly |
| (but not return face detection statistics to the |
| framework).<wbr> |
| |
| Unlike the other scene modes,<wbr> aeMode,<wbr> awbMode,<wbr> and afMode |
| remain active when FACE_<wbr>PRIORITY is set.<wbr> This is due to |
| compatibility concerns with the old camera |
| API</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ACTION</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PORTRAIT</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">LANDSCAPE</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">NIGHT</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">NIGHT_PORTRAIT</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">THEATRE</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">BEACH</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SNOW</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SUNSET</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">STEADYPHOTO</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FIREWORKS</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SPORTS</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PARTY</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CANDLELIGHT</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">BARCODE</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Which scene mode is active when |
| android.<wbr>control.<wbr>mode = SCENE_<wbr>MODE |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.control.videoStabilizationMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>video<wbr>Stabilization<wbr>Mode</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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether video stabilization is |
| active |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| If enabled,<wbr> video stabilization can modify the |
| android.<wbr>scaler.<wbr>crop<wbr>Region to keep the video stream |
| stabilized |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.control.aeAvailableAntibandingModes"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<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]</span> |
| <div class="entry_type_notes">list of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Which set of antibanding modes are |
| supported |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.aeAvailableModes"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<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"> [system]</span> |
| <div class="entry_type_notes">list of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Which subset of AE modes is |
| supported |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| OFF,<wbr> ON must be supported.<wbr> |
| ON_<wbr>AUTO_<wbr>FLASH/<wbr>ON_<wbr>ALWAYS_<wbr>FLASH must be supported if flash |
| unit is available |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 x n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">list of pairs of frame rates</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of frame rate ranges supported by the |
| AE algorithm/<wbr>hardware |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.aeCompensationRange"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Range</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum and minimum exposure compensation |
| setting,<wbr> in counts of |
| android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step<wbr>Size |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| At least (-2,<wbr>2)/<wbr>(exp compensation step |
| size) |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.aeCompensationStep"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Smallest step by which exposure compensation |
| can be changed |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| <= 1/<wbr>2 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.afAvailableModes"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Available<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]</span> |
| <div class="entry_type_notes">List of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of AF modes that can be |
| selected |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| OFF must be included.<wbr> AUTO must be supported if |
| lens allows for changing focus |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.availableEffects"> |
| <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Effects</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]</span> |
| <div class="entry_type_notes">list of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| what subset of the full color effect enum |
| list is supported |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| OFF must be listed |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.availableSceneModes"> |
| <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Scene<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]</span> |
| <div class="entry_type_notes">list of enums from android.<wbr>control.<wbr>scene<wbr>Mode,<wbr> plus UNSUPPORTED to indicate no scene modes are supported</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| what subset of the scene mode enum list is |
| supported.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY must be supported if face |
| detection is supported |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.availableVideoStabilizationModes"> |
| <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Video<wbr>Stabilization<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]</span> |
| <div class="entry_type_notes">List of enums.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of video stabilization modes that can |
| be supported |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| OFF must be included |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.awbAvailableModes"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Available<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]</span> |
| <div class="entry_type_notes">List of enums (android.<wbr>control.<wbr>awb<wbr>Mode)</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| OFF,<wbr> AUTO must be included |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.maxRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>max<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| For AE,<wbr> AWB,<wbr> and AF,<wbr> how many individual |
| regions can be listed for metering? |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 1 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.control.sceneModeOverrides"> |
| <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode<wbr>Overrides</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 x length(availableSceneModes) |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of AE,<wbr> AWB,<wbr> and AF modes to use for |
| each available scene mode |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| For each listed scene mode,<wbr> lists the aeMode,<wbr> |
| awbMode,<wbr> and afMode that the HAL wants to use for that |
| scene mode.<wbr> |
| |
| For each entry,<wbr> the order is {aeMode,<wbr> awbMode,<wbr> afMode} in |
| order of increasing index |
| </td> |
| |
| <td class="entry_notes"> |
| When a scene mode is enabled,<wbr> the HAL is expected |
| to override aeMode,<wbr> awbMode,<wbr> and afMode with its |
| preferred settings for that scene mode.<wbr> |
| <br> |
| <br> To simplify communication with old camera API applications,<wbr> |
| the service wants this override list in the static metadata.<wbr> |
| The order of this list matches that of availableSceneModes,<wbr> |
| with 3 entires for each scene mode.<wbr> The overrides listed |
| for SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY are ignored,<wbr> since for that |
| mode,<wbr> the application-set aeMode,<wbr> awbMode,<wbr> and afMode are |
| used instead,<wbr> like they are when android.<wbr>control.<wbr>mode is |
| AUTO.<wbr> |
| <br> |
| <br> It is recommended that for FACE_<wbr>PRIORITY,<wbr> the overrides |
| should be set to 0.<wbr> As an example,<wbr> if availableSceneModes is |
| { FACE_<wbr>PRIORITY,<wbr> ACTION,<wbr> NIGHT },<wbr> then the service expects |
| this field to have 9 entries; for example { 0 ,<wbr> 0,<wbr> 0,<wbr> |
| ON_<wbr>AUTO_<wbr>FLASH,<wbr> AUTO,<wbr> CONTINUOUS_<wbr>PICTURE,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr> |
| INCANDESCENT,<wbr> AUTO } |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.control.aePrecaptureId"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Id</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [hidden]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The ID sent with the latest |
| CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING call |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Must be 0 if no |
| CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING trigger received yet |
| by HAL.<wbr> Always updated even if AE algorithm ignores the |
| trigger |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.aeRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 5 x area_count |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of areas to use for |
| metering |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> |
| xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the |
| specified coordinates.<wbr> |
| <br> |
| <br> The coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the |
| bottom-right pixel in the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> |
| <br> |
| <br> If all regions have 0 weight,<wbr> then no specific metering area |
| needs to be used by the HAL.<wbr> If the metering region is |
| outside the current android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL |
| should ignore the sections outside the region and output the |
| used sections in the frame metadata |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.aeState"> |
| <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>State</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">INACTIVE</span> |
| <span class="entry_type_enum_notes">AE is off.<wbr> When a camera device is opened,<wbr> it starts in |
| this state.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SEARCHING</span> |
| <span class="entry_type_enum_notes">AE doesn't yet have a good set of control values |
| for the current scene</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CONVERGED</span> |
| <span class="entry_type_enum_notes">AE has a good set of control values for the |
| current scene</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">LOCKED</span> |
| <span class="entry_type_enum_notes">AE has been locked (aeMode = |
| LOCKED)</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FLASH_REQUIRED</span> |
| <span class="entry_type_enum_notes">AE has a good set of control values,<wbr> but flash |
| needs to be fired for good quality still |
| capture</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PRECAPTURE</span> |
| <span class="entry_type_enum_notes">AE has been asked to do a precapture sequence |
| (through the |
| trigger_<wbr>action(CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING) |
| call),<wbr> and is currently executing it.<wbr> Once PRECAPTURE |
| completes,<wbr> AE will transition to CONVERGED or |
| FLASH_<wbr>REQUIRED as appropriate</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Current state of AE algorithm |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Whenever the AE algorithm state changes,<wbr> a |
| MSG_<wbr>AUTOEXPOSURE notification must be send if a |
| notification callback is registered.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.afMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">The 3A routines do not control the lens; |
| android.<wbr>lens.<wbr>focus<wbr>Distance is controlled by the |
| application</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> |
| |
| Use android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens |
| is fixed focus In this mode,<wbr> the lens does not move unless |
| the autofocus trigger action is called.<wbr> When that trigger |
| is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then to |
| the outcome of the scan (FOCUSED or |
| NOT_<wbr>FOCUSED).<wbr> |
| |
| Triggering cancel AF resets the lens position to default,<wbr> |
| and sets the AF state to INACTIVE.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">MACRO</span> |
| <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the |
| autofocus trigger action is called.<wbr> |
| |
| When that trigger is activated,<wbr> AF must transition to |
| ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED or |
| NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens |
| position to default,<wbr> and sets the AF state to |
| INACTIVE.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span> |
| <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens |
| position continually to attempt to provide a |
| constantly-in-focus image stream.<wbr> |
| |
| The focusing behavior should be suitable for good quality |
| video recording; typically this means slower focus |
| movement and no overshoots.<wbr> When the AF trigger is not |
| involved,<wbr> the AF algorithm should start in INACTIVE state,<wbr> |
| and then transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED |
| states as appropriate.<wbr> When the AF trigger is activated,<wbr> |
| the algorithm should immediately transition into |
| AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the |
| lens position until a cancel AF trigger is received.<wbr> |
| |
| Once cancel is received,<wbr> the algorithm should transition |
| back to INACTIVE and resume passive scan.<wbr> Note that this |
| behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr> since an |
| ongoing PASSIVE_<wbr>SCAN must immediately be |
| canceled.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span> |
| <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens |
| position continually to attempt to provide a |
| constantly-in-focus image stream.<wbr> |
| |
| The focusing behavior should be suitable for still image |
| capture; typically this means focusing as fast as |
| possible.<wbr> When the AF trigger is not involved,<wbr> the AF |
| algorithm should start in INACTIVE state,<wbr> and then |
| transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as |
| appropriate as it attempts to maintain focus.<wbr> When the AF |
| trigger is activated,<wbr> the algorithm should finish its |
| PASSIVE_<wbr>SCAN if active,<wbr> and then transition into |
| AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the |
| lens position until a cancel AF trigger is received.<wbr> |
| |
| When the AF cancel trigger is activated,<wbr> the algorithm |
| should transition back to INACTIVE and then act as if it |
| has just been started.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">EDOF</span> |
| <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF |
| trigger is ignored,<wbr> AF state should always be |
| INACTIVE.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AF is currently enabled,<wbr> and what |
| mode it is set to |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.afRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 5 x area_count |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of areas to use for focus |
| estimation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> |
| xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the |
| specified coordinates.<wbr> |
| <br> |
| <br> The coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the |
| bottom-right pixel in the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> |
| <br> |
| <br> If all regions have 0 weight,<wbr> then no specific focus area |
| needs to be used by the HAL.<wbr> If the focusing region is |
| outside the current android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL |
| should ignore the sections outside the region and output the |
| used sections in the frame metadata |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.afState"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<wbr>State</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">INACTIVE</span> |
| <span class="entry_type_enum_notes">AF off or has not yet tried to scan/<wbr>been asked |
| to scan.<wbr> When a camera device is opened,<wbr> it starts in |
| this state.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PASSIVE_SCAN</span> |
| <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported.<wbr> AF is |
| currently doing an AF scan initiated by a continuous |
| autofocus mode</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PASSIVE_FOCUSED</span> |
| <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported.<wbr> AF currently |
| believes it is in focus,<wbr> but may restart scanning at |
| any time.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ACTIVE_SCAN</span> |
| <span class="entry_type_enum_notes">if AUTO or MACRO modes are supported.<wbr> AF is doing |
| an AF scan because it was triggered by AF |
| trigger</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FOCUSED_LOCKED</span> |
| <span class="entry_type_enum_notes">if any AF mode besides OFF is supported.<wbr> AF |
| believes it is focused correctly and is |
| locked</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span> |
| <span class="entry_type_enum_notes">if any AF mode besides OFF is supported.<wbr> AF has |
| failed to focus successfully and is |
| locked</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span> |
| <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported.<wbr> AF finished a |
| passive scan without finding focus,<wbr> and may restart |
| scanning at any time.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Current state of AF algorithm |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Whenever the AF algorithm state changes,<wbr> a |
| MSG_<wbr>AUTOFOCUS notification must be send if a notification |
| callback is registered.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.afTriggerId"> |
| <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger<wbr>Id</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [hidden]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The ID sent with the latest |
| CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS call |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Must be 0 if no CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS trigger |
| received yet by HAL.<wbr> Always updated even if AF algorithm |
| ignores the trigger |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.awbMode"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">INCANDESCENT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FLUORESCENT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">WARM_FLUORESCENT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">DAYLIGHT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">TWILIGHT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SHADE</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether AWB is currently setting the color |
| transform fields,<wbr> and what its illumination target |
| is |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| [BC - AWB lock,<wbr>AWB modes] |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| <li><a href="#tag_AWB">AWB</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.awbRegions"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 5 x area_count |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of areas to use for illuminant |
| estimation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Only used in AUTO mode.<wbr> |
| <br> |
| <br> Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr> |
| xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the |
| specified coordinates.<wbr> |
| <br> |
| <br> The coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the |
| bottom-right pixel in the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> |
| <br> |
| <br> If all regions have 0 weight,<wbr> then no specific metering area |
| needs to be used by the HAL.<wbr> If the metering region is |
| outside the current android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL |
| should ignore the sections outside the region and output the |
| used sections in the frame metadata |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.awbState"> |
| <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>State</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">INACTIVE</span> |
| <span class="entry_type_enum_notes">AWB is not in auto mode.<wbr> When a camera device is opened,<wbr> it |
| starts in this state.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SEARCHING</span> |
| <span class="entry_type_enum_notes">AWB doesn't yet have a good set of control |
| values for the current scene</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CONVERGED</span> |
| <span class="entry_type_enum_notes">AWB has a good set of control values for the |
| current scene</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">LOCKED</span> |
| <span class="entry_type_enum_notes">AE has been locked (aeMode = |
| LOCKED)</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Current state of AWB algorithm |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Whenever the AWB algorithm state changes,<wbr> a |
| MSG_<wbr>AUTOWHITEBALANCE notification must be send if a |
| notification callback is registered.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.control.mode"> |
| <td class="entry_name">android.<wbr>control.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A |
| routines are disabled,<wbr> no other settings in |
| android.<wbr>control.<wbr>* have any effect</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">AUTO</span> |
| <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr> |
| Manual control of capture parameters is disabled.<wbr> All |
| controls in android.<wbr>control.<wbr>* besides sceneMode take |
| effect</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">USE_SCENE_MODE</span> |
| <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables |
| control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode |
| controls; the HAL must ignore those settings while |
| USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY |
| scene mode).<wbr> Other control entries are still active.<wbr> |
| This setting can only be used if availableSceneModes != |
| UNSUPPORTED</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Overall mode of 3A control |
| routines |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| all must be supported |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_demosaic" class="section">demosaic</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.demosaic.mode"> |
| <td class="entry_name">android.<wbr>demosaic.<wbr>mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Minimal or no slowdown of frame rate compared to |
| Bayer RAW output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">High-quality may reduce output frame |
| rate</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Controls the quality of the demosaicing |
| processing |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_edge" class="section">edge</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.edge.mode"> |
| <td class="entry_name">android.<wbr>edge.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No edge enhancement is applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operation mode for edge |
| enhancement |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.edge.strength"> |
| <td class="entry_name">android.<wbr>edge.<wbr>strength</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Control the amount of edge enhancement |
| applied to the images |
| </td> |
| |
| <td class="entry_units"> |
| 1-10; 10 is maximum sharpening |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.edge.mode"> |
| <td class="entry_name">android.<wbr>edge.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No edge enhancement is applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operation mode for edge |
| enhancement |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_flash" class="section">flash</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.flash.firingPower"> |
| <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Power for flash firing/<wbr>torch |
| </td> |
| |
| <td class="entry_units"> |
| 10 is max power; 0 is no flash.<wbr> Linear |
| </td> |
| |
| <td class="entry_range"> |
| 0 - 10 |
| </td> |
| |
| <td class="entry_notes"> |
| Power for snapshot may use a different scale than |
| for torch mode.<wbr> Only one entry for torch mode will be |
| used |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.flash.firingTime"> |
| <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Firing time of flash relative to start of |
| exposure |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| 0-(exposure time-flash duration) |
| </td> |
| |
| <td class="entry_notes"> |
| Clamped to (0,<wbr> exposure time - flash |
| duration).<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.flash.mode"> |
| <td class="entry_name">android.<wbr>flash.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Do not fire the flash for this |
| capture</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SINGLE</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash |
| for this capture based on firingPower,<wbr> |
| firingTime.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">TORCH</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash |
| continuously on,<wbr> power set by |
| firingPower</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Select flash operation mode |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.flash.info.available"> |
| <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>available</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether this camera has a |
| flash |
| </td> |
| |
| <td class="entry_units"> |
| boolean (0 = false,<wbr> otherwise true) |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| If no flash,<wbr> none of the flash controls do |
| anything.<wbr> All other metadata should return 0 |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.flash.info.chargeDuration"> |
| <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>charge<wbr>Duration</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Time taken before flash can fire |
| again |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| 0-1e9 |
| </td> |
| |
| <td class="entry_notes"> |
| 1 second too long/<wbr>too short for recharge? Should |
| this be power-dependent? |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.flash.colorTemperature"> |
| <td class="entry_name">android.<wbr>flash.<wbr>color<wbr>Temperature</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The x,<wbr>y whitepoint of the |
| flash |
| </td> |
| |
| <td class="entry_units"> |
| pair of floats |
| </td> |
| |
| <td class="entry_range"> |
| 0-1 for both |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_ADV">ADV</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.flash.maxEnergy"> |
| <td class="entry_name">android.<wbr>flash.<wbr>max<wbr>Energy</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Max energy output of the flash for a full |
| power single flash |
| </td> |
| |
| <td class="entry_units"> |
| lumen-seconds |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_ADV">ADV</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.flash.firingPower"> |
| <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Power for flash firing/<wbr>torch |
| </td> |
| |
| <td class="entry_units"> |
| 10 is max power; 0 is no flash.<wbr> Linear |
| </td> |
| |
| <td class="entry_range"> |
| 0 - 10 |
| </td> |
| |
| <td class="entry_notes"> |
| Power for snapshot may use a different scale than |
| for torch mode.<wbr> Only one entry for torch mode will be |
| used |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.flash.firingTime"> |
| <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Firing time of flash relative to start of |
| exposure |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| 0-(exposure time-flash duration) |
| </td> |
| |
| <td class="entry_notes"> |
| Clamped to (0,<wbr> exposure time - flash |
| duration).<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.flash.mode"> |
| <td class="entry_name">android.<wbr>flash.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">Do not fire the flash for this |
| capture</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SINGLE</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash |
| for this capture based on firingPower,<wbr> |
| firingTime.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">TORCH</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash |
| continuously on,<wbr> power set by |
| firingPower</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Select flash operation mode |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.flash.state"> |
| <td class="entry_name">android.<wbr>flash.<wbr>state</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">UNAVAILABLE</span> |
| <span class="entry_type_enum_notes">No flash on camera</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CHARGING</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is |
| charging and cannot be fired</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">READY</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is |
| ready to fire</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FIRED</span> |
| <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash fired |
| for this capture</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Current state of the flash |
| unit |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_geometric" class="section">geometric</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.geometric.mode"> |
| <td class="entry_name">android.<wbr>geometric.<wbr>mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No geometric correction is |
| applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operating mode of geometric |
| correction |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.geometric.strength"> |
| <td class="entry_name">android.<wbr>geometric.<wbr>strength</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Control the amount of shading correction |
| applied to the images |
| </td> |
| |
| <td class="entry_units"> |
| unitless: 1-10; 10 is full shading |
| compensation |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_ADV">ADV</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_hotPixel" class="section">hotPixel</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.hotPixel.mode"> |
| <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No hot pixel correction can be |
| applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw |
| Bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Set operational mode for hot pixel |
| correction |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.hotPixel.info.map"> |
| <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>info.<wbr>map</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 x n |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">list of coordinates based on android.<wbr>sensor.<wbr>pixel<wbr>Array<wbr>Size</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Location of hot/<wbr>defective pixels on |
| sensor |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_ADV">ADV</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.hotPixel.mode"> |
| <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No hot pixel correction can be |
| applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw |
| Bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Set operational mode for hot pixel |
| correction |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_jpeg" class="section">jpeg</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.jpeg.gpsCoordinates"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">double</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| GPS coordinates to include in output JPEG |
| EXIF |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf] |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public as string]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| 32 characters describing GPS algorithm to |
| include in EXIF |
| </td> |
| |
| <td class="entry_units"> |
| UTF-8 null-terminated string |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.jpeg.gpsTimestamp"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Time GPS fix was made to include in |
| EXIF |
| </td> |
| |
| <td class="entry_units"> |
| UTC in seconds since January 1,<wbr> 1970 |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.jpeg.orientation"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Orientation of JPEG image to |
| write |
| </td> |
| |
| <td class="entry_units"> |
| Degrees in multiples of 90 |
| </td> |
| |
| <td class="entry_range"> |
| 0,<wbr> 90,<wbr> 180,<wbr> 270 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.jpeg.quality"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Compression quality of the final JPEG |
| image |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 1-100; larger is higher quality |
| </td> |
| |
| <td class="entry_notes"> |
| 85-95 is typical usage range |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.jpeg.thumbnailQuality"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Compression quality of JPEG |
| thumbnail |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 1-100; larger is higher quality |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.jpeg.thumbnailSize"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public as size]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Resolution of embedded JPEG |
| thumbnail |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.jpeg.availableThumbnailSizes"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 x n |
| </span> |
| <span class="entry_type_visibility"> [public as size]</span> |
| <div class="entry_type_notes">list of resolution pairs</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Supported resolutions for the JPEG |
| thumbnail |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must include at least one valid resolution,<wbr> plus |
| (0,<wbr>0) for no thumbnail generation |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.jpeg.maxSize"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>max<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum size in bytes for the compressed |
| JPEG buffer |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must be large enough to fit any JPEG produced by |
| the camera |
| </td> |
| |
| <td class="entry_notes"> |
| This is used for sizing the gralloc buffers for |
| JPEG |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">double</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| GPS coordinates to include in output JPEG |
| EXIF |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf] |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public as string]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| 32 characters describing GPS algorithm to |
| include in EXIF |
| </td> |
| |
| <td class="entry_units"> |
| UTF-8 null-terminated string |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Time GPS fix was made to include in |
| EXIF |
| </td> |
| |
| <td class="entry_units"> |
| UTC in seconds since January 1,<wbr> 1970 |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.orientation"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Orientation of JPEG image to |
| write |
| </td> |
| |
| <td class="entry_units"> |
| Degrees in multiples of 90 |
| </td> |
| |
| <td class="entry_range"> |
| 0,<wbr> 90,<wbr> 180,<wbr> 270 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.quality"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Compression quality of the final JPEG |
| image |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 1-100; larger is higher quality |
| </td> |
| |
| <td class="entry_notes"> |
| 85-95 is typical usage range |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.size"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The size of the compressed JPEG image,<wbr> in |
| bytes |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| If no JPEG output is produced for the request,<wbr> |
| this must be 0.<wbr> |
| <br> |
| <br> Otherwise,<wbr> this describes the real size of the compressed |
| JPEG image placed in the output stream.<wbr> More specifically,<wbr> |
| if android.<wbr>jpeg.<wbr>max<wbr>Size = 1000000,<wbr> and a specific capture |
| has android.<wbr>jpeg.<wbr>size = 500000,<wbr> then the output buffer from |
| the JPEG stream will be 1000000 bytes,<wbr> of which the first |
| 500000 make up the real data.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Compression quality of JPEG |
| thumbnail |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 1-100; larger is higher quality |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.jpeg.thumbnailSize"> |
| <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public as size]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Resolution of embedded JPEG |
| thumbnail |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_lens" class="section">lens</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.lens.aperture"> |
| <td class="entry_name">android.<wbr>lens.<wbr>aperture</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Size of the lens aperture |
| </td> |
| |
| <td class="entry_units"> |
| f-number (f/<wbr>NNN) |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> Can only |
| pick from supported list |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.lens.filterDensity"> |
| <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| State of lens neutral density |
| filter(s) |
| </td> |
| |
| <td class="entry_units"> |
| number of stops of filtering |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> Can only |
| pick from supported list |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.lens.focalLength"> |
| <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Lens optical zoom setting |
| </td> |
| |
| <td class="entry_units"> |
| focal length in mm |
| </td> |
| |
| <td class="entry_range"> |
| > 0 |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.lens.focusDistance"> |
| <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Distance to plane of sharpest focus,<wbr> |
| measured from frontmost surface of the lens |
| </td> |
| |
| <td class="entry_units"> |
| diopters (1/<wbr>m) |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| 0 = infinity focus.<wbr> Used value should be clamped |
| to (0,<wbr>minimum focus distance) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.lens.opticalStabilizationMode"> |
| <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether optical image stabilization is |
| enabled.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.lens.info.availableApertures"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of supported aperture |
| values |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| one entry required,<wbr> > 0 |
| </td> |
| |
| <td class="entry_notes"> |
| If variable aperture not available,<wbr> only setting |
| should be for the fixed aperture |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.availableFilterDensities"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of supported ND filter |
| values |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| one entry required,<wbr> >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| If not available,<wbr> only setting is 0.<wbr> Otherwise,<wbr> |
| lists the available exposure index values for dimming |
| (2 would mean the filter is set to reduce incoming |
| light by two stops) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.availableFocalLengths"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Focal<wbr>Lengths</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">the list of available focal lengths</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| If fitted with optical zoom,<wbr> what focal |
| lengths are available.<wbr> If not,<wbr> the static focal |
| length |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| > 0 |
| </td> |
| |
| <td class="entry_notes"> |
| If optical zoom not supported,<wbr> only one value |
| should be reported |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.availableOpticalStabilization"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Optical<wbr>Stabilization</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]</span> |
| <div class="entry_type_notes">list of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of supported optical image |
| stabilization modes |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.geometricCorrectionMap"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 x 3 x n x m |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr> per color channel.<wbr> Size in the range of 2x3x40x30</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A low-resolution map for correction of |
| geometric distortions and chromatic aberrations,<wbr> per |
| color channel |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| N,<wbr> M >= 2 |
| </td> |
| |
| <td class="entry_notes"> |
| [DNG wants a function instead].<wbr> What's easiest |
| for implementers? With an array size (M,<wbr> N),<wbr> entry (i,<wbr> |
| j) provides the destination for pixel (i/<wbr>(M-1) * width,<wbr> |
| j/<wbr>(N-1) * height).<wbr> Data is row-major,<wbr> with each array |
| entry being ( (X,<wbr> Y)_<wbr>r,<wbr> (X,<wbr> Y)_<wbr>g,<wbr> (X,<wbr> Y)_<wbr>b ) ) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [system as size]</span> |
| <div class="entry_type_notes">width and height of geometric correction map</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Dimensions of geometric correction |
| map |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Both values >= 2 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.hyperfocalDistance"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>hyperfocal<wbr>Distance</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Hyperfocal distance for this lens; set to |
| 0 if fixed focus |
| </td> |
| |
| <td class="entry_units"> |
| diopters |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| The hyperfocal distance is used for the old |
| API's 'fixed' setting |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.minimumFocusDistance"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>minimum<wbr>Focus<wbr>Distance</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Shortest distance from frontmost surface |
| of the lens that can be focused correctly |
| </td> |
| |
| <td class="entry_units"> |
| diopters |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| If the lens is fixed-focus,<wbr> this should be |
| 0 |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.info.shadingMapSize"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public as size]</span> |
| <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr> (N,<wbr> M)</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Dimensions of lens shading |
| map |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Both values >= 1 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.lens.facing"> |
| <td class="entry_name">android.<wbr>lens.<wbr>facing</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">FRONT</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">BACK</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Direction the camera faces relative to |
| device screen |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.opticalAxisAngle"> |
| <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Axis<wbr>Angle</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">degrees.<wbr> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr> The second then defines the clockwise rotation of the optical axis from native device up.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Relative angle of camera optical axis to the |
| perpendicular axis from the display |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| [0-90) for first angle,<wbr> [0-360) for second |
| </td> |
| |
| <td class="entry_notes"> |
| Examples: |
| <br> |
| <br> (0,<wbr>0) means that the camera optical axis |
| is perpendicular to the display surface; |
| <br> |
| <br> (45,<wbr>0) means that the camera points 45 degrees up when |
| device is held upright; |
| <br> |
| <br> (45,<wbr>90) means the camera points 45 degrees to the right when |
| the device is held upright.<wbr> |
| <br> |
| <br> Use FACING field to determine perpendicular outgoing |
| direction |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_ADV">ADV</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.lens.position"> |
| <td class="entry_name">android.<wbr>lens.<wbr>position</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3, location in mm, in the sensor coordinate |
| system |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Coordinates of camera optical axis on |
| device |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.lens.aperture"> |
| <td class="entry_name">android.<wbr>lens.<wbr>aperture</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Size of the lens aperture |
| </td> |
| |
| <td class="entry_units"> |
| f-number (f/<wbr>NNN) |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> Can only |
| pick from supported list |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.lens.filterDensity"> |
| <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| State of lens neutral density |
| filter(s) |
| </td> |
| |
| <td class="entry_units"> |
| number of stops of filtering |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> Can only |
| pick from supported list |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.lens.focalLength"> |
| <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Lens optical zoom setting |
| </td> |
| |
| <td class="entry_units"> |
| focal length in mm |
| </td> |
| |
| <td class="entry_range"> |
| > 0 |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.lens.focusDistance"> |
| <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Distance to plane of sharpest focus,<wbr> |
| measured from frontmost surface of the lens |
| </td> |
| |
| <td class="entry_units"> |
| diopters (1/<wbr>m) |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 |
| </td> |
| |
| <td class="entry_notes"> |
| Should be zero for fixed-focus cameras |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.lens.focusRange"> |
| <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Range</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">Range of scene distances that are in focus</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The range of scene distances that are in |
| sharp focus (depth of field) |
| </td> |
| |
| <td class="entry_units"> |
| pair of focus distances in diopters: (near,<wbr> |
| far) |
| </td> |
| |
| <td class="entry_range"> |
| >=0 |
| </td> |
| |
| <td class="entry_notes"> |
| If variable focus not supported,<wbr> can still report |
| fixed depth of field range |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode"> |
| <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| <span class="entry_type_enum_optional">optional</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether optical image stabilization is |
| enabled.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization |
| </td> |
| |
| <td class="entry_notes"> |
| Will not be supported on most devices.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.lens.state"> |
| <td class="entry_name">android.<wbr>lens.<wbr>state</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">STATIONARY</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">MOVING</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Current lens status |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_noiseReduction" class="section">noiseReduction</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.noiseReduction.mode"> |
| <td class="entry_name">android.<wbr>noise<wbr>Reduction.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No noise reduction is applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">May slow down frame rate to provide highest |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Mode of operation for the noise reduction |
| algorithm |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.noiseReduction.strength"> |
| <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>strength</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Control the amount of noise reduction |
| applied to the images |
| </td> |
| |
| <td class="entry_units"> |
| 1-10; 10 is max noise reduction |
| </td> |
| |
| <td class="entry_range"> |
| 1 - 10 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.noiseReduction.mode"> |
| <td class="entry_name">android.<wbr>noise<wbr>Reduction.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No noise reduction is applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">May slow down frame rate to provide highest |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Mode of operation for the noise reduction |
| algorithm |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_quirks" class="section">quirks</td></tr> |
| |
| |
| <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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.quirks.meteringCropRegion"> |
| <td class="entry_name">android.<wbr>quirks.<wbr>metering<wbr>Crop<wbr>Region</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| If set to 1,<wbr> the camera service does not |
| scale 'normalized' coordinates with respect to the crop |
| region.<wbr> This applies to metering input (a{e,<wbr>f,<wbr>wb}Region |
| and output (face rectangles).<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Normalized coordinates refer to those in the |
| (-1000,<wbr>1000) range mentioned in the |
| android.<wbr>hardware.<wbr><wbr>Camera API.<wbr> |
| <br> |
| <br> HAL implementations should instead always use and emit |
| sensor array-relative coordinates for all region data.<wbr> Does |
| not need to be listed in static metadata.<wbr> Support will be |
| removed in future versions of camera service.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.quirks.triggerAfWithAuto"> |
| <td class="entry_name">android.<wbr>quirks.<wbr>trigger<wbr>Af<wbr>With<wbr>Auto</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| If set to 1,<wbr> then the camera service always |
| switches to FOCUS_<wbr>MODE_<wbr>AUTO before issuing a AF |
| trigger.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| HAL implementations should implement AF trigger |
| modes for AUTO,<wbr> MACRO,<wbr> CONTINUOUS_<wbr>FOCUS,<wbr> and |
| CONTINUOUS_<wbr>PICTURE modes instead of using this flag.<wbr> Does |
| not need to be listed in static metadata.<wbr> Support will be |
| removed in future versions of camera service |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.quirks.useZslFormat"> |
| <td class="entry_name">android.<wbr>quirks.<wbr>use<wbr>Zsl<wbr>Format</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| If set to 1,<wbr> the camera service uses |
| CAMERA2_<wbr>PIXEL_<wbr>FORMAT_<wbr>ZSL instead of |
| HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>IMPLEMENTATION_<wbr>DEFINED for the zero |
| shutter lag stream |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| HAL implementations should use gralloc usage flags |
| to determine that a stream will be used for |
| zero-shutter-lag,<wbr> instead of relying on an explicit |
| format setting.<wbr> Does not need to be listed in static |
| metadata.<wbr> Support will be removed in future versions of |
| camera service.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.quirks.usePartialResult"> |
| <td class="entry_name">android.<wbr>quirks.<wbr>use<wbr>Partial<wbr>Result</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [hidden]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| If set to 1,<wbr> the HAL will always split result |
| metadata for a single capture into multiple buffers,<wbr> |
| returned using multiple process_<wbr>capture_<wbr>result calls.<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Does not need to be listed in static |
| metadata.<wbr> Support for partial results will be reworked in |
| future versions of camera service.<wbr> This quirk will stop |
| working at that point; DO NOT USE without careful |
| consideration of future support.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.quirks.partialResult"> |
| <td class="entry_name">android.<wbr>quirks.<wbr>partial<wbr>Result</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [hidden as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">FINAL</span> |
| <span class="entry_type_enum_notes">The last or only metadata result buffer |
| for this capture.<wbr></span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PARTIAL</span> |
| <span class="entry_type_enum_notes">A partial buffer of result metadata for this |
| capture.<wbr> More result buffers for this capture will be sent |
| by the HAL,<wbr> the last of which will be marked |
| FINAL.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether a result given to the framework is the |
| final one for the capture,<wbr> or only a partial that contains a |
| subset of the full set of dynamic metadata |
| values.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Optional.<wbr> Default value is FINAL.<wbr> |
| </td> |
| |
| <td class="entry_notes"> |
| The entries in the result metadata buffers for a |
| single capture may not overlap,<wbr> except for this entry.<wbr> The |
| FINAL buffers must retain FIFO ordering relative to the |
| requests that generate them,<wbr> so the FINAL buffer for frame 3 must |
| always be sent to the framework after the FINAL buffer for frame 2,<wbr> and |
| before the FINAL buffer for frame 4.<wbr> PARTIAL buffers may be returned |
| in any order relative to other frames,<wbr> but all PARTIAL buffers for a given |
| capture must arrive before the FINAL buffer for that capture.<wbr> This entry may |
| only be used by the HAL if quirks.<wbr>usePartialResult is set to 1.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_request" class="section">request</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.request.frameCount"> |
| <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A frame counter set by the framework.<wbr> Must |
| be maintained unchanged in output frame.<wbr> This value monotonically |
| increases with every new result (that is,<wbr> each new result has a unique |
| frameCount value).<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| incrementing integer |
| </td> |
| |
| <td class="entry_range"> |
| Any int |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.request.id"> |
| <td class="entry_name">android.<wbr>request.<wbr>id</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [hidden]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| An application-specified ID for the current |
| request.<wbr> Must be maintained unchanged in output |
| frame |
| </td> |
| |
| <td class="entry_units"> |
| arbitrary integer assigned by application |
| </td> |
| |
| <td class="entry_range"> |
| Any int |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.request.inputStreams"> |
| <td class="entry_name">android.<wbr>request.<wbr>input<wbr>Streams</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List which camera reprocess stream is used |
| for the source of reprocessing data.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| List of camera reprocess stream IDs |
| </td> |
| |
| <td class="entry_range"> |
| Typically,<wbr> only one entry allowed,<wbr> must be a valid |
| reprocess stream ID.<wbr> |
| |
| If android.<wbr>jpeg.<wbr>needs<wbr>Thumbnail is set,<wbr> then multiple |
| reprocess streams may be included in a single request; they |
| must be different scaled versions of the same image.<wbr> |
| </td> |
| |
| <td class="entry_notes"> |
| Only meaningful when android.<wbr>request.<wbr>type == |
| REPROCESS.<wbr> Ignored otherwise |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_HAL2">HAL2</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.request.metadataMode"> |
| <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">NONE</span> |
| <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except |
| for application-bound buffer data.<wbr> If no |
| application-bound streams exist,<wbr> no frame should be |
| placed in the output frame queue.<wbr> If such streams |
| exist,<wbr> a frame should be placed on the output queue |
| with null metadata but with the necessary output buffer |
| information.<wbr> Timestamp information should still be |
| included with any output stream buffers</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FULL</span> |
| <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will |
| only be produced if they are separately |
| enabled</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| How much metadata to produce on |
| output |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.request.outputStreams"> |
| <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Lists which camera output streams image data |
| from this capture must be sent to |
| </td> |
| |
| <td class="entry_units"> |
| List of camera stream IDs |
| </td> |
| |
| <td class="entry_range"> |
| List must only include streams that have been |
| created |
| </td> |
| |
| <td class="entry_notes"> |
| If no output streams are listed,<wbr> then the image |
| data should simply be discarded.<wbr> The image data must |
| still be captured for metadata and statistics production,<wbr> |
| and the lens and flash must operate as requested.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_HAL2">HAL2</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.request.type"> |
| <td class="entry_name">android.<wbr>request.<wbr>type</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">CAPTURE</span> |
| <span class="entry_type_enum_notes">Capture a new image from the imaging hardware,<wbr> |
| and process it according to the |
| settings</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">REPROCESS</span> |
| <span class="entry_type_enum_notes">Process previously captured data; the |
| android.<wbr>request.<wbr>input<wbr>Stream parameter determines the |
| source reprocessing stream.<wbr> TODO: Mark dynamic metadata |
| needed for reprocessing with [RP]</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The type of the request; either CAPTURE or |
| REPROCESS.<wbr> For HAL3,<wbr> this tag is redundant.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_HAL2">HAL2</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.request.maxNumOutputStreams"> |
| <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Output<wbr>Streams</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| How many output streams can be allocated at |
| the same time for each type of stream |
| </td> |
| |
| <td class="entry_units"> |
| The number of raw sensor streams; the number of |
| processed,<wbr> uncompressed streams; and the number of |
| JPEG-compressed streams |
| </td> |
| |
| <td class="entry_range"> |
| >=1 for Raw and JPEG-compressed stream.<wbr> >= 3 |
| for processed,<wbr> uncompressed streams |
| </td> |
| |
| <td class="entry_notes"> |
| Video snapshot with preview callbacks requires 3 |
| processed streams (preview,<wbr> record,<wbr> app callbacks) and |
| one JPEG stream (snapshot) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.request.maxNumReprocessStreams"> |
| <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Reprocess<wbr>Streams</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 1 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| How many reprocessing streams of any type |
| can be allocated at the same time |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 1 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.request.frameCount"> |
| <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A frame counter set by the framework.<wbr> This value monotonically |
| increases with every new result (that is,<wbr> each new result has a unique |
| frameCount value).<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| count of frames |
| </td> |
| |
| <td class="entry_range"> |
| > 0 |
| </td> |
| |
| <td class="entry_notes"> |
| Reset on release() |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.request.id"> |
| <td class="entry_name">android.<wbr>request.<wbr>id</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [hidden]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| An application-specified ID for the current |
| request.<wbr> Must be maintained unchanged in output |
| frame |
| </td> |
| |
| <td class="entry_units"> |
| arbitrary integer assigned by application |
| </td> |
| |
| <td class="entry_range"> |
| Any int |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.request.metadataMode"> |
| <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">NONE</span> |
| <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except |
| for application-bound buffer data.<wbr> If no |
| application-bound streams exist,<wbr> no frame should be |
| placed in the output frame queue.<wbr> If such streams |
| exist,<wbr> a frame should be placed on the output queue |
| with null metadata but with the necessary output buffer |
| information.<wbr> Timestamp information should still be |
| included with any output stream buffers</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FULL</span> |
| <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will |
| only be produced if they are separately |
| enabled</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| How much metadata to produce on |
| output |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.request.outputStreams"> |
| <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Lists which camera output streams image data |
| from this capture must be sent to |
| </td> |
| |
| <td class="entry_units"> |
| List of camera stream IDs |
| </td> |
| |
| <td class="entry_range"> |
| List must only include streams that have been |
| created |
| </td> |
| |
| <td class="entry_notes"> |
| If no output streams are listed,<wbr> then the image |
| data should simply be discarded.<wbr> The image data must |
| still be captured for metadata and statistics production,<wbr> |
| and the lens and flash must operate as requested.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_HAL2">HAL2</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_scaler" class="section">scaler</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.scaler.cropRegion"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 4 |
| </span> |
| <span class="entry_type_visibility"> [public as rectangle]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| (x,<wbr> y,<wbr> width,<wbr> height).<wbr> |
| <br> |
| <br> A rectangle with the top-level corner of (x,<wbr>y) and size |
| (width,<wbr> height).<wbr> The region of the sensor that is used for |
| output.<wbr> Each stream must use this rectangle to produce its |
| output,<wbr> cropping to a smaller region if necessary to |
| maintain the stream's aspect ratio.<wbr> |
| <br> |
| <br> HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width) |
| </td> |
| |
| <td class="entry_units"> |
| (x,<wbr>y) of top-left corner,<wbr> width and height of region |
| in pixels; (0,<wbr>0) is top-left corner of |
| android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| |
| Any additional per-stream cropping must be done to |
| maximize the final pixel area of the stream.<wbr> |
| <br> |
| <br> For example,<wbr> if the crop region is set to a 4:3 aspect |
| ratio,<wbr> then 4:3 streams should use the exact crop |
| region.<wbr> 16:9 streams should further crop vertically |
| (letterbox).<wbr> |
| <br> |
| <br> Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3 |
| outputs should crop horizontally (pillarbox),<wbr> and 16:9 |
| streams should match exactly.<wbr> These additional crops must |
| be centered within the crop region.<wbr> |
| <br> |
| <br> The output streams must maintain square pixels at all |
| times,<wbr> no matter what the relative aspect ratios of the |
| crop region and the stream are.<wbr> Negative values for |
| corner are allowed for raw output if full pixel array is |
| larger than active pixel array.<wbr> Width and height may be |
| rounded to nearest larger supportable width,<wbr> especially |
| for raw output,<wbr> where only a few fixed scales may be |
| possible.<wbr> The width and height of the crop region cannot |
| be set to be smaller than floor( activeArraySize.<wbr>width /<wbr> |
| android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor( |
| activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr> |
| respectively.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.scaler.availableFormats"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Formats</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public as imageFormat]</span> |
| <div class="entry_type_notes">values from HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>* in /<wbr>system/<wbr>core/<wbr>include/<wbr>system/<wbr>graphics.<wbr>h</div> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">RAW_SENSOR</span> |
| <span class="entry_type_enum_value">0x20</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">YV12</span> |
| <span class="entry_type_enum_value">0x32315659</span> |
| <span class="entry_type_enum_notes">YCrCb 4:2:0 Planar</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">YCrCb_420_SP</span> |
| <span class="entry_type_enum_value">0x11</span> |
| <span class="entry_type_enum_notes">NV21</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span> |
| <span class="entry_type_enum_value">0x22</span> |
| <span class="entry_type_enum_notes">Hal Implementation Defined</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">YCbCr_420_888</span> |
| <span class="entry_type_enum_value">0x23</span> |
| <span class="entry_type_enum_notes">Flexible YUV420 Format</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">BLOB</span> |
| <span class="entry_type_enum_value">0x21</span> |
| <span class="entry_type_enum_notes">JPEG</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of app-visible formats |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableJpegMinDurations"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Min<wbr>Durations</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The minimum frame duration that is supported |
| for each resolution in availableJpegSizes.<wbr> Should |
| correspond to the frame duration when only that JPEG |
| stream is active and captured in a burst,<wbr> with all |
| processing set to FAST |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When multiple streams are configured,<wbr> the minimum |
| frame duration will be >= max(individual stream min |
| durations) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableJpegSizes"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Sizes</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public as size]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The resolutions available for output from |
| the JPEG block.<wbr> Listed as width x height |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must include: - sensor maximum resolution Should |
| include: - half/<wbr>quarter max resolution |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Max<wbr>Digital<wbr>Zoom</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The maximum ratio between active area width |
| and crop region width,<wbr> or between active area height and |
| crop region height,<wbr> if the crop region height is larger |
| than width |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >=1 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableProcessedMinDurations"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Min<wbr>Durations</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The minimum frame duration that is supported |
| for each resolution in availableProcessedSizes.<wbr> Should |
| correspond to the frame duration when only that processed |
| stream is active,<wbr> with all processing set to |
| FAST |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When multiple streams are configured,<wbr> the minimum |
| frame duration will be >= max(individual stream min |
| durations) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableProcessedSizes"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Sizes</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public as size]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The resolutions available for use with |
| processed output streams,<wbr> such as YV12,<wbr> NV12,<wbr> and |
| platform opaque YUV/<wbr>RGB streams to the GPU or video |
| encoders.<wbr> Listed as width,<wbr> height |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must include: - sensor maximum resolution - |
| standard QCIF,<wbr> 240p,<wbr> 480p,<wbr> 720p,<wbr> and 1080p |
| resolutions |
| </td> |
| |
| <td class="entry_notes"> |
| The actual supported resolution list may be limited by |
| consumer end points for different use cases.<wbr> For example,<wbr> for |
| recording use case,<wbr> the largest supported resolution may be |
| limited by max supported size from encoder,<wbr> for preview use |
| case,<wbr> the largest supported resolution may be limited by max |
| resolution SurfaceTexture/<wbr>SurfaceView can support.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableRawMinDurations"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Min<wbr>Durations</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The minimum frame duration that is supported |
| for each raw resolution in availableRawSizes.<wbr> Should |
| correspond to the frame duration when only the raw stream |
| is active.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When multiple streams are configured,<wbr> the minimum |
| frame duration will be >= max(individual stream min |
| durations) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.scaler.availableRawSizes"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Sizes</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [system as size]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The resolutions available for use with raw |
| sensor output streams,<wbr> listed as width,<wbr> |
| height |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must include: - sensor maximum resolution |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.scaler.cropRegion"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 4 |
| </span> |
| <span class="entry_type_visibility"> [public as rectangle]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| (x,<wbr> y,<wbr> width,<wbr> height).<wbr> |
| <br> |
| <br> A rectangle with the top-level corner of (x,<wbr>y) and size |
| (width,<wbr> height).<wbr> The region of the sensor that is used for |
| output.<wbr> Each stream must use this rectangle to produce its |
| output,<wbr> cropping to a smaller region if necessary to |
| maintain the stream's aspect ratio.<wbr> |
| <br> |
| <br> HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width) |
| </td> |
| |
| <td class="entry_units"> |
| (x,<wbr>y) of top-left corner,<wbr> width and height of region |
| in pixels; (0,<wbr>0) is top-left corner of |
| android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| |
| Any additional per-stream cropping must be done to |
| maximize the final pixel area of the stream.<wbr> |
| <br> |
| <br> For example,<wbr> if the crop region is set to a 4:3 aspect |
| ratio,<wbr> then 4:3 streams should use the exact crop |
| region.<wbr> 16:9 streams should further crop vertically |
| (letterbox).<wbr> |
| <br> |
| <br> Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3 |
| outputs should crop horizontally (pillarbox),<wbr> and 16:9 |
| streams should match exactly.<wbr> These additional crops must |
| be centered within the crop region.<wbr> |
| <br> |
| <br> The output streams must maintain square pixels at all |
| times,<wbr> no matter what the relative aspect ratios of the |
| crop region and the stream are.<wbr> Negative values for |
| corner are allowed for raw output if full pixel array is |
| larger than active pixel array.<wbr> Width and height may be |
| rounded to nearest larger supportable width,<wbr> especially |
| for raw output,<wbr> where only a few fixed scales may be |
| possible.<wbr> The width and height of the crop region cannot |
| be set to be smaller than floor( activeArraySize.<wbr>width /<wbr> |
| android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor( |
| activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr> |
| respectively.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_sensor" class="section">sensor</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.sensor.exposureTime"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Duration each pixel is exposed to |
| light.<wbr> |
| <br> |
| <br> If the sensor can't expose this exact duration,<wbr> it should shorten the |
| duration exposed to the nearest possible value (rather than expose longer).<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range |
| </td> |
| |
| <td class="entry_notes"> |
| 1/<wbr>10000 - 30 sec range.<wbr> No bulb mode |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.sensor.frameDuration"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Duration from start of frame exposure to |
| start of next frame exposure |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr> |
| android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations |
| </td> |
| |
| <td class="entry_notes"> |
| Exposure time has priority,<wbr> so duration is set to |
| max(duration,<wbr> exposure time + overhead) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.sensor.sensitivity"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Gain applied to image data.<wbr> Must be |
| implemented through analog gain only if set to values |
| below 'maximum analog sensitivity'.<wbr> |
| <br> |
| <br> If the sensor can't apply this exact gain,<wbr> it should lessen the |
| gain to the nearest possible value (rather than gain more).<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| ISO arithmetic units |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range |
| </td> |
| |
| <td class="entry_notes"> |
| ISO 12232:2006 REI method |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.sensor.info.activeArraySize"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 4 |
| </span> |
| <span class="entry_type_visibility"> [public as rectangle]</span> |
| <div class="entry_type_notes">Four ints defining the active pixel rectangle</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Area of raw data which corresponds to only |
| active pixels; smaller or equal to |
| pixelArraySize.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| xmin,<wbr> ymin,<wbr> width,<wbr> height.<wbr> Top left of full |
| pixel array is (0,<wbr>0) |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.sensitivityRange"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">Range of supported sensitivities</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Range of valid sensitivities |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Min <= 100,<wbr> Max >= 1600 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.colorFilterArrangement"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>color<wbr>Filter<wbr>Arrangement</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">RGGB</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">GRBG</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">GBRG</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">BGGR</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">RGB</span> |
| <span class="entry_type_enum_notes">Sensor is not Bayer; output has 3 16-bit |
| values for each pixel,<wbr> instead of just 1 16-bit value |
| per pixel.<wbr></span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Arrangement of color filters on sensor; |
| represents the colors in the top-left 2x2 section of |
| the sensor,<wbr> in reading order |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.exposureTimeRange"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">nanoseconds</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Range of valid exposure |
| times |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Min <= 100e3 (100 us),<wbr> Max >= 30e9 (30 |
| sec) |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.maxFrameDuration"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum possible frame duration (minimum frame |
| rate) |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| >= 30e9 |
| </td> |
| |
| <td class="entry_notes"> |
| Minimum duration is a function of resolution,<wbr> |
| processing settings.<wbr> See |
| android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Min<wbr>Durations |
| android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Min<wbr>Durations |
| android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Min<wbr>Durations |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.physicalSize"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>physical<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">width x height in millimeters</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The physical dimensions of the full pixel |
| array |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Needed for FOV calculation for old API |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.pixelArraySize"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>pixel<wbr>Array<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [system as size]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Dimensions of full pixel array,<wbr> possibly |
| including black calibration pixels |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Maximum output resolution for raw format must |
| match this in |
| android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Sizes<wbr>Per<wbr>Format |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.info.whiteLevel"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum raw value output by |
| sensor |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| > 1024 (10-bit output) |
| </td> |
| |
| <td class="entry_notes"> |
| Defines sensor bit depth (10-14 bits is |
| expected) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.sensor.baseGainFactor"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>base<wbr>Gain<wbr>Factor</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Gain factor from electrons to raw units when |
| ISO=100 |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| <li><a href="#tag_FULL">FULL</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.blackLevelPattern"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>black<wbr>Level<wbr>Pattern</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 4 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">2x2 raw count block</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A fixed black level offset for each of the |
| Bayer mosaic channels |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 0 each |
| </td> |
| |
| <td class="entry_notes"> |
| As per DNG BlackLevelRepeatDim /<wbr> BlackLevel |
| tags |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.calibrationTransform1"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform1</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 9 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">3x3 matrix in row-major-order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Per-device calibration on top of color space |
| transform 1 |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.calibrationTransform2"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform2</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 9 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">3x3 matrix in row-major-order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Per-device calibration on top of color space |
| transform 2 |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.colorTransform1"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform1</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 9 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">3x3 matrix in row-major-order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Linear mapping from XYZ (D50) color space to |
| reference linear sensor color,<wbr> for first reference |
| illuminant |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Use as follows XYZ = inv(transform) * clip( (raw - |
| black level(raw) ) /<wbr> ( white level - max black level) ).<wbr> |
| At least in the simple case |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.colorTransform2"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform2</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 9 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">3x3 matrix in row-major-order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Linear mapping from XYZ (D50) color space to |
| reference linear sensor color,<wbr> for second reference |
| illuminant |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.forwardMatrix1"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix1</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 9 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">3x3 matrix in row-major-order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Used by DNG for better WB |
| adaptation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.forwardMatrix2"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix2</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">rational</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 9 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">3x3 matrix in row-major-order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Used by DNG for better WB |
| adaptation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.maxAnalogSensitivity"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>max<wbr>Analog<wbr>Sensitivity</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum sensitivity that is implemented |
| purely through analog gain |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| For android.<wbr>sensor.<wbr>sensitivity values less than or |
| equal to this,<wbr> all applied gain must be analog.<wbr> For |
| values above this,<wbr> it can be a mix of analog and |
| digital |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| <li><a href="#tag_FULL">FULL</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.noiseModelCoefficients"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>noise<wbr>Model<wbr>Coefficients</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">float constants A,<wbr> B for the noise variance model</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Estimation of sensor noise |
| characteristics |
| </td> |
| |
| <td class="entry_units"> |
| var(raw pixel value) = electrons * (baseGainFactor |
| * iso/<wbr>100)^2 + A * (baseGainFactor * iso/<wbr>100)^2 + |
| B |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| A represents sensor read noise before analog |
| amplification; B represents noise from A/<wbr>D conversion and |
| other circuits after amplification.<wbr> Both noise sources |
| are assumed to be gaussian,<wbr> independent,<wbr> and not to vary |
| across the sensor |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.orientation"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>orientation</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Clockwise angle through which the output |
| image needs to be rotated to be upright on the device |
| screen in its native orientation.<wbr> Also defines the |
| direction of rolling shutter readout,<wbr> which is from top |
| to bottom in the sensor's coordinate system |
| </td> |
| |
| <td class="entry_units"> |
| degrees clockwise rotation,<wbr> only multiples of |
| 90 |
| </td> |
| |
| <td class="entry_range"> |
| 0,<wbr>90,<wbr>180,<wbr>270 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.referenceIlluminant1"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant1</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">DAYLIGHT</span> |
| <span class="entry_type_enum_value">1</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FLUORESCENT</span> |
| <span class="entry_type_enum_value">2</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">TUNGSTEN</span> |
| <span class="entry_type_enum_value">3</span> |
| <span class="entry_type_enum_notes">Incandescent light</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FLASH</span> |
| <span class="entry_type_enum_value">4</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FINE_WEATHER</span> |
| <span class="entry_type_enum_value">9</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">CLOUDY_WEATHER</span> |
| <span class="entry_type_enum_value">10</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SHADE</span> |
| <span class="entry_type_enum_value">11</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span> |
| <span class="entry_type_enum_value">12</span> |
| <span class="entry_type_enum_notes">D 5700 - 7100K</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span> |
| <span class="entry_type_enum_value">13</span> |
| <span class="entry_type_enum_notes">N 4600 - 5400K</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span> |
| <span class="entry_type_enum_value">14</span> |
| <span class="entry_type_enum_notes">W 3900 - 4500K</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">WHITE_FLUORESCENT</span> |
| <span class="entry_type_enum_value">15</span> |
| <span class="entry_type_enum_notes">WW 3200 - 3700K</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">STANDARD_A</span> |
| <span class="entry_type_enum_value">17</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">STANDARD_B</span> |
| <span class="entry_type_enum_value">18</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">STANDARD_C</span> |
| <span class="entry_type_enum_value">19</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">D55</span> |
| <span class="entry_type_enum_value">20</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">D65</span> |
| <span class="entry_type_enum_value">21</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">D75</span> |
| <span class="entry_type_enum_value">22</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">D50</span> |
| <span class="entry_type_enum_value">23</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span> |
| <span class="entry_type_enum_value">24</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Light source used to define transform |
| 1 |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| [EXIF LightSource tag] Must all these be |
| supported? Need CCT for each! |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| <li><a href="#tag_EXIF">EXIF</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.sensor.referenceIlluminant2"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant2</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Light source used to define transform |
| 2 |
| </td> |
| |
| <td class="entry_units"> |
| Same as illuminant 1 |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.sensor.exposureTime"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Duration each pixel is exposed to |
| light.<wbr> |
| <br> |
| <br> If the sensor can't expose this exact duration,<wbr> it should shorten the |
| duration exposed to the nearest possible value (rather than expose longer).<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range |
| </td> |
| |
| <td class="entry_notes"> |
| 1/<wbr>10000 - 30 sec range.<wbr> No bulb mode |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.sensor.frameDuration"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Duration from start of frame exposure to |
| start of next frame exposure |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr> |
| android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations |
| </td> |
| |
| <td class="entry_notes"> |
| Exposure time has priority,<wbr> so duration is set to |
| max(duration,<wbr> exposure time + overhead) |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.sensor.sensitivity"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Gain applied to image data.<wbr> Must be |
| implemented through analog gain only if set to values |
| below 'maximum analog sensitivity'.<wbr> |
| <br> |
| <br> If the sensor can't apply this exact gain,<wbr> it should lessen the |
| gain to the nearest possible value (rather than gain more).<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| ISO arithmetic units |
| </td> |
| |
| <td class="entry_range"> |
| android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range |
| </td> |
| |
| <td class="entry_notes"> |
| ISO 12232:2006 REI method |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.sensor.timestamp"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>timestamp</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int64</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Time at start of exposure of first |
| row |
| </td> |
| |
| <td class="entry_units"> |
| nanoseconds |
| </td> |
| |
| <td class="entry_range"> |
| > 0 |
| </td> |
| |
| <td class="entry_notes"> |
| Monotonic,<wbr> should be synced to other timestamps in |
| system |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.sensor.temperature"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>temperature</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The temperature of the sensor,<wbr> sampled at the time |
| exposure began for this frame.<wbr> |
| <br> |
| <br> The thermal diode being queried should be inside the sensor PCB,<wbr> or |
| somewhere close to it.<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| celsius |
| </td> |
| |
| <td class="entry_range"> |
| Optional.<wbr> This value is missing if no temperature is available.<wbr> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_FULL">FULL</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_shading" class="section">shading</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.shading.mode"> |
| <td class="entry_name">android.<wbr>shading.<wbr>mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No shading correction is applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Quality of lens shading correction applied |
| to the image data |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.shading.strength"> |
| <td class="entry_name">android.<wbr>shading.<wbr>strength</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Control the amount of shading correction |
| applied to the images |
| </td> |
| |
| <td class="entry_units"> |
| unitless: 1-10; 10 is full shading |
| compensation |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_ADV">ADV</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.shading.mode"> |
| <td class="entry_name">android.<wbr>shading.<wbr>mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| <span class="entry_type_enum_notes">No shading correction is applied</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Quality of lens shading correction applied |
| to the image data |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_statistics" class="section">statistics</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.statistics.faceDetectMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SIMPLE</span> |
| <span class="entry_type_enum_notes">Optional Return rectangle and confidence |
| only</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FULL</span> |
| <span class="entry_type_enum_notes">Optional Return all face |
| metadata</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| State of the face detector |
| unit |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| |
| android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| Whether face detection is enabled,<wbr> and whether it |
| should output just the basic fields or the full set of |
| fields.<wbr> Value must be one of the |
| android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.statistics.histogramMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operating mode for histogram |
| generation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.statistics.sharpnessMapMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operating mode for sharpness map |
| generation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.statistics.lensShadingMapMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>lens<wbr>Shading<wbr>Map<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether the HAL needs to output the lens |
| shading map in output result metadata |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When set to ON,<wbr> |
| android.<wbr>statistics.<wbr>lens<wbr>Shading<wbr>Map must be provided in |
| the output result metdata.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<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]</span> |
| <div class="entry_type_notes">List of enums from android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Which face detection modes are available,<wbr> |
| if any |
| </td> |
| |
| <td class="entry_units"> |
| List of enum: |
| OFF |
| SIMPLE |
| FULL |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| OFF means face detection is disabled,<wbr> it must |
| be included in the list.<wbr> |
| <br> |
| <br> SIMPLE means the device supports the |
| android.<wbr>statistics.<wbr>face<wbr>Rectangles and |
| android.<wbr>statistics.<wbr>face<wbr>Scores outputs.<wbr> |
| <br> |
| <br> FULL means the device additionally supports the |
| android.<wbr>statistics.<wbr>face<wbr>Ids and |
| android.<wbr>statistics.<wbr>face<wbr>Landmarks outputs.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.statistics.info.histogramBucketCount"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>histogram<wbr>Bucket<wbr>Count</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Number of histogram buckets |
| supported |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 64 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.statistics.info.maxFaceCount"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Face<wbr>Count</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum number of simultaneously detectable |
| faces |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 4 if availableFaceDetectionModes lists |
| modes besides OFF,<wbr> otherwise 0 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.statistics.info.maxHistogramCount"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Histogram<wbr>Count</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum value possible for a histogram |
| bucket |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Sharpness<wbr>Map<wbr>Value</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [system]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum value possible for a sharpness map |
| region.<wbr> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="static_android.statistics.info.sharpnessMapSize"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>sharpness<wbr>Map<wbr>Size</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 2 |
| </span> |
| <span class="entry_type_visibility"> [system as size]</span> |
| <div class="entry_type_notes">width x height</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Dimensions of the sharpness |
| map |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must be at least 32 x 32 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.faceDetectMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">SIMPLE</span> |
| <span class="entry_type_enum_notes">Optional Return rectangle and confidence |
| only</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FULL</span> |
| <span class="entry_type_enum_notes">Optional Return all face |
| metadata</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| State of the face detector |
| unit |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| |
| android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes |
| </td> |
| |
| <td class="entry_notes"> |
| Whether face detection is enabled,<wbr> and whether it |
| should output just the basic fields or the full set of |
| fields.<wbr> Value must be one of the |
| android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.faceIds"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Ids</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of unique IDs for detected |
| faces |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Only available if faceDetectMode == FULL |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.faceLandmarks"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Landmarks</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 6 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">(leftEyeX,<wbr> leftEyeY,<wbr> rightEyeX,<wbr> rightEyeY,<wbr> mouthX,<wbr> mouthY)</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of landmarks for detected |
| faces |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Only available if faceDetectMode == FULL |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.faceRectangles"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Rectangles</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 4 |
| </span> |
| <span class="entry_type_visibility"> [public as rectangle]</span> |
| <div class="entry_type_notes">(xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax).<wbr> (0,<wbr>0) is top-left of active pixel area</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of the bounding rectangles for detected |
| faces |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Only available if faceDetectMode != OFF |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.faceScores"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Scores</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]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| List of the face confidence scores for |
| detected faces |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 1-100 |
| </td> |
| |
| <td class="entry_notes"> |
| Only available if faceDetectMode != OFF.<wbr> The value should be |
| meaningful (for example,<wbr> setting 100 at all times is illegal).<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_BC">BC</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.histogram"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>histogram</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 3 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">count of pixels for each color channel that fall into each histogram bucket,<wbr> scaled to be between 0 and maxHistogramCount</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A 3-channel histogram based on the raw |
| sensor data |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| The k'th bucket (0-based) covers the input range |
| (with w = android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level) of [ k * w/<wbr>N,<wbr> |
| (k + 1) * w /<wbr> N ).<wbr> If only a monochrome sharpness map is |
| supported,<wbr> all channels should have the same data |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.histogramMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operating mode for histogram |
| generation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.sharpnessMap"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x m x 3 |
| </span> |
| <span class="entry_type_visibility"> [system]</span> |
| <div class="entry_type_notes">estimated sharpness for each region of the input image.<wbr> Normalized to be between 0 and maxSharpnessMapValue.<wbr> Higher values mean sharper (better focused)</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A 3-channel sharpness map,<wbr> based on the raw |
| sensor data |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| If only a monochrome sharpness map is supported,<wbr> |
| all channels should have the same data |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [system as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Operating mode for sharpness map |
| generation |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_V1">V1</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.lensShadingMap"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>lens<wbr>Shading<wbr>Map</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 x n x m |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A low-resolution map of lens shading,<wbr> per |
| color channel |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Each gain factor is >= 1 |
| </td> |
| |
| <td class="entry_notes"> |
| Assume bilinear interpolation of map.<wbr> The least |
| shaded section of the image should have a gain factor |
| of 1; all other sections should have gains above 1.<wbr> |
| the map should be on the order of 30-40 rows,<wbr> and |
| must be smaller than 64x64.<wbr> |
| <br> |
| <br> When android.<wbr>color<wbr>Correction.<wbr>mode = TRANSFORM_<wbr>MATRIX,<wbr> the map |
| must take into account the colorCorrection settings.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.predictedColorGains"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>predicted<wbr>Color<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]</span> |
| <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The best-fit color channel gains calculated |
| by the HAL's statistics units for the current output frame |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| |
| This may be different than the gains used for this frame,<wbr> |
| since statistics processing on data from a new frame |
| typically completes after the transform has already been |
| applied to that frame.<wbr> |
| <br> |
| <br> The 4 channel gains are defined in Bayer domain,<wbr> |
| see android.<wbr>color<wbr>Correction.<wbr>gains for details.<wbr> |
| <br> |
| <br> This value should always be calculated by the AWB block,<wbr> |
| regardless of the android.<wbr>control.<wbr>* current values.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.predictedColorTransform"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>predicted<wbr>Color<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]</span> |
| <div class="entry_type_notes">3x3 rational matrix in row-major order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The best-fit color transform matrix estimate |
| calculated by the HAL's statistics units for the current |
| output frame |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| The HAL must provide the estimate from its |
| statistics unit on the white balance transforms to use |
| for the next frame.<wbr> These are the values the HAL believes |
| are the best fit for the current output frame.<wbr> This may |
| be different than the transform used for this frame,<wbr> since |
| statistics processing on data from a new frame typically |
| completes after the transform has already been applied to |
| that frame.<wbr> |
| <br> |
| <br> These estimates must be provided for all frames,<wbr> even if |
| capture settings and color transforms are set by the application.<wbr> |
| <br> |
| <br> This value should always be calculated by the AWB block,<wbr> |
| regardless of the android.<wbr>control.<wbr>* current values.<wbr> |
| |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.statistics.sceneFlicker"> |
| <td class="entry_name">android.<wbr>statistics.<wbr>scene<wbr>Flicker</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">NONE</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">50HZ</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">60HZ</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| The HAL estimated scene illumination lighting |
| frequency |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| Report NONE if there doesn't appear to be flickering |
| illumination |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_tonemap" class="section">tonemap</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.tonemap.curveBlue"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Table mapping blue input values to output |
| values |
| </td> |
| |
| <td class="entry_units"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_range"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_notes"> |
| Tonemapping /<wbr> contrast /<wbr> gamma curve for the blue |
| channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr> |
| <br> |
| <br> See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.tonemap.curveGreen"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Table mapping green input values to output |
| values |
| </td> |
| |
| <td class="entry_units"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_range"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_notes"> |
| Tonemapping /<wbr> contrast /<wbr> gamma curve for the green |
| channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr> |
| <br> |
| <br> See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.tonemap.curveRed"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Table mapping red input values to output |
| values |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 0-1 on input and output coordinates.<wbr> |
| </td> |
| |
| <td class="entry_notes"> |
| Tonemapping /<wbr> contrast /<wbr> gamma curve for the red |
| channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr> |
| <br> |
| <br> Since the input and output ranges may vary depending on |
| the camera pipeline,<wbr> the input and output pixel values |
| are represented by normalized floating-point values |
| between 0 and 1,<wbr> with 0 == black and 1 == white.<wbr> |
| <br> |
| <br> The curve should be linearly interpolated between the |
| defined points.<wbr> The points will be listed in increasing |
| order of P_<wbr>IN.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr> |
| 0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping |
| for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 -> |
| 0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64 |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="controls_android.tonemap.mode"> |
| <td class="entry_name">android.<wbr>tonemap.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">CONTRAST_CURVE</span> |
| <span class="entry_type_enum_notes">Use the tone mapping curve specified in |
| android.<wbr>tonemap.<wbr>curve</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.tonemap.maxCurvePoints"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">int32</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum number of supported points in the |
| tonemap curve |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| >= 128 |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.tonemap.curveBlue"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Table mapping blue input values to output |
| values |
| </td> |
| |
| <td class="entry_units"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_range"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_notes"> |
| Tonemapping /<wbr> contrast /<wbr> gamma curve for the blue |
| channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr> |
| <br> |
| <br> See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.tonemap.curveGreen"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Table mapping green input values to output |
| values |
| </td> |
| |
| <td class="entry_units"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_range"> |
| same as android.<wbr>tonemap.<wbr>curve<wbr>Red |
| </td> |
| |
| <td class="entry_notes"> |
| Tonemapping /<wbr> contrast /<wbr> gamma curve for the green |
| channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr> |
| <br> |
| <br> See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.tonemap.curveRed"> |
| <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n x 2 |
| </span> |
| <span class="entry_type_visibility"> [public]</span> |
| <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Table mapping red input values to output |
| values |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| 0-1 on input and output coordinates.<wbr> |
| </td> |
| |
| <td class="entry_notes"> |
| Tonemapping /<wbr> contrast /<wbr> gamma curve for the red |
| channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr> |
| <br> |
| <br> Since the input and output ranges may vary depending on |
| the camera pipeline,<wbr> the input and output pixel values |
| are represented by normalized floating-point values |
| between 0 and 1,<wbr> with 0 == black and 1 == white.<wbr> |
| <br> |
| <br> The curve should be linearly interpolated between the |
| defined points.<wbr> The points will be listed in increasing |
| order of P_<wbr>IN.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr> |
| 0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping |
| for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 -> |
| 0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64 |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_DNG">DNG</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| <tr class="entry" id="dynamic_android.tonemap.mode"> |
| <td class="entry_name">android.<wbr>tonemap.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">CONTRAST_CURVE</span> |
| <span class="entry_type_enum_notes">Use the tone mapping curve specified in |
| android.<wbr>tonemap.<wbr>curve</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FAST</span> |
| <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw |
| bayer output</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">HIGH_QUALITY</span> |
| <span class="entry_type_enum_notes">Frame rate may be reduced by high |
| quality</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_led" class="section">led</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.led.transmit"> |
| <td class="entry_name">android.<wbr>led.<wbr>transmit</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [hidden as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| This LED is nominally used to indicate to the user |
| that the camera is powered on and may be streaming images back to the |
| Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may |
| disable this when video is processed locally and not transmitted to |
| any untrusted applications.<wbr> |
| <br> |
| <br> In particular,<wbr> the LED *must* always be on when the data could be |
| transmitted off the device.<wbr> The LED *should* always be on whenever |
| data is stored locally on the device.<wbr> |
| <br> |
| <br> The LED *may* be off if a trusted application is using the data that |
| doesn't violate the above rules.<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.led.transmit"> |
| <td class="entry_name">android.<wbr>led.<wbr>transmit</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [hidden as boolean]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| This LED is nominally used to indicate to the user |
| that the camera is powered on and may be streaming images back to the |
| Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may |
| disable this when video is processed locally and not transmitted to |
| any untrusted applications.<wbr> |
| <br> |
| <br> In particular,<wbr> the LED *must* always be on when the data could be |
| transmitted off the device.<wbr> The LED *should* always be on whenever |
| data is stored locally on the device.<wbr> |
| <br> |
| <br> The LED *may* be off if a trusted application is using the data that |
| doesn't violate the above rules.<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.led.availableLeds"> |
| <td class="entry_name">android.<wbr>led.<wbr>available<wbr>Leds</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| n |
| </span> |
| <span class="entry_type_visibility"> [hidden]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">TRANSMIT</span> |
| <span class="entry_type_enum_notes">android.<wbr>led.<wbr>transmit control is used</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A list of camera LEDs that are available on this system.<wbr> |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_info" class="section">info</td></tr> |
| |
| |
| <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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="static_android.info.supportedHardwareLevel"> |
| <td class="entry_name">android.<wbr>info.<wbr>supported<wbr>Hardware<wbr>Level</td> |
| <td class="entry_type"> |
| <span class="entry_type_name entry_type_name_enum">byte</span> |
| |
| <span class="entry_type_visibility"> [public]</span> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">LIMITED</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">FULL</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| |
| The camera 3 HAL device can implement one of two possible |
| operational modes; limited and full.<wbr> Full support is |
| expected from new higher-end devices.<wbr> Limited mode has |
| hardware requirements roughly in line with those for a |
| camera HAL device v1 implementation,<wbr> and is expected from |
| older or inexpensive devices.<wbr> Full is a strict superset of |
| limited,<wbr> and they share the same essential operational flow.<wbr> |
| <br> |
| <br> For full details refer to "S3.<wbr> Operational Modes" in camera3.<wbr>h |
| |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Optional.<wbr> Default value is LIMITED.<wbr> |
| </td> |
| |
| <td class="entry_notes"> |
| </td> |
| |
| <td class="entry_tags"> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <tr><td colspan="7" id="section_blackLevel" class="section">blackLevel</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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="controls_android.blackLevel.lock"> |
| <td class="entry_name">android.<wbr>black<wbr>Level.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether black-level compensation is locked |
| to its current values,<wbr> or is free to vary |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When set to ON,<wbr> the values used for black-level |
| compensation must not change until the lock is set to |
| OFF |
| <br> |
| <br> Since changes to certain capture parameters (such as |
| exposure time) may require resetting of black level |
| compensation,<wbr> the HAL must report whether setting the |
| black level lock was successful in the output result |
| metadata.<wbr> |
| <br> |
| <br> The black level locking must happen at the sensor,<wbr> and not at the ISP.<wbr> |
| If for some reason black level locking is no longer legal (for example,<wbr> |
| the analog gain has changed,<wbr> which forces black levels to be |
| recalculated),<wbr> then the HAL is free to override this request (and it |
| must report 'OFF' when this does happen) until the next time locking |
| is legal again.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_HAL2">HAL2</a></li> |
| </ul> |
| </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_notes">Notes</th> |
| <th class="th_tags">Tags</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <tr class="entry" id="dynamic_android.blackLevel.lock"> |
| <td class="entry_name">android.<wbr>black<wbr>Level.<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> |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">OFF</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">ON</span> |
| </li> |
| </ul> |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Whether black-level compensation is locked |
| to its current values,<wbr> or is free to vary |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| When set to ON,<wbr> the values used for black-level |
| compensation must not change until the lock is set to |
| OFF |
| <br> |
| <br> Since changes to certain capture parameters (such as |
| exposure time) may require resetting of black level |
| compensation,<wbr> the HAL must report whether setting the |
| black level lock was successful in the output result |
| metadata.<wbr> |
| <br> |
| <br> The black level locking must happen at the sensor,<wbr> and not at the ISP.<wbr> |
| If for some reason black level locking is no longer legal (for example,<wbr> |
| the analog gain has changed,<wbr> which forces black levels to be |
| recalculated),<wbr> then the HAL is free to override this request (and it |
| must report 'OFF' when this does happen) until the next time locking |
| is legal again.<wbr> |
| </td> |
| |
| <td class="entry_tags"> |
| <ul class="entry_tags"> |
| <li><a href="#tag_HAL2">HAL2</a></li> |
| </ul> |
| </td> |
| |
| </tr> <!-- end of entry --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| |
| <!-- end of section --> |
| <!-- </namespace> --> |
| </table> |
| |
| <div class="tags" id="tag_index"> |
| <h2>Tags</h2> |
| <ul> |
| <li id="tag_AWB">AWB - |
| Needed for auto white balance |
| |
| <ul class="tags_entries"> |
| <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> |
| </ul> |
| </li> <!-- tag_AWB --> |
| <li id="tag_BC">BC - |
| Needed for backwards compatibility with old Java API |
| |
| <ul class="tags_entries"> |
| <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li> |
| <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li> |
| <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li> |
| <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li> |
| <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li> |
| <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li> |
| <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li> |
| <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li> |
| <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li> |
| <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li> |
| <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li> |
| <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li> |
| <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li> |
| <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li> |
| <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li> |
| <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li> |
| <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li> |
| <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li> |
| <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li> |
| <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li> |
| <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li> |
| <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li> |
| <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li> |
| <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li> |
| <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li> |
| <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li> |
| <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li> |
| <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li> |
| <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li> |
| <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li> |
| <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li> |
| <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li> |
| <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li> |
| <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li> |
| <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li> |
| <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li> |
| <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> |
| <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> |
| <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li> |
| <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li> |
| <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li> |
| <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li> |
| <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li> |
| <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li> |
| <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li> |
| <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li> |
| <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li> |
| <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li> |
| <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li> |
| <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> |
| <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li> |
| <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> |
| <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> |
| <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> |
| <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li> |
| <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li> |
| <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li> |
| <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li> |
| </ul> |
| </li> <!-- tag_BC --> |
| <li id="tag_V1">V1 - |
| New features for first camera 2 release (API1) |
| |
| <ul class="tags_entries"> |
| <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li> |
| <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li> |
| <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li> |
| <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li> |
| <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li> |
| <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li> |
| <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li> |
| <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li> |
| <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li> |
| <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li> |
| <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li> |
| <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li> |
| <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li> |
| <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li> |
| <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li> |
| <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li> |
| <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li> |
| <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li> |
| <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li> |
| <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li> |
| <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li> |
| <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li> |
| <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> |
| <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li> |
| <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li> |
| <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li> |
| <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li> |
| <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li> |
| <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li> |
| <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> |
| <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li> |
| <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li> |
| <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li> |
| <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li> |
| <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- tag_V1 --> |
| <li id="tag_ADV">ADV - None |
| <ul class="tags_entries"> |
| <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li> |
| <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li> |
| <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li> |
| <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li> |
| <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li> |
| <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li> |
| </ul> |
| </li> <!-- tag_ADV --> |
| <li id="tag_DNG">DNG - |
| Needed for DNG file support |
| |
| <ul class="tags_entries"> |
| <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li> |
| <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li> |
| <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li> |
| <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li> |
| <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li> |
| <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li> |
| <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li> |
| <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li> |
| <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li> |
| <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li> |
| <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li> |
| <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li> |
| <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> |
| <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li> |
| </ul> |
| </li> <!-- tag_DNG --> |
| <li id="tag_EXIF">EXIF - None |
| <ul class="tags_entries"> |
| <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> |
| </ul> |
| </li> <!-- tag_EXIF --> |
| <li id="tag_HAL2">HAL2 - |
| Entry is only used by camera device HAL 2.x |
| |
| <ul class="tags_entries"> |
| <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li> |
| <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li> |
| <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li> |
| <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li> |
| </ul> |
| </li> <!-- tag_HAL2 --> |
| <li id="tag_FULL">FULL - |
| Entry is required for full hardware level devices, and optional for other hardware levels |
| |
| <ul class="tags_entries"> |
| <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li> |
| <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> |
| <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li> |
| </ul> |
| </li> <!-- tag_FULL --> |
| </ul> |
| </div> |
| |
| [ <a href="#">top</a> ] |
| |
| </body> |
| </html> |