<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (C) 2018-2020 Intel Corporation

     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.
-->

<CameraSettings>
    <Profiles cameraId="0" name="imx208">
        <Supported_hardware>
            <hwType value="SUPPORTED_HW_IPU3"/>
        </Supported_hardware>

        <Android_metadata> <!-- Android static metadata only -->
            <!-- Color Correction -->
            <colorCorrection.availableAberrationModes value="OFF"/>
            <!-- Control -->
            <control.availableModes value="AUTO"/>
            <control.aeAvailableAntibandingModes value="OFF,50HZ,60Hz,AUTO"/>
            <control.aeAvailableModes value="OFF,ON"/>
            <control.aeLockAvailable value="TRUE"/>
            <control.aeAvailableTargetFpsRanges value="15,15,24,24,15,30,30,30,15,60,60,60"/>
            <control.aeCompensationRange value="0,0"/>
            <control.aeCompensationStep value="0,1"/>
            <control.afAvailableModes value="OFF"/>
            <control.availableEffects value="OFF"/>
            <control.awbAvailableModes value="AUTO"/>
            <control.awbLockAvailable value="TRUE"/>
            <control.availableSceneModes value="FACE_PRIORITY"/>
            <control.availableVideoStabilizationModes value="OFF"/>
            <control.maxRegions value="1,0,0"/>
            <edge.availableEdgeModes value="OFF,FAST,HIGH_QUALITY,ZERO_SHUTTER_LAG"/>
            <!-- JPEG -->
            <jpeg.maxSize value="3182784"/>  <!-- 1936*1096*1.5 -->
            <jpeg.availableThumbnailSizes value="0,0,160,120,320,180,320,240"/> <!-- INCREASING ORDER -->
            <!-- Lens Info-->
            <lens.info.availableApertures value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.availableFilterDensities value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.availableFocalLengths value="1.93"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.availableOpticalStabilization value="OFF"/> <!-- OPTIONS: OFF, ON -->
            <lens.info.hyperfocalDistance value="0.0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.minimumFocusDistance value="0.1"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.shadingMapSize value="0,0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <lens.info.focusDistanceCalibration value="APPROXIMATE"/>
            <!-- Lens -->
            <lens.facing value="FRONT"/>
            <!-- Request -->
            <request.maxNumOutputStreams value="0,2,1"/>
            <request.pipelineMaxDepth value="6"/>
            <request.maxNumInputStreams value="1"/>
            <request.partialResultCount value="1"/>
            <request.availableCapabilities value="BACKWARD_COMPATIBLE,READ_SENSOR_SETTINGS,MANUAL_SENSOR,YUV_REPROCESSING"/>
            <request.availableRequestKeys value="blackLevel.lock,
                colorCorrection.aberrationMode,
                colorCorrection.gains,
                colorCorrection.transform,
                control.aeAntibandingMode,
                control.aeExposureCompensation,
                control.aeLock,
                control.aeMode,
                control.aeTargetFpsRange,
                control.afMode,
                control.aeRegions,
                control.afTrigger,
                control.awbLock,
                control.awbMode,
                control.captureIntent,
                control.effectMode,
                control.mode,
                control.sceneMode,
                control.videoStabilizationMode,
                edge.mode,
                flash.mode,
                hotPixel.mode,
                jpeg.gpsLocation,
                jpeg.orientation,
                jpeg.quality,
                jpeg.thumbnailQuality,
                jpeg.thumbnailSize,
                scaler.cropRegion,
                statistics.faceDetectMode,
                sensor.frameDuration,
                sensor.exposureTime,
                sensor.sensitivity,
                lens.focalLength,
                lens.aperture,
                lens.focusDistance,
                lens.filterDensity,
                lens.opticalStabilizationMode,
                noiseReduction.mode,
                tonemap.curve,
                reprocess.effectiveExposureFactor"/>

            <request.availableResultKeys value="colorCorrection.mode,
                colorCorrection.transform,
                colorCorrection.gains,
                colorCorrection.aberrationCorrectionMode,
                control.aeAntibandingMode,
                control.aeExposureCompensation,
                control.aeLock,
                control.aeMode,
                control.aeTargetFpsRange,
                control.aePrecaptureTrigger,
                control.afMode,
                control.afTrigger,
                control.awbLock,
                control.awbMode,
                control.captureIntent,
                control.effectMode,
                control.mode,
                control.sceneMode,
                control.videoStabilizationMode,
                control.aeState,
                control.afState,
                control.awbState,
                sync.frameNumber,
                edge.mode,
                flash.mode,
                hotPixel.mode,
                jpeg.gpsLocation,
                jpeg.orientation,
                jpeg.quality,
                jpeg.thumbnailQuality,
                jpeg.thumbnailSize,
                lens.focalLength,
                lens.aperture,
                lens.filterDensity,
                lens.focusDistance,
                lens.opticalStabilizationMode,
                request.pipelineDepth,
                scaler.cropRegion,
                sensor.testPatternData,
                sensor.testPatternMode,
                sensor.timestamp,
                sensor.rollingShutterSkew,
                shading.mode,
                statistics.faceDetectMode,
                statistics.hotPixelMapMode,
                sensor.frameDuration,
                sensor.exposureTime,
                sensor.sensitivity,
                statistics.hotPixelMap,
                statistics.faces,
                statistics.lensShadingCorrectionMap,
                statistics.sceneFlicker,
                statistics.lensShadingMapMode,
                noiseReduction.mode,
                tonemap.curve,
                reprocess.effectiveExposureFactor"/>
            <request.availableCharacteristicsKeys value="0"/>
            <!-- Scaler -->
            <scaler.availableMaxDigitalZoom value="1.0"/>
            <scaler.availableInputOutputFormatsMap value="YCbCr_420_888,2,BLOB,YCbCr_420_888"/>
            <scaler.availableStreamConfigurations value="BLOB,1920x1080,OUTPUT,
                BLOB,1280x960,OUTPUT,
                BLOB,1280x720,OUTPUT,
                BLOB,640x480,OUTPUT,
                BLOB,320x240,OUTPUT,
                YCbCr_420_888,1920x1080,OUTPUT,
                YCbCr_420_888,1280x960,OUTPUT,
                YCbCr_420_888,1280x720,OUTPUT,
                YCbCr_420_888,640x480,OUTPUT,
                YCbCr_420_888,320x240,OUTPUT,
                YCbCr_420_888,1920x1080,INPUT,
                IMPLEMENTATION_DEFINED,1920x1080,OUTPUT,
                IMPLEMENTATION_DEFINED,1280x960,OUTPUT,
                IMPLEMENTATION_DEFINED,1280x720,OUTPUT,
                IMPLEMENTATION_DEFINED,640x480,OUTPUT,
                IMPLEMENTATION_DEFINED,320x240,OUTPUT" />
            <scaler.availableMinFrameDurations value="BLOB,1920x1080,16666666,
                BLOB,1280x960,16666666,
                BLOB,1280x720,16666666,
                BLOB,640x480,16666666,
                BLOB,320x240,16666666,
                YCbCr_420_888,1920x1080,66666666,
                YCbCr_420_888,1920x1080,16666666,
                YCbCr_420_888,1280x960,16666666,
                YCbCr_420_888,1280x720,16666666,
                YCbCr_420_888,640x480,16666666,
                YCbCr_420_888,320x240,16666666,
                IMPLEMENTATION_DEFINED,1920x1080,16666666,
                IMPLEMENTATION_DEFINED,1280x960,16666666,
                IMPLEMENTATION_DEFINED,1280x720,16666666,
                IMPLEMENTATION_DEFINED,640x480,16666666,
                IMPLEMENTATION_DEFINED,320x240,16666666" />
            <scaler.availableStallDurations value="BLOB,1920x1080,16666666,
                                                   BLOB,1280x960,16666666,
                                                   BLOB,1280x720,16666666,
                                                   BLOB,640x480,16666666,
                                                   BLOB,320x240,16666666" />
            <scaler.croppingType value="CENTER_ONLY"/>
            <!-- Sensor Info -->
            <sensor.info.activeArraySize value="0,0,1936,1096"/>
            <sensor.info.sensitivityRange value="85,2720"/>
            <sensor.info.colorFilterArrangement value="GRBG"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.info.exposureTimeRange value="100000,200000000"/>
            <sensor.info.maxFrameDuration value="200000000"/>
            <sensor.info.physicalSize value="2.71,1.53"/> <!-- 1936x1.4um 1096x1.4um -->
            <sensor.info.pixelArraySize value="1936x1096"/>
            <sensor.info.whiteLevel value="0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.info.timestampSource value="UNKNOWN"/>
            <!-- Sensor -->
            <sensor.baseGainFactor value="0,1"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.blackLevelPattern value="0,0,0,0"/>
            <sensor.maxAnalogSensitivity value="0"/> <!-- HAL may override this value from CMC for RAW sensors -->
            <sensor.orientation value="0"/>
            <sensor.profileHueSatMapDimensions value="0,0,0"/>
            <sensor.availableTestPatternModes value="OFF,COLOR_BARS"/>
            <!-- Info -->
            <info.supportedHardwareLevel value="LIMITED"/>
            <!-- shading -->
            <shading.availableModes value="OFF"/>
            <!-- Statistics Info -->
            <statistics.info.availableFaceDetectModes value="OFF,SIMPLE"/>
            <statistics.info.histogramBucketCount value="0"/>
            <statistics.info.maxFaceCount value="10"/>
            <statistics.info.maxHistogramCount value="0"/>
            <statistics.info.maxSharpnessMapValue value="0"/>
            <statistics.info.sharpnessMapSize value="0,0"/>
            <statistics.info.availableHotPixelMapModes value="OFF"/>
            <statistics.info.availableLensShadingMapModes value="OFF"/>
            <!-- Tonemap -->
            <tonemap.maxCurvePoints value="1024"/>
            <!-- Flash -->
            <flash.colorTemperature value="0"/>
            <flash.maxEnergy value="0"/>
            <!-- Flash info -->
            <flash.info.available value="FALSE"/>
            <flash.info.chargeDuration value="1000000"/>
            <flash.maxEnergy value="10"/>
            <!-- Sync -->
            <sync.maxLatency value="PER_FRAME_CONTROL"/>
            <!-- Hot Pixel -->
            <hotPixel.availableHotPixelModes value="OFF"/>
            <!-- Noise Reduction -->
            <noiseReduction.availableNoiseReductionModes value="OFF,FAST,HIGH_QUALITY,ZERO_SHUTTER_LAG"/>
            <!-- reprocess -->
            <reprocess.maxCaptureStall value="4"/>

        </Android_metadata>

<!-- ******************PSL specific section start **************************************************************-->
        <Hal_tuning_IPU3> <!-- Parameters to tune the HAL and hacks for the HAL that are camera dependent -->
            <flipping value="" value_v=""/> <!-- value: SENSOR_FLIP_H or "", value_v: SENSOR_FLIP_V or "" -->
            <supportIsoMap value="false"/>
            <graphSettingsFile value="graph_settings_imx208.xml"/>
        </Hal_tuning_IPU3>

        <Sensor_info_IPU3> <!-- Information that parametrizes the behavior or qualities of the physical sensor -->
            <sensorType value="SENSOR_TYPE_RAW"/> <!-- SENSOR_TYPE_SOC or SENSOR_TYPE_RAW -->
            <exposure.sync value="true"/> <!-- compensate expsure sync-->
            <sensor.digitalGain value="true"/> <!-- digital gain support on sensor-->
            <gain.lag value="2"/> <!-- camera3 HAL CPF parameters moved here start-->
            <exposure.lag value="2"/>
            <fov value= "54.8" value_v="42.5"/>
            <statistics.initialSkip value="1"/> <!-- camera3 HAL CPF parameters moved here end-->
            <frame.initialSkip value="3"/> <!-- camera3 HAL CPF parameters moved here end-->
            <isoAnalogGain1 value="85"/> <!--Pseudo ISO corresponding analog gain value 1.0. -->
            <cITMaxMargin value="10"/> <!--coarse integration time max margin -->
            <maxNvmDataSize value="320"/> <!--the max NVM data size saved in makernote. -->
            <nvmDirectory value="i2c-INT3499:00"/> <!--location of the NVM data-->
            <sensor.testPatternMap value="Off,0,ColorBars,2"/>
            <ag.multiplier value="32"/>
            <ag.maxRatio value="8"/>
            <ag.smiaParameters value="0,-1,256,256"/>
        </Sensor_info_IPU3>

        <MediaCtl_elements_IPU3>
            <element name="imx208" type="pixel_array"/> <!-- HAL will append Bus id for element name "imx208 8-0010" -->
            <element name="ipu3-csi2 1" type="csi_receiver"/>
        </MediaCtl_elements_IPU3>

        <Common>
            <faceAeEnabled value="true"/>
            <faceEngineRunningInterval value="3"/>
        </Common>
<!-- ******************PSL specific section end **************************************************************-->
    </Profiles>

<!-- ******************PSL specific section end **************************************************************-->

    <hal_tuning> <!-- Parameters to tune the HAL that are camera independent but common across PSL's -->
        <!-- gfxHalToV4L2PixelFmtTable
          This table encodes the agreement between the Camera HAL and the
          Gfx and video HAL's. It maps the gfxHAL pixel formats (that the client
          can request for a stream) to concrete V4L2 pixel formats that
          the Camera HW can provide.
          This is needed for several reasons:
          - the pixel layout is not well defined (implementation_defined)
          - the pixel layout changes from sensor to sensor (RAW)
          Most entries are camera independent but some are not.
          For camera dependent entries sensorId field is used.
        -->
        <gfxHalToV4L2PixelFmtTable.impl_defined_preview value="V4L2_PIX_FMT_NV21"/>
        <gfxHalToV4L2PixelFmtTable.impl_defined_video value="V4L2_PIX_FMT_NV21"/>
        <gfxHalToV4L2PixelFmtTable.raw_sensor sensorId="0" value="V4L2_PIX_FMT_SRGGB10"/>
        <gfxHalToV4L2PixelFmtTable.ycbcr_420_888 value="V4L2_PIX_FMT_NV21"/>
    </hal_tuning>

    <Common> <!-- Common parameters of camera -->
    </Common>
</CameraSettings>

