| <!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 HAL2.0 Properties</title> |
| <style type="text/css"> |
| .section { font-size: 1.5em; font-weight: bold; background-color: beige; padding: 0.5em 0em 0.5em 0.1em } |
| .kind { font-size: 1.2em; font-weight: bold; padding-left: 0.5em; background-color: gray } |
| .entry { background-color: burlywood } |
| |
| /* table column sizes */ |
| table { table-layout: fixed; width: 100%; word-wrap: break-word } |
| td,th { border: 1px solid; } |
| .th_name { width: 20% } |
| .th_units { width: 10% } |
| .th_tags { width: 5% } |
| .th_notes { width: 30% } |
| .th_type { width: 20% } |
| 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 { font-family: monospace; font-style: italic; } |
| |
| /* Entry type flair */ |
| .entry_type_name { color: darkgreen; font-weight: bold; } |
| .entry_type_name_enum:after { color: darkgreen; font-weight: bold; content:" (enum)" } |
| .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 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 HAL2.0 Properties</h1> |
| |
| <h2>Table of Contents</h2> |
| <ul class="toc"> |
| <li><a href="#tag_index">Tags</a></li> |
| |
| |
| <li><p class="toc_section"><a href="#section_colorCorrection">colorCorrection</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a> (controls)</li> |
| <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a> (controls)</li> |
| <li><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_control">control</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li> |
| <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.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li> |
| <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li> |
| <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</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="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.aeState">android.control.aeState</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.afMode">android.control.afMode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.afState">android.control.afState</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.awbState">android.control.awbState</a> (dynamic)</li> |
| <li><a href="#dynamic_android.control.mode">android.control.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_demosaic">demosaic</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_edge">edge</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li> |
| <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li> |
| <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_flash">flash</a></p> |
| <ul class="toc_section"> |
| <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="#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="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li> |
| <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="#dynamic_android.flash.firingPower">android.flash.firingPower</a> (dynamic)</li> |
| <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a> (dynamic)</li> |
| <li><a href="#dynamic_android.flash.mode">android.flash.mode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.flash.state">android.flash.state</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_geometric">geometric</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.geometric.mode">android.geometric.mode</a> (controls)</li> |
| <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_hotPixel">hotPixel</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li> |
| <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li> |
| <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_jpeg">jpeg</a></p> |
| <ul class="toc_section"> |
| <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="#static_android.jpeg.maxSize">android.jpeg.maxSize</a> (static)</li> |
| <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (dynamic)</li> |
| <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_lens">lens</a></p> |
| <ul class="toc_section"> |
| <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.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</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.hyperfocalDistance">android.lens.info.hyperfocalDistance</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.shadingMap">android.lens.info.shadingMap</a> (static)</li> |
| <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li> |
| <li><a href="#static_android.lens.facing">android.lens.facing</a> (static)</li> |
| <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li> |
| <li><a href="#static_android.lens.position">android.lens.position</a> (static)</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.focalLength">android.lens.focalLength</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_noiseReduction">noiseReduction</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li> |
| <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li> |
| <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_quirks">quirks</a></p> |
| <ul class="toc_section"> |
| <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a> (static)</li> |
| <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a> (static)</li> |
| <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a> (static)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_request">request</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.request.frameCount">android.request.frameCount</a> (controls)</li> |
| <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li> |
| <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li> |
| <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</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="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li> |
| <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li> |
| <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a> (dynamic)</li> |
| <li><a href="#dynamic_android.request.id">android.request.id</a> (dynamic)</li> |
| <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_scaler">scaler</a></p> |
| <ul class="toc_section"> |
| <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="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a> (static)</li> |
| <li><a href="#static_android.scaler.maxDigitalZoom">android.scaler.maxDigitalZoom</a> (static)</li> |
| <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_sensor">sensor</a></p> |
| <ul class="toc_section"> |
| <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.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li> |
| <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</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.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.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.baseGainFactor">android.sensor.baseGainFactor</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.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li> |
| <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li> |
| <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li> |
| <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li> |
| <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li> |
| <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a> (dynamic)</li> |
| <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a> (dynamic)</li> |
| <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a> (dynamic)</li> |
| <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_shading">shading</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.shading.mode">android.shading.mode</a> (controls)</li> |
| <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li> |
| <li><a href="#dynamic_android.shading.mode">android.shading.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_statistics">statistics</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</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="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a> (static)</li> |
| <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li> |
| <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li> |
| <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li> |
| <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li> |
| <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li> |
| <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (dynamic)</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.statistics.histogram">android.statistics.histogram</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li> |
| <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| <li><p class="toc_section"><a href="#section_tonemap">tonemap</a></p> |
| <ul class="toc_section"> |
| <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (controls)</li> |
| <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (controls)</li> |
| <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li> |
| <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a> (controls)</li> |
| <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a> (static)</li> |
| <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (dynamic)</li> |
| <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (dynamic)</li> |
| <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a> (dynamic)</li> |
| <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a> (dynamic)</li> |
| </ul> |
| </li> <!-- toc_section --> |
| </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> |
| <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> |
| |
| |
| |
| <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 |
| 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"> |
| </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">float</span> |
| <span class="entry_type_container">x</span> |
| |
| <span class="entry_type_array"> |
| 3 x 3 |
| </span> |
| |
| <div class="entry_type_notes">3x3 float matrix in row-major order</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A transform matrix to chromatically adapt |
| pixels in the CIE XYZ (1931) color space from the scene |
| illuminant to the sRGB-standard |
| D65-illuminant |
| </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"> |
| Values outside (0,<wbr>1) should be clamped.<wbr> Need to |
| provide utilities to go from CCT (+hue?),<wbr> or (x,<wbr>y) white |
| point,<wbr> (or AWB mode) to matrix; use linear Bradford |
| algorithm.<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> |
| <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.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> |
| |
| |
| |
| <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 |
| 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"> |
| </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> |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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 |
| and sensor.<wbr>sensitivity 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> |
| |
| |
| |
| </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 coordinate system is based on the |
| active pixel array,<wbr> with (0,<wbr>0) being the top-left of the |
| active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the |
| bottom-right point of the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> 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> |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> 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> |
| |
| |
| |
| <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>Position 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> |
| |
| |
| |
| </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 coordinate system is based on the |
| active pixel array,<wbr> with (0,<wbr>0) being the top-left of the |
| active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the |
| bottom-right point of the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> 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> |
| |
| |
| |
| <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> 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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| </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> Each area is a rectangle |
| plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The |
| coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left of the active pixel array,<wbr> |
| and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the |
| bottom-right point of the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> 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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| </td> |
| |
| <td class="entry_units"> |
| List of enums (android.<wbr>control.<wbr>awb<wbr>Mode) |
| </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> |
| |
| |
| |
| |
| </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 lengthavailablescenemodes |
| </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> 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> 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> |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| </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 coordinate system is based on the |
| active pixel array,<wbr> with (0,<wbr>0) being the top-left of the |
| active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the |
| bottom-right point of the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> 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> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">INACTIVE</span> |
| <span class="entry_type_enum_notes">AE is off</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> |
| |
| |
| |
| <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>Position 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> |
| |
| |
| |
| </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 coordinate system is based on the |
| active pixel array,<wbr> with (0,<wbr>0) being the top-left of the |
| active pixel array,<wbr> and |
| (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the |
| bottom-right point of the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> 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> |
| |
| |
| |
| <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</span> |
| </li> |
| <li> |
| <span class="entry_type_enum_name">PASSIVE_SCAN</span> |
| <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported 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 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 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 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 AF has |
| failed to focus successfully and is |
| locked</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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| |
| |
| |
| </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> Each area is a rectangle |
| plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The |
| coordinate system is based on the active pixel array,<wbr> |
| with (0,<wbr>0) being the top-left of the active pixel array,<wbr> |
| and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr> |
| android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the |
| bottom-right point of the active pixel array.<wbr> The weight |
| should be nonnegative.<wbr> 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> |
| |
| |
| |
| <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</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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| <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> |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| </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> |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> 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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| </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> |
| |
| |
| |
| </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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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.shadingMap"> |
| <td class="entry_name">android.<wbr>lens.<wbr>info.<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"> |
| 3 x n x m |
| </span> |
| |
| <div class="entry_type_notes">2D array of float gain factors per channel to correct for lens falloff.<wbr> Should be on the order of 3x40x30</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> |
| </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.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> |
| |
| <div class="entry_type_notes">width and height of lens shading map</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> |
| |
| |
| |
| <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> |
| |
| <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: (0,<wbr>0) means that the camera optical axis |
| is perpendicular to the display surface; (45,<wbr>0) means |
| that the camera points 45 degrees up when device is held |
| upright; (45,<wbr>90) means the camera points 45 degrees to |
| the right when the device is held upright.<wbr> 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> |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <ul class="entry_type_enum"> |
| <li> |
| <span class="entry_type_enum_name">STATIONARY</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> |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| |
| </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> 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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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 --> |
| |
| |
| |
| <!-- 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> |
| <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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| A frame counter set by the framework.<wbr> Must |
| be maintained unchanged in output frame |
| </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> |
| |
| |
| |
| |
| </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">byte</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"> |
| </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> |
| |
| |
| |
| <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">byte</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"> |
| </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> |
| |
| |
| |
| <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 |
| </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> |
| <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> |
| |
| |
| |
| </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> |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Number of frames captured since |
| open() |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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">byte</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"> |
| </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> |
| <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"> |
| 3 |
| </span> |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Top-left corner and width of the output |
| region to select from the active pixel |
| array |
| </td> |
| |
| <td class="entry_units"> |
| (x,<wbr>y) of top-left corner,<wbr> width of region in |
| pixels; (0,<wbr>0) is top-left corner of |
| android.<wbr>sensor.<wbr>active<wbr>Pixel<wbr>Array |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| [BC - zoom] Height determined based on width and |
| aspect ratio of output stream.<wbr> Negative values for corner |
| are allowed for raw output if full pixel array is larger |
| than active pixel array.<wbr> Width may be rounded to nearest |
| larger supportable width,<wbr> especially for raw output,<wbr> |
| where only a few fixed scales may be possible |
| </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> |
| <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> |
| |
| <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">YCbCr_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">JPEG</span> |
| <span class="entry_type_enum_value">0x21</span> |
| <span class="entry_type_enum_notes">BLOB</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> |
| |
| |
| |
| </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,<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> |
| |
| |
| |
| </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">int32</span> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| TODO: have a real description here |
| </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.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> |
| |
| |
| |
| </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> |
| |
| |
| |
| </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"> |
| </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> |
| |
| |
| |
| </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> |
| |
| |
| |
| </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 --> |
| |
| |
| <tr class="entry" id="static_android.scaler.maxDigitalZoom"> |
| <td class="entry_name">android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom</td> |
| <td class="entry_type"> |
| <span class="entry_type_name">float</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 --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| <tr><td colspan="7" class="kind">dynamic</td></tr> |
| |
| <thead> |
| <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"> |
| 3 |
| </span> |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Top-left corner and width of the output |
| region to select from the active pixel |
| array |
| </td> |
| |
| <td class="entry_units"> |
| (x,<wbr>y) of top-left corner,<wbr> width of region in |
| pixels; (0,<wbr>0) is top-left corner of |
| android.<wbr>sensor.<wbr>active<wbr>Pixel<wbr>Array |
| </td> |
| |
| <td class="entry_range"> |
| </td> |
| |
| <td class="entry_notes"> |
| [BC - zoom] Height determined based on width and |
| aspect ratio of output stream.<wbr> Negative values for corner |
| are allowed for raw output if full pixel array is larger |
| than active pixel array.<wbr> Width may be rounded to nearest |
| larger supportable width,<wbr> especially for raw output,<wbr> |
| where only a few fixed scales may be possible |
| </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> |
| <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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Duration each pixel is exposed to |
| light |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| </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> |
| <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> |
| |
| <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.availableSensitivities"> |
| <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>available<wbr>Sensitivities</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> |
| |
| <div class="entry_type_notes">List of supported sensitivity values</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Range of valid sensitivities |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| Must at least include 100,<wbr> 200,<wbr> 400,<wbr> 800,<wbr> |
| 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> |
| |
| |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Maximum 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>info.<wbr>available<wbr>Min<wbr>Frame<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> |
| |
| <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> |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| </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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| </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> |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Duration each pixel is exposed to |
| light |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| </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> |
| |
| |
| |
| |
| </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 --> |
| |
| |
| |
| <!-- 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> |
| <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> |
| |
| |
| |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| <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>available<wbr>Face<wbr>Detect<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.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> |
| |
| |
| |
| <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> |
| |
| |
| |
| <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 --> |
| |
| |
| |
| <!-- end of kind --> |
| </tbody> |
| <tr><td colspan="7" class="kind">static</td></tr> |
| |
| <thead> |
| <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> |
| |
| <div class="entry_type_notes">List of enums</div> |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| Which face detection modes are available,<wbr> |
| if any |
| </td> |
| |
| <td class="entry_units"> |
| </td> |
| |
| <td class="entry_range"> |
| OFF |
| </td> |
| |
| <td class="entry_notes"> |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </td> <!-- entry_type --> |
| |
| <td class="entry_description"> |
| If face detection is supported,<wbr> how many |
| faces can be detected at once |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| |
| |
| |
| </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> |
| |
| <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> |
| <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> |
| |
| |
| |
| <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>available<wbr>Face<wbr>Detect<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="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> |
| |
| |
| |
| </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> |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| </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"> |
| 0-100 |
| </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.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> |
| |
| <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> |
| |
| |
| |
| <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> |
| |
| <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> |
| |
| |
| |
| <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 --> |
| |
| |
| |
| <!-- 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> |
| <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> |
| |
| |
| |
| |
| </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"> |
| </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> |
| |
| |
| |
| |
| </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"> |
| </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> |
| |
| <div class="entry_type_notes">A 1D array of pairs of floats.<wbr> mapping a 0-1 input range to a 0-1 output range.<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> Max entry |
| count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points |
| </td> |
| |
| <td class="entry_notes"> |
| .<wbr>The input range must be monotonically increasing |
| with N,<wbr> and values between entries should be linearly |
| interpolated.<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> |
| |
| |
| |
| <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> |
| <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> |
| |
| |
| |
| |
| </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> |
| <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> |
| |
| |
| |
| |
| </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"> |
| </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> |
| |
| |
| |
| |
| </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"> |
| </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> |
| |
| <div class="entry_type_notes">A 1D array of pairs of floats.<wbr> mapping a 0-1 input range to a 0-1 output range.<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> Max entry |
| count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points |
| </td> |
| |
| <td class="entry_notes"> |
| .<wbr>The input range must be monotonically increasing |
| with N,<wbr> and values between entries should be linearly |
| interpolated.<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> |
| |
| |
| |
| <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 --> |
| <!-- </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.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="#static_android.scaler.maxDigitalZoom">android.scaler.maxDigitalZoom</a> (static)</li> |
| <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li> |
| <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</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.availableSensitivities">android.sensor.info.availableSensitivities</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.lens.info.shadingMap">android.lens.info.shadingMap</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 --> |
| </ul> |
| </div> |
| |
| [ <a href="#">top</a> ] |
| |
| </body> |
| </html> |