flash_tuning_custom_cct.cpp(附解析笔记)
#define LOG_TAG "flash_tuning_custom_cct.cpp"
#include "string.h"
#include "camera_custom_nvram.h"
#include "camera_custom_types.h"
#include "camera_custom_AEPlinetable.h"
#include <cutils/xlog.h>
#include "flash_feature.h"
#include "flash_param.h"
#include "flash_tuning_custom.h"
#include <kd_camera_feature.h>
//==============================================================================
//
//==============================================================================
int cust_fillDefaultStrobeNVRam_main (void* data)
{
NVRAM_CAMERA_STROBE_STRUCT* p;
p = (NVRAM_CAMERA_STROBE_STRUCT*)data;
static short engTab[]={
888,2144,3297,4403,5434,6390,7303,8217,9012,9999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};
memcpy(p->engTab.yTab, engTab, 1600*sizeof(short));
p->u4Version = NVRAM_CAMERA_STROBE_FILE_VERSION;
p->tuningPara[0].yTarget = 228; //前景亮度的目标值 值↑前景亮度↑ default value=188
p->tuningPara[0].fgWIncreaseLevelbySize = 10; //Level↑ size小的前景对亮度影响越大 Range:-10~10
p->tuningPara[0].fgWIncreaseLevelbyRef = 5; //Level↑ 反射率↑的前景对亮度影响越大 Range:-10~10
p->tuningPara[0].ambientRefAccuracyRatio = 5; //影响环境反射率统计精准度 Ratio↓ accuracy精准度↑ AE-EV frame num↑ default value=5 5/256=2%
p->tuningPara[0].flashRefAccuracyRatio = 0; //影响预闪反射率统计精准度 Ratio↓ accuracy精准度↑ preflash-EV frame num↑ default value=1 1/256=0.4%
p->tuningPara[0].backlightAccuracyRatio = 18; //背光统计精准度 Ratio↓ accuracy精准度↑ preflash+EV frame num↑ default value=18 18/256=0.7%
p->tuningPara[0].backlightUnderY = 40; //判断为背光的亮度条件 亮度<backlightUnderY为背光
p->tuningPara[0].backlightWeakRefRatio = 32; //影响判为背光的Ratio Ratio↓ 判为背光的概率↓ default value=32 32/256=12.5%
p->tuningPara[0].safetyExp = 66644; //打闪时期望的快门 值↑ 背景亮度↑ 越容易手震 default value=33322 us
p->tuningPara[0].maxUsableISO = 1200; //ISO↑ 背景亮度↑ 杂讯容易↑ 打闪时希望使用的ISO default value=680
p->tuningPara[0].yTargetWeight = 0; //Flash target<Preview target时,Flash target和Preview target混合权重 default value=0 即完全使用Preview 若default value=256 完全使用FlashWeight↑,参考Preview target越少,偏向使用Flash target(打闪可能比Preview暗)
p->tuningPara[0].lowReflectanceThreshold = 13; //低反射率景判断,判为低反射率,会使用 Preview exposure setting + Max duty flash 值↓越不容易判为低反射率景 default value=13 13/256=5%
p->tuningPara[0].flashReflectanceWeight = 0; //Weight↑ 反射率↑判断为前景概率↑
p->tuningPara[0].bgSuppressMaxDecreaseEV = 20; //Base BV从Preview -EV的最大范围 default value=20 unit:0.1EV
p->tuningPara[0].bgSuppressMaxOverExpRatio = 6; //Ratio↓ 背景过曝光区↓ 最大容忍的过曝光比率 default value=6 6/256=2% 例:对着镜子拍摄场景
p->tuningPara[0].fgEnhanceMaxIncreaseEV = 50; //最高可增加EV 到Preview EV+fgEnhanceMaxIncreaseEV/10
p->tuningPara[0].fgEnhanceMaxOverExpRatio = 2; //Ratio↓ 背景过曝光区↓ 背光下前景亮度↓ 可以容忍+EV增加额外过曝区的比例,用来控制背光景的过曝程度 default value=6 6/256=2%
p->tuningPara[0].isFollowCapPline = 0; //置1:使用Capture Pline 置0:使用Flash Pline(AETABLE_STROBE)
p->tuningPara[0].histStretchMaxFgYTarget = 300; //避免画面过曝光很严重 HS的前景亮度上限 default value=266
p->tuningPara[0].histStretchBrightestYTarget = 480; //值↑ 加亮前景↑ default value=328
p->tuningPara[0].fgSizeShiftRatio = 0; //前后景判断偏移 值↑ 前景区域↓全面性的影响,不建议修改 default value=0 means 0/256=0%
p->tuningPara[0].backlitPreflashTriggerLV = 90; //背光判断启动LV 当LV>backlitPreflashTriggerLV启动Preflash背光判断机制default value=90 unit=0.1LV
p->tuningPara[0].backlitMinYTarget = 90; //前景最低需要达到的亮度,可确保前景的亮度,为了达到此亮度过曝比率可超过 值↑ 背光前景亮度↑ 过曝区域↑ default value=100
////////////////优先权:fgEnhanceMaxIncreaseEV>backlitMinYTarget>fgEnhanceMaxOverExpRatio/////////////////////////////////////////////////////////////
////////////////在Max duty能量很小时,backlitMinYTarget需摄小,不燃容易造成画面过曝光(Low Battery与Burst mode),建议Auto mode 下设定较小值,Force on mode才设较大///////////////
/////////////// Preflash判定为背光景时,会增加EV画面会有变亮过曝的情形/////////////////////////////////////////////////////////////////////////////////////
p->tuningPara[1].yTarget = 228;
p->tuningPara[1].fgWIncreaseLevelbySize = 10;
p->tuningPara[1].fgWIncreaseLevelbyRef = 5;
p->tuningPara[1].ambientRefAccuracyRatio = 5;
p->tuningPara[1].flashRefAccuracyRatio = 0;
p->tuningPara[1].backlightAccuracyRatio = 18;
p->tuningPara[1].backlightUnderY = 40;
p->tuningPara[1].backlightWeakRefRatio = 32;
p->tuningPara[1].safetyExp = 66644;
p->tuningPara[1].maxUsableISO = 1200;
p->tuningPara[1].yTargetWeight = 0;
p->tuningPara[1].lowReflectanceThreshold = 13;
p->tuningPara[1].flashReflectanceWeight = 0;
p->tuningPara[1].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[1].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[1].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[1].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[1].isFollowCapPline = 1;
p->tuningPara[1].histStretchMaxFgYTarget = 300;
p->tuningPara[1].histStretchBrightestYTarget = 480;
p->tuningPara[1].fgSizeShiftRatio = 0;
p->tuningPara[1].backlitPreflashTriggerLV = 90;
p->tuningPara[1].backlitMinYTarget = 90;
p->tuningPara[2].yTarget = 228;
p->tuningPara[2].fgWIncreaseLevelbySize = 10;
p->tuningPara[2].fgWIncreaseLevelbyRef = 5;
p->tuningPara[2].ambientRefAccuracyRatio = 5;
p->tuningPara[2].flashRefAccuracyRatio = 0;
p->tuningPara[2].backlightAccuracyRatio = 18;
p->tuningPara[2].backlightUnderY = 40;
p->tuningPara[2].backlightWeakRefRatio = 32;
p->tuningPara[2].safetyExp = 66644;
p->tuningPara[2].maxUsableISO = 1200;
p->tuningPara[2].yTargetWeight = 0;
p->tuningPara[2].lowReflectanceThreshold = 13;
p->tuningPara[2].flashReflectanceWeight = 0;
p->tuningPara[2].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[2].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[2].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[2].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[2].isFollowCapPline = 1;
p->tuningPara[2].histStretchMaxFgYTarget = 300;
p->tuningPara[2].histStretchBrightestYTarget = 480;
p->tuningPara[2].fgSizeShiftRatio = 0;
p->tuningPara[2].backlitPreflashTriggerLV = 90;
p->tuningPara[2].backlitMinYTarget = 90;
p->tuningPara[3].yTarget = 228;
p->tuningPara[3].fgWIncreaseLevelbySize = 10;
p->tuningPara[3].fgWIncreaseLevelbyRef = 5;
p->tuningPara[3].ambientRefAccuracyRatio = 5;
p->tuningPara[3].flashRefAccuracyRatio = 0;
p->tuningPara[3].backlightAccuracyRatio = 18;
p->tuningPara[3].backlightUnderY = 40;
p->tuningPara[3].backlightWeakRefRatio = 32;
p->tuningPara[3].safetyExp = 66644;
p->tuningPara[3].maxUsableISO = 1200;
p->tuningPara[3].yTargetWeight = 0;
p->tuningPara[3].lowReflectanceThreshold = 13;
p->tuningPara[3].flashReflectanceWeight = 0;
p->tuningPara[3].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[3].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[3].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[3].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[3].isFollowCapPline = 1;
p->tuningPara[3].histStretchMaxFgYTarget = 300;
p->tuningPara[3].histStretchBrightestYTarget = 480;
p->tuningPara[3].fgSizeShiftRatio = 0;
p->tuningPara[3].backlitPreflashTriggerLV = 90;
p->tuningPara[3].backlitMinYTarget = 90;
p->tuningPara[4].yTarget = 228;
p->tuningPara[4].fgWIncreaseLevelbySize = 10;
p->tuningPara[4].fgWIncreaseLevelbyRef = 5;
p->tuningPara[4].ambientRefAccuracyRatio = 5;
p->tuningPara[4].flashRefAccuracyRatio = 0;
p->tuningPara[4].backlightAccuracyRatio = 18;
p->tuningPara[4].backlightUnderY = 40;
p->tuningPara[4].backlightWeakRefRatio = 32;
p->tuningPara[4].safetyExp = 66644;
p->tuningPara[4].maxUsableISO = 1200;
p->tuningPara[4].yTargetWeight = 0;
p->tuningPara[4].lowReflectanceThreshold = 13;
p->tuningPara[4].flashReflectanceWeight = 0;
p->tuningPara[4].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[4].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[4].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[4].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[4].isFollowCapPline = 1;
p->tuningPara[4].histStretchMaxFgYTarget = 300;
p->tuningPara[4].histStretchBrightestYTarget = 480;
p->tuningPara[4].fgSizeShiftRatio = 0;
p->tuningPara[4].backlitPreflashTriggerLV = 90;
p->tuningPara[4].backlitMinYTarget = 90;
p->tuningPara[5].yTarget = 228;
p->tuningPara[5].fgWIncreaseLevelbySize = 10;
p->tuningPara[5].fgWIncreaseLevelbyRef = 5;
p->tuningPara[5].ambientRefAccuracyRatio = 5;
p->tuningPara[5].flashRefAccuracyRatio = 0;
p->tuningPara[5].backlightAccuracyRatio = 18;
p->tuningPara[5].backlightUnderY = 40;
p->tuningPara[5].backlightWeakRefRatio = 32;
p->tuningPara[5].safetyExp = 66644;
p->tuningPara[5].maxUsableISO = 1200;
p->tuningPara[5].yTargetWeight = 0;
p->tuningPara[5].lowReflectanceThreshold = 13;
p->tuningPara[5].flashReflectanceWeight = 0;
p->tuningPara[5].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[5].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[5].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[5].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[5].isFollowCapPline = 1;
p->tuningPara[5].histStretchMaxFgYTarget = 300;
p->tuningPara[5].histStretchBrightestYTarget = 480;
p->tuningPara[5].fgSizeShiftRatio = 0;
p->tuningPara[5].backlitPreflashTriggerLV = 90;
p->tuningPara[5].backlitMinYTarget = 90;
p->tuningPara[6].yTarget = 228;
p->tuningPara[6].fgWIncreaseLevelbySize = 10;
p->tuningPara[6].fgWIncreaseLevelbyRef = 5;
p->tuningPara[6].ambientRefAccuracyRatio = 5;
p->tuningPara[6].flashRefAccuracyRatio = 0;
p->tuningPara[6].backlightAccuracyRatio = 18;
p->tuningPara[6].backlightUnderY = 40;
p->tuningPara[6].backlightWeakRefRatio = 32;
p->tuningPara[6].safetyExp = 66644;
p->tuningPara[6].maxUsableISO = 1200;
p->tuningPara[6].yTargetWeight = 0;
p->tuningPara[6].lowReflectanceThreshold = 13;
p->tuningPara[6].flashReflectanceWeight = 0;
p->tuningPara[6].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[6].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[6].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[6].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[6].isFollowCapPline = 1;
p->tuningPara[6].histStretchMaxFgYTarget = 300;
p->tuningPara[6].histStretchBrightestYTarget = 480;
p->tuningPara[6].fgSizeShiftRatio = 0;
p->tuningPara[6].backlitPreflashTriggerLV = 90;
p->tuningPara[6].backlitMinYTarget = 90;
p->tuningPara[7].yTarget = 228;
p->tuningPara[7].fgWIncreaseLevelbySize = 10;
p->tuningPara[7].fgWIncreaseLevelbyRef = 5;
p->tuningPara[7].ambientRefAccuracyRatio = 5;
p->tuningPara[7].flashRefAccuracyRatio = 0;
p->tuningPara[7].backlightAccuracyRatio = 18;
p->tuningPara[7].backlightUnderY = 40;
p->tuningPara[7].backlightWeakRefRatio = 32;
p->tuningPara[7].safetyExp = 66644;
p->tuningPara[7].maxUsableISO = 1200;
p->tuningPara[7].yTargetWeight = 0;
p->tuningPara[7].lowReflectanceThreshold = 13;
p->tuningPara[7].flashReflectanceWeight = 0;
p->tuningPara[7].bgSuppressMaxDecreaseEV = 20;
p->tuningPara[7].bgSuppressMaxOverExpRatio = 6;
p->tuningPara[7].fgEnhanceMaxIncreaseEV = 50;
p->tuningPara[7].fgEnhanceMaxOverExpRatio = 2;
p->tuningPara[7].isFollowCapPline = 1;
p->tuningPara[7].histStretchMaxFgYTarget = 300;
p->tuningPara[7].histStretchBrightestYTarget = 480;
p->tuningPara[7].fgSizeShiftRatio = 0;
p->tuningPara[7].backlitPreflashTriggerLV = 90;
p->tuningPara[7].backlitMinYTarget = 90;
///////////////////各场景的Flash auto与Flash force on,可个别设定不同的Flash AE参数///////////////////////////////////////
p->paraIdxForceOn[0] = 1; //default
p->paraIdxForceOn[1] = 0; //LIB3A_AE_SCENE_OFF
p->paraIdxForceOn[2] = 0; //LIB3A_AE_SCENE_AUTO
p->paraIdxForceOn[3] = 1; //LIB3A_AE_SCENE_NIGHT
p->paraIdxForceOn[4] = 1; //LIB3A_AE_SCENE_ACTION
p->paraIdxForceOn[5] = 1; //LIB3A_AE_SCENE_BEACH
p->paraIdxForceOn[6] = 1; //LIB3A_AE_SCENE_CANDLELIGHT
p->paraIdxForceOn[7] = 1; //LIB3A_AE_SCENE_FIREWORKS
p->paraIdxForceOn[8] = 1; //LIB3A_AE_SCENE_LANDSCAPE
p->paraIdxForceOn[9] = 1; //LIB3A_AE_SCENE_PORTRAIT
p->paraIdxForceOn[10] = 1; //LIB3A_AE_SCENE_NIGHT_PORTRAIT
p->paraIdxForceOn[11] = 1; //LIB3A_AE_SCENE_PARTY
p->paraIdxForceOn[12] = 1; //LIB3A_AE_SCENE_SNOW
p->paraIdxForceOn[13] = 1; //LIB3A_AE_SCENE_SPORTS
p->paraIdxForceOn[14] = 1; //LIB3A_AE_SCENE_STEADYPHOTO
p->paraIdxForceOn[15] = 1; //LIB3A_AE_SCENE_SUNSET
p->paraIdxForceOn[16] = 1; //LIB3A_AE_SCENE_THEATRE
p->paraIdxForceOn[17] = 1; //LIB3A_AE_SCENE_ISO_ANTI_SHAKE
p->paraIdxForceOn[18] = 1; //LIB3A_AE_SCENE_BACKLIGHT
p->paraIdxAuto[0] = 1; //default
p->paraIdxAuto[1] = 0; //LIB3A_AE_SCENE_OFF
p->paraIdxAuto[2] = 0; //LIB3A_AE_SCENE_AUTO
p->paraIdxAuto[3] = 1; //LIB3A_AE_SCENE_NIGHT
p->paraIdxAuto[4] = 1; //LIB3A_AE_SCENE_ACTION
p->paraIdxAuto[5] = 1; //LIB3A_AE_SCENE_BEACH
p->paraIdxAuto[6] = 1; //LIB3A_AE_SCENE_CANDLELIGHT
p->paraIdxAuto[7] = 1; //LIB3A_AE_SCENE_FIREWORKS
p->paraIdxAuto[8] = 1; //LIB3A_AE_SCENE_LANDSCAPE
p->paraIdxAuto[9] = 1; //LIB3A_AE_SCENE_PORTRAIT
p->paraIdxAuto[10] = 1; //LIB3A_AE_SCENE_NIGHT_PORTRAIT
p->paraIdxAuto[11] = 1; //LIB3A_AE_SCENE_PARTY
p->paraIdxAuto[12] = 1; //LIB3A_AE_SCENE_SNOW
p->paraIdxAuto[13] = 1; //LIB3A_AE_SCENE_SPORTS
p->paraIdxAuto[14] = 1; //LIB3A_AE_SCENE_STEADYPHOTO
p->paraIdxAuto[15] = 1; //LIB3A_AE_SCENE_SUNSET
p->paraIdxAuto[16] = 1; //LIB3A_AE_SCENE_THEATRE
p->paraIdxAuto[17] = 1; //LIB3A_AE_SCENE_ISO_ANTI_SHAKE
p->paraIdxAuto[18] = 1; //LIB3A_AE_SCENE_BACKLIGHT
//--------------------
//eng level
//index mode
//torch
p->engLevel.torchDuty = 1; //长亮模式闪光灯强度(手电筒模式)
p->engLevel.torchDutyEx[0] = 0;
p->engLevel.torchDutyEx[1] = 0;
p->engLevel.torchDutyEx[2] = 0;
p->engLevel.torchDutyEx[3] = 0;
p->engLevel.torchDutyEx[4] = 0;
p->engLevel.torchDutyEx[5] = 0;
p->engLevel.torchDutyEx[6] = 0;
p->engLevel.torchDutyEx[7] = 0;
p->engLevel.torchDutyEx[8] = 0;
p->engLevel.torchDutyEx[9] = 0;
p->engLevel.torchDutyEx[10] = 0;
p->engLevel.torchDutyEx[11] = 0;
p->engLevel.torchDutyEx[12] = 0;
p->engLevel.torchDutyEx[13] = 0;
p->engLevel.torchDutyEx[14] = 0;
p->engLevel.torchDutyEx[15] = 0;
p->engLevel.torchDutyEx[16] = 0;
p->engLevel.torchDutyEx[17] = 0;
p->engLevel.torchDutyEx[18] = 0;
p->engLevel.torchDutyEx[19] = 0;
//af
p->engLevel.afDuty = 1; //对焦辅助灯闪光灯强度 (补光模式)
//pf, mf, normal
p->engLevel.pfDuty = 1; //预闪强度
p->engLevel.mfDutyMax = 9; //主闪最高可用强度
p->engLevel.mfDutyMin = 0; //主闪对低可用强度
//low bat //避免低电量打闪导致手机关机
p->engLevel.IChangeByVBatEn = 0; //置1 启动低电压模式,低电量时允许关闭闪光灯
p->engLevel.vBatL = 3600; //低电量门限值(ml) 当前电压< vBatL(ml)才会生效
p->engLevel.pfDutyL = 1; //低电压预闪强度
p->engLevel.mfDutyMaxL = 2; //低电压主闪最高可用强度
p->engLevel.mfDutyMinL = 0; //低电压主闪最低可用强度
//burst setting
p->engLevel.IChangeByBurstEn = 1; //置1:连拍时使用低电压模式
p->engLevel.pfDutyB = 1; //连拍Burst预闪强度
p->engLevel.mfDutyMaxB = 3; //连拍Burst主闪最高可用强度
p->engLevel.mfDutyMinB = 0; //连拍Burst主闪最低可用强度
//high current setting //保护机制
p->engLevel.decSysIAtHighEn = 1; //置1:Duty High时降系统电流
p->engLevel.dutyH = 8; //Duty>dutyH降系统电流 例:停止闪光灯
p->engLevelLT.torchDuty = 0; //额外存储19组torch mode duty设定 客户可自行program来更换Torch duty 例:依照闪光灯温度降低Torch mode duty功能
p->engLevelLT.torchDutyEx[0] = 0;
p->engLevelLT.torchDutyEx[1] = 0;
p->engLevelLT.torchDutyEx[2] = 0;
p->engLevelLT.torchDutyEx[3] = 0;
p->engLevelLT.torchDutyEx[4] = 0;
p->engLevelLT.torchDutyEx[5] = 0;
p->engLevelLT.torchDutyEx[6] = 0;
p->engLevelLT.torchDutyEx[7] = 0;
p->engLevelLT.torchDutyEx[8] = 0;
p->engLevelLT.torchDutyEx[9] = 0;
p->engLevelLT.torchDutyEx[10] = 0;
p->engLevelLT.torchDutyEx[11] = 0;
p->engLevelLT.torchDutyEx[12] = 0;
p->engLevelLT.torchDutyEx[13] = 0;
p->engLevelLT.torchDutyEx[14] = 0;
p->engLevelLT.torchDutyEx[15] = 0;
p->engLevelLT.torchDutyEx[16] = 0;
p->engLevelLT.torchDutyEx[17] = 0;
p->engLevelLT.torchDutyEx[18] = 0;
p->engLevelLT.torchDutyEx[19] = 0;
p->engLevelLT.afDuty = 0;
p->engLevelLT.pfDuty = 0;
p->engLevelLT.mfDutyMax = 0;
p->engLevelLT.mfDutyMin = 0;
p->engLevelLT.pfDutyL = 0;
p->engLevelLT.mfDutyMaxL = 0;
p->engLevelLT.mfDutyMinL = 0;
p->engLevelLT.pfDutyB = 0;
p->engLevelLT.mfDutyMaxB = 0;
p->engLevelLT.mfDutyMinB = 0;
p->dualTuningPara.toleranceEV_pos = 10;
p->dualTuningPara.toleranceEV_neg = 10;
p->dualTuningPara.XYWeighting = 64;
p->dualTuningPara.useAwbPreferenceGain = 0;
p->dualTuningPara.envOffsetIndex[0] = -200;
p->dualTuningPara.envOffsetIndex[1] = -100;
p->dualTuningPara.envOffsetIndex[2] = 50;
p->dualTuningPara.envOffsetIndex[3] = 150;
p->dualTuningPara.envXrOffsetValue[0] = 0;
p->dualTuningPara.envXrOffsetValue[1] = 0;
p->dualTuningPara.envXrOffsetValue[2] = 0;
p->dualTuningPara.envXrOffsetValue[3] = 0;
p->dualTuningPara.envYrOffsetValue[0] = 0;
p->dualTuningPara.envYrOffsetValue[1] = 0;
p->dualTuningPara.envYrOffsetValue[2] = 0;
p->dualTuningPara.envYrOffsetValue[3] = 0;
p->dualTuningPara.VarianceTolerance = 23;
p->dualTuningPara.ChooseColdOrWarm = 1;
return 0;
}
