Compare commits

..

1 Commits
main ... 300ms

Author SHA1 Message Date
Matthew 44aa9a85e3 调整目录 2 weeks ago

55
.gitignore vendored

@ -1,4 +1,3 @@
# ---> C++
# Prerequisites
*.d
@ -31,57 +30,3 @@
*.exe
*.out
*.app
# ---> C
# Prerequisites
*.d
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf

@ -53,7 +53,7 @@ static struct imgsensor_info_struct imgsensor_info = {
.pre = {
.pclk = 148500000,
.linelength = 0x1130, //0x0898, //2200 //record different mode's linelength
.framelength = 0x41EB, //0x0465, //0x0456 1110//0x08ca 2250, //record different mode's framelength
.framelength = 0x0465, //0x0456 1110//0x08ca 2250, //record different mode's framelength
.startx = 0, //record different mode's startx of grabwindow
.starty = 12, //record different mode's starty of grabwindow
.grabwindow_width = 1920, //record different mode's width of grabwindow
@ -64,7 +64,7 @@ static struct imgsensor_info_struct imgsensor_info = {
.cap = {
.pclk = 148500000,
.linelength = 0x1130,
.framelength = 0x41EB, //0x0465,
.framelength = 0x0465,
.startx = 0,
.starty = 12,
.grabwindow_width = 1920,
@ -75,7 +75,7 @@ static struct imgsensor_info_struct imgsensor_info = {
.cap1 = {
.pclk = 148500000,
.linelength = 0x1130,
.framelength = 0x41EB, //0x0465,
.framelength = 0x0465,
.startx = 0,
.starty = 12,
.grabwindow_width = 1920,
@ -116,11 +116,11 @@ static struct imgsensor_info_struct imgsensor_info = {
.grabwindow_width = 1920,
.grabwindow_height = 1080,
.mipi_data_lp2hs_settle_dc = 85,
.max_framerate = 300,
.max_framerate = 300,
},
.margin = 16,
.margin = 2,
.min_shutter = 1,
.max_frame_length = 0xfffff,
.max_frame_length = 0xffff,
.ae_shut_delay_frame = 0,
.ae_sensor_gain_delay_frame = 0,
.ae_ispGain_delay_frame = 2,
@ -147,7 +147,7 @@ static struct imgsensor_info_struct imgsensor_info = {
static struct imgsensor_struct imgsensor = {
.mirror = IMAGE_NORMAL, //IMAGE_H_MIRROR, //mirrorflip information
.mirror = IMAGE_H_MIRROR, //mirrorflip information
.sensor_mode = IMGSENSOR_MODE_INIT, //IMGSENSOR_MODE enum value,record current sensor mode,such as: INIT, Preview, Capture, Video,High Speed Video, Slim Video
.shutter = 0x3D0, //current shutter
.gain = 0x100, //current gain
@ -172,7 +172,7 @@ static struct SENSOR_WINSIZE_INFO_STRUCT imgsensor_winsize_info[5] =
{ 1920, 1080, 0, 0, 1920, 1080, 1920, 1080, 0, 0, 1920, 1080, 0, 0, 1920, 1080}}; // slim video
#define MaxGainIndex (93)
#define MaxGainIndex (103)
kal_uint16 sensorGainMapping[MaxGainIndex][2] ={
{64 ,0 },
{66 ,1 },
@ -184,90 +184,103 @@ kal_uint16 sensorGainMapping[MaxGainIndex][2] ={
{81 ,7 },
{84 ,8 },
{87 ,9 },
{98 ,10 }, // 原96 (约1.5x)
{102,11 }, // 原100
{106,12 }, // 原104
{111,13 }, // 原109
{116,14 }, // 原114
{121,15 }, // 原119
{126,16 }, // 原124
{132,17 }, // 原129
{138,18 }, // 原134
{144,19 }, // 原140
{150,20 }, // 原146 (约2.3x)
{157,21 }, // 原152
{165,22 }, // 原158
{173,23 }, // 原164
{181,24 }, // 原171
{190,25 }, // 原179
{199,26 }, // 原187
{208,27 }, // 原196
{218,28 }, // 原205
{228,29 }, // 原214
{239,30 }, // 原223 (约3.7x)
{250,31 }, // 原233
{262,32 }, // 原243
{275,33 }, // 原254
{289,34 }, // 原265
{303,35 }, // 原277
{318,36 }, // 原290
{334,37 }, // 原303
{351,38 }, // 原317
{368,39 }, // 原331
{386,40 }, // 原346 (约6.0x)
{405,41 }, // 原361
{425,42 }, // 原377
{446,43 }, // 原394
{468,44 }, // 原412
{491,45 }, // 原431
{515,46 }, // 原451
{540,47 }, // 原472
{566,48 }, // 原493
{593,49 }, // 原516
{622,50 }, // 原539 (约9.7x)
{652,51 }, // 原563
{683,52 }, // 原588
{715,53 }, // 原614
{749,54 }, // 原641
{785,55 }, // 原670
{822,56 }, // 原700
{861,57 }, // 原731
{902,58 }, // 原763
{945,59 }, // 原797
{990,60 }, // 原832 (约15.5x)
{1037,61}, // 原869
{1086,62}, // 原908
{1137,63}, // 原949
{1190,64}, // 原991
{1246,65}, // 原1035
{1304,66}, // 原1082
{1365,67}, // 原1131
{1429,68}, // 原1182
{1495,69}, // 原1235
{1565,70}, // 原1291 (约24.5x)
{1638,71}, // 原1349
{1714,72}, // 原1409
{1793,73}, // 原1473
{1876,74}, // 原1539
{1962,75}, // 原1608
{2000,76}, // 原1680
{2038,77}, // 原1755
{2078,78}, // 原1833
{2118,79}, // 原1914
{2158,80}, // 原1998
{2200,81}, // 原2022
{2245,82}, // 原2045
{2048,83}, // 保持最大32倍增益
{2048,84}, // 保持最大增益
{2048,85},
{2048,86},
{2048,87},
{2048,88},
{2048,89},
{2048,90},
{2048,91},
{2048,92},
{90 ,10 },
{93 ,11 },
{96 ,12 },
{100 ,13 },
{103 ,14 },
{107 ,15 },
{111 ,16},
{115 ,17},
{119 ,18},
{123 ,19},
{127 ,20},
{132 ,21},
{136 ,22},
{141 ,23},
{146 ,24},
{151 ,25},
{157 ,26},
{162 ,27},
{168 ,28},
{174,29},
{180,30},
{186,31},
{193,32},
{200,33},
{207,34},
{214,35},
{221,36},
{229,37},
{237,38},
{246,39},
{254,40},
{263,41},
{273,42},
{282,43},
{292,44},
{302,45},
{313,46},
{324,47},
{335,48},
{347,49},
{359,50},
{372,51},
{385,52},
{399,53},
{413,54},
{427,55},
{442,56},
{458,57},
{474,58},
{491,59},
{508,60},
{526,61},
{544,62},
{563,63},
{583,64},
{604,65},
{625,66},
{647,67},
{670,68},
{693,69},
{718,70},
{743,71},
{769,72},
{796,73},
{824,74},
{853,75},
{883,76},
{914,77},
{946,78},
{979,79},
{1014,80},
{1049,81},
{1086,82},
{1125,83},
{1164,84},
{1205,86},
{1247,88},
{1291, 90},
{1337, 92},
{1384, 94},
{1432, 96},
{1483, 99},
{1535, 102},
{1587, 105},
{1639, 108},
{1691, 111},
{1743, 114},
{1795, 117},
{1847, 120},
{1899, 125},
{1951, 131},
{2003, 139},
{2055, 148},
};
extern int iReadReg(u16 a_u2Addr , u8 * a_puBuff , u16 i2cId);
extern int iWriteReg(u16 a_u2Addr , u32 a_u4Data , u32 a_u4Bytes , u16 i2cId);
@ -319,14 +332,8 @@ static void set_max_framerate(UINT16 framerate,kal_bool min_framelength_en)
kal_uint32 frame_length = imgsensor.frame_length;
LOG_INF("framerate = %d, min framelength should enable = %d\n", framerate,min_framelength_en);
frame_length = imgsensor.pclk / framerate * 10 / imgsensor.line_length;
// Allow 1fps
if (framerate < 1) {
framerate = 1;
}
spin_lock(&imgsensor_drv_lock);
imgsensor.frame_length = (frame_length > imgsensor.min_frame_length) ? frame_length : imgsensor.min_frame_length;
imgsensor.dummy_line = imgsensor.frame_length - imgsensor.min_frame_length;
@ -376,7 +383,7 @@ static void write_shutter(kal_uint16 shutter)
write_cmos_sensor(0x0104, 0x01);
write_cmos_sensor(0x3018, (imgsensor.frame_length&0x0000ff));
write_cmos_sensor(0x3019, (imgsensor.frame_length&0x00ff00)>>8);
write_cmos_sensor(0x301a, (imgsensor.frame_length&0xff0000)>>16);
write_cmos_sensor(0x301a, (imgsensor.frame_length&0x030000)>>16);
write_cmos_sensor(0x0104, 0x00);
}
} else {
@ -384,7 +391,7 @@ static void write_shutter(kal_uint16 shutter)
write_cmos_sensor(0x0104, 0x01);
write_cmos_sensor(0x3018, (imgsensor.frame_length&0x0000ff));
write_cmos_sensor(0x3019, (imgsensor.frame_length&0x00ff00)>>8);
write_cmos_sensor(0x301a, (imgsensor.frame_length&0xff0000)>>16);
write_cmos_sensor(0x301a, (imgsensor.frame_length&0x030000)>>16);
write_cmos_sensor(0x0104, 0x00);
}
// Update Shutter
@ -392,12 +399,11 @@ static void write_shutter(kal_uint16 shutter)
LOG_INF("shutter1 =%d, framelength1 =%d\n", shutter,imgsensor.frame_length);
if(shutter < 1) {
if(shutter < 1)
shutter = 1;
}
// if(shutter > 1123)
// shutter = 1123;
if(shutter > 1123)
shutter = 1123;
write_cmos_sensor(0x0104, 0x01);
write_cmos_sensor(0x3020, shutter&0xFF);
@ -620,7 +626,6 @@ static void sensor_init(void)
extern int cur_senindex;
static kal_uint32 get_imgsensor_id(UINT32 *sensor_id)
{
kal_uint8 i = 0, retry = 2;
@ -655,10 +660,6 @@ static kal_uint32 get_imgsensor_id(UINT32 *sensor_id)
if (*sensor_id != imgsensor_info.sensor_id)
{
// setCameraStatus(1,0);
// *sensor_id = 0xFFFFFFFF;
// return ERROR_NONE;
*sensor_id = 0xFFFFFFFF;
return ERROR_SENSOR_CONNECT_FAIL;
}

@ -702,10 +702,10 @@ const ISP_NVRAM_ADBS_T imx291mipiraw_ADBS_0019 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0000 = {
.offst0 ={.bits={.OBC_OFST_B=8172, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8172, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8172, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8172, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -713,10 +713,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0000 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0001 = {
.offst0 ={.bits={.OBC_OFST_B=8172, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8172, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8172, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8172, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -724,10 +724,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0001 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0002 = {
.offst0 ={.bits={.OBC_OFST_B=8172, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8172, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8172, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8172, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -735,10 +735,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0002 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0003 = {
.offst0 ={.bits={.OBC_OFST_B=8172, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8172, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8172, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8172, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -746,10 +746,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0003 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0004 = {
.offst0 ={.bits={.OBC_OFST_B=8168, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8168, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8168, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8168, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -757,10 +757,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0004 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0005 = {
.offst0 ={.bits={.OBC_OFST_B=8168, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8168, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8168, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8168, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -768,10 +768,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0005 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0006 = {
.offst0 ={.bits={.OBC_OFST_B=8168, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8168, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8168, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8168, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -779,10 +779,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0006 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0007 = {
.offst0 ={.bits={.OBC_OFST_B=8164, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8164, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8164, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8164, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -790,10 +790,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0007 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0008 = {
.offst0 ={.bits={.OBC_OFST_B=8164, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8164, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8164, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8164, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -801,10 +801,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0008 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0009 = {
.offst0 ={.bits={.OBC_OFST_B=8164, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8164, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8164, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8164, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -812,10 +812,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0009 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0010 = {
.offst0 ={.bits={.OBC_OFST_B=8164, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8164, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8164, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8164, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -823,10 +823,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0010 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0011 = {
.offst0 ={.bits={.OBC_OFST_B=8160, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8160, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8160, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8160, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -834,10 +834,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0011 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0012 = {
.offst0 ={.bits={.OBC_OFST_B=8160, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8160, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8160, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8160, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -845,10 +845,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0012 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0013 = {
.offst0 ={.bits={.OBC_OFST_B=8160, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8160, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8160, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8160, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -856,10 +856,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0013 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0014 = {
.offst0 ={.bits={.OBC_OFST_B=8156, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8156, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8156, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8156, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -867,10 +867,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0014 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0015 = {
.offst0 ={.bits={.OBC_OFST_B=8156, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8156, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8156, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8156, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -878,10 +878,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0015 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0016 = {
.offst0 ={.bits={.OBC_OFST_B=8156, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8156, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8156, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8156, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -889,10 +889,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0016 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0017 = {
.offst0 ={.bits={.OBC_OFST_B=8156, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8156, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8156, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8156, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -900,10 +900,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0017 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0018 = {
.offst0 ={.bits={.OBC_OFST_B=8152, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8152, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8152, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8152, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},
@ -911,10 +911,10 @@ const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0018 = {
};
const ISP_NVRAM_OBC_T imx291mipiraw_OBC_0019 = {
.offst0 ={.bits={.OBC_OFST_B=8152, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8152, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8152, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8152, .rsv_13=0}},
.offst0 ={.bits={.OBC_OFST_B=8124, .rsv_13=0}},
.offst1 ={.bits={.OBC_OFST_GR=8124, .rsv_13=0}},
.offst2 ={.bits={.OBC_OFST_GB=8124, .rsv_13=0}},
.offst3 ={.bits={.OBC_OFST_R=8124, .rsv_13=0}},
.gain0 ={.bits={.OBC_GAIN_B=521, .rsv_13=0}},
.gain1 ={.bits={.OBC_GAIN_GR=521, .rsv_13=0}},
.gain2 ={.bits={.OBC_GAIN_GB=521, .rsv_13=0}},

@ -238,33 +238,33 @@ static constexpr strEvPline sPreviewPLineTable_60Hz =
{166675,24960,1024, 0, 0, 0}, //TV = 2.58(5625 lines) AV=2.97 SV=9.61 BV=-4.05
{183327,24320,1024, 0, 0, 0}, //TV = 2.45(6187 lines) AV=2.97 SV=9.57 BV=-4.15
{191654,24928,1024, 0, 0, 0}, //TV = 2.38(6468 lines) AV=2.97 SV=9.61 BV=-4.25
{199980,25600,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.64 BV=-4.35
{199980,27456,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.74 BV=-4.45
{199980,29408,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.84 BV=-4.55
{199980,31520,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.94 BV=-4.65
{208336,32544,1024, 0, 0, 0}, //TV = 2.26(7031 lines) AV=2.97 SV=9.99 BV=-4.76
{224989,32320,1024, 0, 0, 0}, //TV = 2.15(7593 lines) AV=2.97 SV=9.98 BV=-4.86
{241671,32224,1024, 0, 0, 0}, //TV = 2.05(8156 lines) AV=2.97 SV=9.98 BV=-4.96
{258324,32320,1024, 0, 0, 0}, //TV = 1.95(8718 lines) AV=2.97 SV=9.98 BV=-5.06
{274976,32544,1024, 0, 0, 0}, //TV = 1.86(9280 lines) AV=2.97 SV=9.99 BV=-5.16
{291658,32768,1024, 0, 0, 0}, //TV = 1.78(9843 lines) AV=2.97 SV=10.00 BV=-5.25
{316667,32448,1024, 0, 0, 0}, //TV = 1.66(10687 lines) AV=2.97 SV=9.99 BV=-5.36
{208336,24576,1024, 0, 0, 0}, //TV = 2.26(7031 lines) AV=2.97 SV=9.58 BV=-4.35
{224989,24384,1024, 0, 0, 0}, //TV = 2.15(7593 lines) AV=2.97 SV=9.57 BV=-4.45
{241671,24320,1024, 0, 0, 0}, //TV = 2.05(8156 lines) AV=2.97 SV=9.57 BV=-4.55
{258324,24384,1024, 0, 0, 0}, //TV = 1.95(8718 lines) AV=2.97 SV=9.57 BV=-4.65
{274976,24576,1024, 0, 0, 0}, //TV = 1.86(9280 lines) AV=2.97 SV=9.58 BV=-4.75
{291658,24832,1024, 0, 0, 0}, //TV = 1.78(9843 lines) AV=2.97 SV=9.60 BV=-4.85
{316667,24512,1024, 0, 0, 0}, //TV = 1.66(10687 lines) AV=2.97 SV=9.58 BV=-4.95
{333320,25088,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.61 BV=-5.06
{333320,26880,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.71 BV=-5.16
{333320,28800,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.81 BV=-5.26
{333320,30848,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.91 BV=-5.36
{333320,32768,1032, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.01 BV=-5.46
{358328,32768,1024, 0, 0, 0}, //TV = 1.48(12093 lines) AV=2.97 SV=10.00 BV=-5.55
{383307,32768,1032, 0, 0, 0}, //TV = 1.38(12936 lines) AV=2.97 SV=10.01 BV=-5.66
{416642,32544,1024, 0, 0, 0}, //TV = 1.26(14061 lines) AV=2.97 SV=9.99 BV=-5.76
{441651,32768,1024, 0, 0, 0}, //TV = 1.18(14905 lines) AV=2.97 SV=10.00 BV=-5.85
{474985,32768,1024, 0, 0, 0}, //TV = 1.07(16030 lines) AV=2.97 SV=10.00 BV=-5.96
{508320,32768,1024, 0, 0, 0}, //TV = 0.98(17155 lines) AV=2.97 SV=10.00 BV=-6.05
{549981,32544,1024, 0, 0, 0}, //TV = 0.86(18561 lines) AV=2.97 SV=9.99 BV=-6.16
{583316,32768,1024, 0, 0, 0}, //TV = 0.78(19686 lines) AV=2.97 SV=10.00 BV=-6.25
{624977,32768,1024, 0, 0, 0}, //TV = 0.68(21091 lines) AV=2.97 SV=10.00 BV=-6.35
{674965,32640,1024, 0, 0, 0}, //TV = 0.57(22779 lines) AV=2.97 SV=9.99 BV=-6.46
{724982,32576,1024, 0, 0, 0}, //TV = 0.46(24467 lines) AV=2.97 SV=9.99 BV=-6.56
{774970,32640,1024, 0, 0, 0}, //TV = 0.37(26154 lines) AV=2.97 SV=9.99 BV=-6.66
{824957,32768,1024, 0, 0, 0}, //TV = 0.28(27841 lines) AV=2.97 SV=10.00 BV=-6.75
{883301,32768,1024, 0, 0, 0}, //TV = 0.18(29810 lines) AV=2.97 SV=10.00 BV=-6.85
{949970,32768,1024, 0, 0, 0}, //TV = 0.07(32060 lines) AV=2.97 SV=10.00 BV=-6.96
{333320,32768,1104, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.11 BV=-5.55
{333320,32768,1184, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.21 BV=-5.65
{333320,32768,1272, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.31 BV=-5.76
{333320,32768,1360, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.41 BV=-5.85
{333320,32768,1456, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.51 BV=-5.95
{333320,32768,1536, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.58 BV=-6.03
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
},
};
@ -444,43 +444,43 @@ static constexpr strEvPline sPreviewPLineTable_50Hz =
{169994,24480,1024, 0, 0, 0}, //TV = 2.56(5737 lines) AV=2.97 SV=9.58 BV=-4.05
{180009,24768,1024, 0, 0, 0}, //TV = 2.47(6075 lines) AV=2.97 SV=9.60 BV=-4.15
{189994,25152,1024, 0, 0, 0}, //TV = 2.40(6412 lines) AV=2.97 SV=9.62 BV=-4.25
{200010,25600,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.64 BV=-4.35
{200010,27424,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.74 BV=-4.45
{200010,29408,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.84 BV=-4.55
{200010,31520,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.94 BV=-4.65
{209995,32288,1024, 0, 0, 0}, //TV = 2.25(7087 lines) AV=2.97 SV=9.98 BV=-4.76
{220011,32768,1032, 0, 0, 0}, //TV = 2.18(7425 lines) AV=2.97 SV=10.01 BV=-4.86
{240012,32448,1024, 0, 0, 0}, //TV = 2.06(8100 lines) AV=2.97 SV=9.99 BV=-4.96
{249997,32768,1040, 0, 0, 0}, //TV = 2.00(8437 lines) AV=2.97 SV=10.02 BV=-5.05
{269998,32768,1032, 0, 0, 0}, //TV = 1.89(9112 lines) AV=2.97 SV=10.01 BV=-5.15
{289999,32768,1032, 0, 0, 0}, //TV = 1.79(9787 lines) AV=2.97 SV=10.01 BV=-5.25
{310000,32768,1032, 0, 0, 0}, //TV = 1.69(10462 lines) AV=2.97 SV=10.01 BV=-5.35
{339987,32416,1024, 0, 0, 0}, //TV = 1.56(11474 lines) AV=2.97 SV=9.98 BV=-5.46
{359987,32768,1024, 0, 0, 0}, //TV = 1.47(12148 lines) AV=2.97 SV=10.00 BV=-5.56
{390004,32448,1024, 0, 0, 0}, //TV = 1.36(13162 lines) AV=2.97 SV=9.99 BV=-5.66
{410005,32768,1032, 0, 0, 0}, //TV = 1.29(13837 lines) AV=2.97 SV=10.01 BV=-5.75
{439991,32768,1032, 0, 0, 0}, //TV = 1.18(14849 lines) AV=2.97 SV=10.01 BV=-5.86
{479993,32448,1024, 0, 0, 0}, //TV = 1.06(16199 lines) AV=2.97 SV=9.99 BV=-5.96
{510009,32736,1024, 0, 0, 0}, //TV = 0.97(17212 lines) AV=2.97 SV=10.00 BV=-6.06
{550011,32544,1024, 0, 0, 0}, //TV = 0.86(18562 lines) AV=2.97 SV=9.99 BV=-6.16
{590013,32512,1024, 0, 0, 0}, //TV = 0.76(19912 lines) AV=2.97 SV=9.99 BV=-6.26
{630015,32640,1024, 0, 0, 0}, //TV = 0.67(21262 lines) AV=2.97 SV=9.99 BV=-6.36
{669987,32768,1024, 0, 0, 0}, //TV = 0.58(22611 lines) AV=2.97 SV=10.00 BV=-6.45
{720004,32768,1024, 0, 0, 0}, //TV = 0.47(24299 lines) AV=2.97 SV=10.00 BV=-6.56
{769992,32768,1024, 0, 0, 0}, //TV = 0.38(25986 lines) AV=2.97 SV=10.00 BV=-6.65
{829994,32672,1024, 0, 0, 0}, //TV = 0.27(28011 lines) AV=2.97 SV=10.00 BV=-6.76
{889997,32672,1024, 0, 0, 0}, //TV = 0.17(30036 lines) AV=2.97 SV=10.00 BV=-6.86
{950000,32768,1024, 0, 0, 0}, //TV = 0.07(32061 lines) AV=2.97 SV=10.00 BV=-6.96
{209995,24384,1024, 0, 0, 0}, //TV = 2.25(7087 lines) AV=2.97 SV=9.57 BV=-4.35
{220011,24928,1024, 0, 0, 0}, //TV = 2.18(7425 lines) AV=2.97 SV=9.61 BV=-4.45
{240012,24512,1024, 0, 0, 0}, //TV = 2.06(8100 lines) AV=2.97 SV=9.58 BV=-4.55
{260013,24224,1024, 0, 0, 0}, //TV = 1.94(8775 lines) AV=2.97 SV=9.56 BV=-4.65
{269998,25024,1024, 0, 0, 0}, //TV = 1.89(9112 lines) AV=2.97 SV=9.61 BV=-4.75
{289999,24960,1024, 0, 0, 0}, //TV = 1.79(9787 lines) AV=2.97 SV=9.61 BV=-4.85
{320015,24256,1024, 0, 0, 0}, //TV = 1.64(10800 lines) AV=2.97 SV=9.57 BV=-4.95
{330001,25344,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.63 BV=-5.06
{330001,27136,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.73 BV=-5.16
{330001,29088,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.83 BV=-5.26
{330001,31168,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.93 BV=-5.36
{330001,32768,1040, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.02 BV=-5.45
{330001,32768,1112, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.12 BV=-5.55
{330001,32768,1192, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.22 BV=-5.65
{330001,32768,1280, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.32 BV=-5.75
{330001,32768,1376, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.43 BV=-5.86
{330001,32768,1472, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.52 BV=-5.95
{330001,32768,1536, 0, 0, 0}, /* TV = 1.60(11137 lines) AV=2.97 SV=10.58 BV=-6.01 */
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
},
};
static constexpr strAETable g_AE_PreviewAutoTable =
{
AETABLE_RPEVIEW_AUTO, //eAETableID
200, //u4TotalIndex
191, //u4TotalIndex
-20, //i4StrobeTrigerBV
129, //i4MaxBV
-70, //i4MinBV
-61, //i4MinBV
90, //i4EffectiveMaxBV
-50, //i4EffectiveMinBV
LIB3A_AE_ISO_SPEED_AUTO, //ISO
@ -664,33 +664,33 @@ static constexpr strEvPline sCapturePLineTable_60Hz =
{166675,24960,1024, 0, 0, 0}, //TV = 2.58(5625 lines) AV=2.97 SV=9.61 BV=-4.05
{183327,24320,1024, 0, 0, 0}, //TV = 2.45(6187 lines) AV=2.97 SV=9.57 BV=-4.15
{191654,24928,1024, 0, 0, 0}, //TV = 2.38(6468 lines) AV=2.97 SV=9.61 BV=-4.25
{199980,25600,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.64 BV=-4.35
{199980,27456,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.74 BV=-4.45
{199980,29408,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.84 BV=-4.55
{199980,31520,1024, 0, 0, 0}, //TV = 2.32(6749 lines) AV=2.97 SV=9.94 BV=-4.65
{208336,32544,1024, 0, 0, 0}, //TV = 2.26(7031 lines) AV=2.97 SV=9.99 BV=-4.76
{224989,32320,1024, 0, 0, 0}, //TV = 2.15(7593 lines) AV=2.97 SV=9.98 BV=-4.86
{241671,32224,1024, 0, 0, 0}, //TV = 2.05(8156 lines) AV=2.97 SV=9.98 BV=-4.96
{258324,32320,1024, 0, 0, 0}, //TV = 1.95(8718 lines) AV=2.97 SV=9.98 BV=-5.06
{274976,32544,1024, 0, 0, 0}, //TV = 1.86(9280 lines) AV=2.97 SV=9.99 BV=-5.16
{291658,32768,1024, 0, 0, 0}, //TV = 1.78(9843 lines) AV=2.97 SV=10.00 BV=-5.25
{316667,32448,1024, 0, 0, 0}, //TV = 1.66(10687 lines) AV=2.97 SV=9.99 BV=-5.36
{208336,24576,1024, 0, 0, 0}, //TV = 2.26(7031 lines) AV=2.97 SV=9.58 BV=-4.35
{224989,24384,1024, 0, 0, 0}, //TV = 2.15(7593 lines) AV=2.97 SV=9.57 BV=-4.45
{241671,24320,1024, 0, 0, 0}, //TV = 2.05(8156 lines) AV=2.97 SV=9.57 BV=-4.55
{258324,24384,1024, 0, 0, 0}, //TV = 1.95(8718 lines) AV=2.97 SV=9.57 BV=-4.65
{274976,24576,1024, 0, 0, 0}, //TV = 1.86(9280 lines) AV=2.97 SV=9.58 BV=-4.75
{291658,24832,1024, 0, 0, 0}, //TV = 1.78(9843 lines) AV=2.97 SV=9.60 BV=-4.85
{316667,24512,1024, 0, 0, 0}, //TV = 1.66(10687 lines) AV=2.97 SV=9.58 BV=-4.95
{333320,25088,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.61 BV=-5.06
{333320,26880,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.71 BV=-5.16
{333320,28800,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.81 BV=-5.26
{333320,30848,1024, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=9.91 BV=-5.36
{333320,32768,1032, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.01 BV=-5.46
{358328,32768,1024, 0, 0, 0}, //TV = 1.48(12093 lines) AV=2.97 SV=10.00 BV=-5.55
{383307,32768,1032, 0, 0, 0}, //TV = 1.38(12936 lines) AV=2.97 SV=10.01 BV=-5.66
{416642,32544,1024, 0, 0, 0}, //TV = 1.26(14061 lines) AV=2.97 SV=9.99 BV=-5.76
{441651,32768,1024, 0, 0, 0}, //TV = 1.18(14905 lines) AV=2.97 SV=10.00 BV=-5.85
{474985,32768,1024, 0, 0, 0}, //TV = 1.07(16030 lines) AV=2.97 SV=10.00 BV=-5.96
{508320,32768,1024, 0, 0, 0}, //TV = 0.98(17155 lines) AV=2.97 SV=10.00 BV=-6.05
{549981,32544,1024, 0, 0, 0}, //TV = 0.86(18561 lines) AV=2.97 SV=9.99 BV=-6.16
{583316,32768,1024, 0, 0, 0}, //TV = 0.78(19686 lines) AV=2.97 SV=10.00 BV=-6.25
{624977,32768,1024, 0, 0, 0}, //TV = 0.68(21091 lines) AV=2.97 SV=10.00 BV=-6.35
{674965,32640,1024, 0, 0, 0}, //TV = 0.57(22779 lines) AV=2.97 SV=9.99 BV=-6.46
{724982,32576,1024, 0, 0, 0}, //TV = 0.46(24467 lines) AV=2.97 SV=9.99 BV=-6.56
{774970,32640,1024, 0, 0, 0}, //TV = 0.37(26154 lines) AV=2.97 SV=9.99 BV=-6.66
{824957,32768,1024, 0, 0, 0}, //TV = 0.28(27841 lines) AV=2.97 SV=10.00 BV=-6.75
{883301,32768,1024, 0, 0, 0}, //TV = 0.18(29810 lines) AV=2.97 SV=10.00 BV=-6.85
{949970,32768,1024, 0, 0, 0}, //TV = 0.07(32060 lines) AV=2.97 SV=10.00 BV=-6.96
{333320,32768,1104, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.11 BV=-5.55
{333320,32768,1184, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.21 BV=-5.65
{333320,32768,1272, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.31 BV=-5.76
{333320,32768,1360, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.41 BV=-5.85
{333320,32768,1456, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.51 BV=-5.95
{333320,32768,1536, 0, 0, 0}, //TV = 1.59(11249 lines) AV=2.97 SV=10.58 BV=-6.03
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
},
};
@ -870,43 +870,43 @@ static constexpr strEvPline sCapturePLineTable_50Hz =
{169994,24480,1024, 0, 0, 0}, //TV = 2.56(5737 lines) AV=2.97 SV=9.58 BV=-4.05
{180009,24768,1024, 0, 0, 0}, //TV = 2.47(6075 lines) AV=2.97 SV=9.60 BV=-4.15
{189994,25152,1024, 0, 0, 0}, //TV = 2.40(6412 lines) AV=2.97 SV=9.62 BV=-4.25
{200010,25600,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.64 BV=-4.35
{200010,27424,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.74 BV=-4.45
{200010,29408,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.84 BV=-4.55
{200010,31520,1024, 0, 0, 0}, //TV = 2.32(6750 lines) AV=2.97 SV=9.94 BV=-4.65
{209995,32288,1024, 0, 0, 0}, //TV = 2.25(7087 lines) AV=2.97 SV=9.98 BV=-4.76
{220011,32768,1032, 0, 0, 0}, //TV = 2.18(7425 lines) AV=2.97 SV=10.01 BV=-4.86
{240012,32448,1024, 0, 0, 0}, //TV = 2.06(8100 lines) AV=2.97 SV=9.99 BV=-4.96
{249997,32768,1040, 0, 0, 0}, //TV = 2.00(8437 lines) AV=2.97 SV=10.02 BV=-5.05
{269998,32768,1032, 0, 0, 0}, //TV = 1.89(9112 lines) AV=2.97 SV=10.01 BV=-5.15
{289999,32768,1032, 0, 0, 0}, //TV = 1.79(9787 lines) AV=2.97 SV=10.01 BV=-5.25
{310000,32768,1032, 0, 0, 0}, //TV = 1.69(10462 lines) AV=2.97 SV=10.01 BV=-5.35
{339987,32416,1024, 0, 0, 0}, //TV = 1.56(11474 lines) AV=2.97 SV=9.98 BV=-5.46
{359987,32768,1024, 0, 0, 0}, //TV = 1.47(12148 lines) AV=2.97 SV=10.00 BV=-5.56
{390004,32448,1024, 0, 0, 0}, //TV = 1.36(13162 lines) AV=2.97 SV=9.99 BV=-5.66
{410005,32768,1032, 0, 0, 0}, //TV = 1.29(13837 lines) AV=2.97 SV=10.01 BV=-5.75
{439991,32768,1032, 0, 0, 0}, //TV = 1.18(14849 lines) AV=2.97 SV=10.01 BV=-5.86
{479993,32448,1024, 0, 0, 0}, //TV = 1.06(16199 lines) AV=2.97 SV=9.99 BV=-5.96
{510009,32736,1024, 0, 0, 0}, //TV = 0.97(17212 lines) AV=2.97 SV=10.00 BV=-6.06
{550011,32544,1024, 0, 0, 0}, //TV = 0.86(18562 lines) AV=2.97 SV=9.99 BV=-6.16
{590013,32512,1024, 0, 0, 0}, //TV = 0.76(19912 lines) AV=2.97 SV=9.99 BV=-6.26
{630015,32640,1024, 0, 0, 0}, //TV = 0.67(21262 lines) AV=2.97 SV=9.99 BV=-6.36
{669987,32768,1024, 0, 0, 0}, //TV = 0.58(22611 lines) AV=2.97 SV=10.00 BV=-6.45
{720004,32768,1024, 0, 0, 0}, //TV = 0.47(24299 lines) AV=2.97 SV=10.00 BV=-6.56
{769992,32768,1024, 0, 0, 0}, //TV = 0.38(25986 lines) AV=2.97 SV=10.00 BV=-6.65
{829994,32672,1024, 0, 0, 0}, //TV = 0.27(28011 lines) AV=2.97 SV=10.00 BV=-6.76
{889997,32672,1024, 0, 0, 0}, //TV = 0.17(30036 lines) AV=2.97 SV=10.00 BV=-6.86
{950000,32768,1024, 0, 0, 0}, //TV = 0.07(32061 lines) AV=2.97 SV=10.00 BV=-6.96
{209995,24384,1024, 0, 0, 0}, //TV = 2.25(7087 lines) AV=2.97 SV=9.57 BV=-4.35
{220011,24928,1024, 0, 0, 0}, //TV = 2.18(7425 lines) AV=2.97 SV=9.61 BV=-4.45
{240012,24512,1024, 0, 0, 0}, //TV = 2.06(8100 lines) AV=2.97 SV=9.58 BV=-4.55
{260013,24224,1024, 0, 0, 0}, //TV = 1.94(8775 lines) AV=2.97 SV=9.56 BV=-4.65
{269998,25024,1024, 0, 0, 0}, //TV = 1.89(9112 lines) AV=2.97 SV=9.61 BV=-4.75
{289999,24960,1024, 0, 0, 0}, //TV = 1.79(9787 lines) AV=2.97 SV=9.61 BV=-4.85
{320015,24256,1024, 0, 0, 0}, //TV = 1.64(10800 lines) AV=2.97 SV=9.57 BV=-4.95
{330001,25344,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.63 BV=-5.06
{330001,27136,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.73 BV=-5.16
{330001,29088,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.83 BV=-5.26
{330001,31168,1024, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=9.93 BV=-5.36
{330001,32768,1040, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.02 BV=-5.45
{330001,32768,1112, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.12 BV=-5.55
{330001,32768,1192, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.22 BV=-5.65
{330001,32768,1280, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.32 BV=-5.75
{330001,32768,1376, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.43 BV=-5.86
{330001,32768,1472, 0, 0, 0}, //TV = 1.60(11137 lines) AV=2.97 SV=10.52 BV=-5.95
{330001,32768,1536, 0, 0, 0}, /* TV = 1.60(11137 lines) AV=2.97 SV=10.58 BV=-6.01 */
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
{0, 0, 0, 0, 0, 0}, //reserved no used
},
};
static constexpr strAETable g_AE_CaptureAutoTable =
{
AETABLE_CAPTURE_AUTO, //eAETableID
200, //u4TotalIndex
191, //u4TotalIndex
-20, //i4StrobeTrigerBV
129, //i4MaxBV
-70, //i4MinBV
-61, //i4MinBV
90, //i4EffectiveMaxBV
-50, //i4EffectiveMinBV
LIB3A_AE_ISO_SPEED_AUTO, //ISO
@ -13593,9 +13593,9 @@ static constexpr strAEPLineNumInfo g_strAEPreviewAutoPLineInfo =
{4,20,20,4096,10240},
{5,20,10,10240,10240},
{6,10,10,10240,24576},
{7,10,5,24576,24576},
{8,5,5,24576,32768},
{9,5,1,32768,32768},
{7,10,3,24576,24576},
{8,3,3,24576,49152},
{9,0,0,0,0},
{10,0,0,0,0},
{11,0,0,0,0},
{12,0,0,0,0},
@ -13617,9 +13617,9 @@ static constexpr strAEPLineNumInfo g_strAECaptureAutoPLineInfo =
{4,20,20,4096,10240},
{5,20,10,10240,10240},
{6,10,10,10240,24576},
{7,10,5,24576,24576},
{8,5,5,24576,32768},
{9,5,1,32768,32768},
{7,10,3,24576,24576},
{8,3,3,24576,49152},
{9,0,0,0,0},
{10,0,0,0,0},
{11,0,0,0,0},
{12,0,0,0,0},
@ -14724,9 +14724,8 @@ AETABLE_RPEVIEW_AUTO
4,20,20,4096,10240
5,20,10,10240,10240
6,10,10,10240,24576
7,10,5,24576,24576
8,5,5,24576,32768
9,5,1,32768,32768
7,10,3,24576,24576
8,3,3,24576,49152
AETABLE_END
// Capture table -- Use capture sensor setting
@ -14739,9 +14738,8 @@ AETABLE_CAPTURE_AUTO
4,20,20,4096,10240
5,20,10,10240,10240
6,10,10,10240,24576
7,10,5,24576,24576
8,5,5,24576,32768
9,5,1,32768,32768
7,10,3,24576,24576
8,3,3,24576,49152
AETABLE_END
// Video table -- Use video sensor setting

@ -1,678 +0,0 @@
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein is
* confidential and proprietary to MediaTek Inc. and/or its licensors. Without
* the prior written permission of MediaTek inc. and/or its licensors, any
* reproduction, modification, use or disclosure of MediaTek Software, and
* information contained herein, in whole or in part, shall be strictly
* prohibited.
*
* MediaTek Inc. (C) 2010. All rights reserved.
*
* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
* ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
* WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
* RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
* INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
* TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
* RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
* OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
* SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
* RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
* STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
* ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
* RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
* MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
* CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* The following software/firmware and/or related documentation ("MediaTek
* Software") have been modified by MediaTek Inc. All revisions are subject to
* any receiver's applicable license agreements with MediaTek Inc.
*/
REQUEST_METADATA_BEGIN(SENSOR_DRVNAME_IMX291_MIPI_RAW)
//------------------------------------------------------------------------------
// android.color
//------------------------------------------------------------------------------
//==========================================================================// none
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_TRANSFORM)
CONFIG_ENTRY_VALUE(MRational(1, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(0, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(0, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(0, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(1, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(0, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(0, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(0, 1), MRational)
CONFIG_ENTRY_VALUE(MRational(1, 1), MRational)
CONFIG_METADATA_END()
//==========================================================================//New none
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_GAINS)
CONFIG_ENTRY_VALUE( 1.0f, MFLOAT)
CONFIG_ENTRY_VALUE( 1.0f, MFLOAT)
CONFIG_ENTRY_VALUE( 1.0f, MFLOAT)
CONFIG_ENTRY_VALUE( 1.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================//New none
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_ABERRATION_MODE)
CONFIG_ENTRY_VALUE( MTK_COLOR_CORRECTION_ABERRATION_MODE_OFF , MUINT8)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.control
//------------------------------------------------------------------------------
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_ANTIBANDING_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_ANTIBANDING_MODE_AUTO, MUINT8)//!CONTROL_AE_ANTIBANDING_MODE_OFF
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_EXPOSURE_COMPENSATION)//0
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_LOCK)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_LOCK_OFF, MUINT8)//false
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_REGIONS)//
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
//==========================================================================//new
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_PRECAPTURE_TRIGGER)//CONTROL_AE_PRECAPTURE_TRIGGER_IDLE
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
/*CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_REGIONS)//
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()*/
//==========================================================================//new
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_TRIGGER)// CONTROL_AF_TRIGGER_IDLE
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_TRIGGER_IDLE, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AWB_LOCK)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AWB_LOCK_OFF, MUINT8)//false
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AWB_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AWB_MODE_AUTO, MUINT8)//auto, default: off
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_AWB_REGIONS)//
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_CONTROL_EFFECT_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_EFFECT_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_MODE)//CONTROL_MODE_AUTO
CONFIG_ENTRY_VALUE(MTK_CONTROL_MODE_AUTO, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_CONTROL_SCENE_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_SCENE_MODE_DISABLED, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_CONTROL_POST_RAW_SENSITIVITY_BOOST)
CONFIG_ENTRY_VALUE(100, MINT32)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_CONTROL_VIDEO_STABILIZATION_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_VIDEO_STABILIZATION_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_CONTROL_ENABLE_ZSL)
CONFIG_ENTRY_VALUE(MTK_CONTROL_ENABLE_ZSL_FALSE, MUINT8)
CONFIG_METADATA_END()
//------------------------------------------------------------------------------
// android.demosaic
//------------------------------------------------------------------------------
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.flash
//------------------------------------------------------------------------------
//==========================================================================//none FUTURE
CONFIG_METADATA_BEGIN(MTK_FLASH_FIRING_POWER)
CONFIG_ENTRY_VALUE(10, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//none FUTURE
CONFIG_METADATA_BEGIN(MTK_FLASH_FIRING_TIME)
CONFIG_ENTRY_VALUE(0, MINT64)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_FLASH_MODE)
CONFIG_ENTRY_VALUE(MTK_FLASH_MODE_OFF, MUINT8)//off
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.jpeg
//------------------------------------------------------------------------------
//==========================================================================//new none
/*CONFIG_METADATA_BEGIN(MTK_JPEG_GPS_COORDINATES)//hidden
CONFIG_ENTRY_VALUE(0.0f , MDOUBLE)
CONFIG_ENTRY_VALUE(0.0f , MDOUBLE)
CONFIG_ENTRY_VALUE(0.0f , MDOUBLE)
CONFIG_METADATA_END()
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_JPEG_GPS_PROCESSING_METHOD)//hidden
CONFIG_ENTRY_VALUE(0 , MUINT8)
CONFIG_METADATA_END()
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_JPEG_GPS_TIMESTAMP)//hidden
CONFIG_ENTRY_VALUE(0 , MINT64)
CONFIG_METADATA_END()*/
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_JPEG_ORIENTATION)//public
CONFIG_ENTRY_VALUE(0 , MINT32)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_JPEG_QUALITY)
CONFIG_ENTRY_VALUE(100, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_JPEG_THUMBNAIL_QUALITY)
CONFIG_ENTRY_VALUE(100, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_JPEG_THUMBNAIL_SIZE)
CONFIG_ENTRY_VALUE(MSize(176, 128), MSize)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.lens
//------------------------------------------------------------------------------
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_LENS_APERTURE)//not null
CONFIG_ENTRY_VALUE(2.8f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_LENS_FILTER_DENSITY)//not null
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_LENS_FOCAL_LENGTH)//not null
CONFIG_ENTRY_VALUE(5.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_LENS_FOCUS_DISTANCE)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_LENS_OPTICAL_STABILIZATION_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_LENS_OPTICAL_STABILIZATION_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.noiseReduction
//------------------------------------------------------------------------------
//==========================================================================//new none FUTURE
/*CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE( , MUINT8)
CONFIG_METADATA_END()*/
//==========================================================================
//------------------------------------------------------------------------------
// android.request
//------------------------------------------------------------------------------
//==========================================================================
#if 0
CONFIG_METADATA_BEGIN(MTK_REQUEST_FRAME_COUNT)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
#endif
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_REQUEST_ID)
CONFIG_ENTRY_VALUE(0, MINT32)//hidden
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_REQUEST_METADATA_MODE)
CONFIG_ENTRY_VALUE(MTK_REQUEST_METADATA_MODE_FULL, MUINT8)//
CONFIG_METADATA_END()
//==========================================================================
#if 0
CONFIG_METADATA_BEGIN(MTK_REQUEST_TYPE)
CONFIG_ENTRY_VALUE(MTK_REQUEST_TYPE_CAPTURE, MUINT8)
CONFIG_METADATA_END()
#endif
//==========================================================================
#if 0
CONFIG_METADATA_BEGIN(MTK_REQUEST_MAX_NUM_OUTPUT_STREAMS)
CONFIG_ENTRY_VALUE(3, MINT32)
CONFIG_METADATA_END()
#endif
//==========================================================================
#if 0
CONFIG_METADATA_BEGIN(MTK_REQUEST_MAX_NUM_REPROCESS_STREAMS)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
#endif
//==========================================================================
#if 0
CONFIG_METADATA_BEGIN(MTK_REQUEST_INPUT_STREAMS)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
#endif
//==========================================================================
#if 0
CONFIG_METADATA_BEGIN(MTK_REQUEST_OUTPUT_STREAMS)
CONFIG_ENTRY_VALUE(0, MINT32)
CONFIG_METADATA_END()
#endif
//==========================================================================
//------------------------------------------------------------------------------
// android.scaler
//------------------------------------------------------------------------------
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_SCALER_CROP_REGION)//public
CONFIG_ENTRY_VALUE(MRect(MPoint(0, 0), MPoint(640, 480)) , MRect)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.sensor
//------------------------------------------------------------------------------
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_EXPOSURE_TIME)
CONFIG_ENTRY_VALUE(10 * 1000000LL, MINT64)//not null
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_FRAME_DURATION)
CONFIG_ENTRY_VALUE(33333333LL, MINT64)//not null
CONFIG_METADATA_END()
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_SENSOR_SENSITIVITY)
CONFIG_ENTRY_VALUE(100, MINT32)//not null
CONFIG_METADATA_END()
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_SENSOR_TEST_PATTERN_DATA)
CONFIG_ENTRY_VALUE(0 , MINT32)
CONFIG_ENTRY_VALUE(0 , MINT32)
CONFIG_ENTRY_VALUE(0 , MINT32)
CONFIG_ENTRY_VALUE(0 , MINT32)
CONFIG_METADATA_END()
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_SENSOR_TEST_PATTERN_MODE)
CONFIG_ENTRY_VALUE( MTK_SENSOR_TEST_PATTERN_MODE_OFF , MINT32)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.shading
//------------------------------------------------------------------------------
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//new FUTURE
CONFIG_METADATA_BEGIN(MTK_SHADING_STRENGTH)
CONFIG_ENTRY_VALUE(10, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.statistics
//------------------------------------------------------------------------------
//==========================================================================
CONFIG_METADATA_BEGIN(MTK_STATISTICS_FACE_DETECT_MODE)
CONFIG_ENTRY_VALUE(MTK_STATISTICS_FACE_DETECT_MODE_OFF, MUINT8)//off
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_STATISTICS_HISTOGRAM_MODE)
CONFIG_ENTRY_VALUE(MTK_STATISTICS_HISTOGRAM_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_STATISTICS_SHARPNESS_MAP_MODE)
CONFIG_ENTRY_VALUE(MTK_STATISTICS_SHARPNESS_MAP_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//new none
CONFIG_METADATA_BEGIN(MTK_STATISTICS_HOT_PIXEL_MAP_MODE)
CONFIG_ENTRY_VALUE( MTK_STATISTICS_HOT_PIXEL_MAP_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================//new
CONFIG_METADATA_BEGIN(MTK_STATISTICS_LENS_SHADING_MAP_MODE)//default: STATISTICS_LENS_SHADING_MAP_MODE_OFF
CONFIG_ENTRY_VALUE(MTK_STATISTICS_LENS_SHADING_MAP_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.tonemap
//------------------------------------------------------------------------------
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_TONEMAP_CURVE_BLUE)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_ENTRY_VALUE(1.0f, MFLOAT)
CONFIG_ENTRY_VALUE(1.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_TONEMAP_CURVE_GREEN)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_ENTRY_VALUE(1.0f, MFLOAT)
CONFIG_ENTRY_VALUE(1.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================//none
CONFIG_METADATA_BEGIN(MTK_TONEMAP_CURVE_RED)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_ENTRY_VALUE(0.0f, MFLOAT)
CONFIG_ENTRY_VALUE(1.0f, MFLOAT)
CONFIG_ENTRY_VALUE(1.0f, MFLOAT)
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// android.led
//------------------------------------------------------------------------------
//==========================================================================//new
/*CONFIG_METADATA_BEGIN(MTK_LED_TRANSMIT)
CONFIG_ENTRY_VALUE( , MUINT8)
CONFIG_METADATA_END()*/
//==========================================================================
//------------------------------------------------------------------------------
// android.blackLevel
//------------------------------------------------------------------------------
//==========================================================================//new
CONFIG_METADATA_BEGIN(MTK_BLACK_LEVEL_LOCK)
CONFIG_ENTRY_VALUE(MTK_BLACK_LEVEL_LOCK_OFF, MUINT8)//false
CONFIG_METADATA_END()
//==========================================================================
//------------------------------------------------------------------------------
// request template types
//------------------------------------------------------------------------------
//==========================================================================
switch (requestType)
{
//..........................................................................
case CAMERA3_TEMPLATE_PREVIEW:
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_MODE)//dont care
CONFIG_ENTRY_VALUE(MTK_COLOR_CORRECTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_EDGE_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_HOT_PIXEL_MODE)
CONFIG_ENTRY_VALUE(MTK_HOT_PIXEL_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_NOISE_REDUCTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_TONEMAP_MODE)//!TONEMAP_MODE_CONTRAST_CURVE
CONFIG_ENTRY_VALUE(MTK_TONEMAP_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_MODE)//CONTROL_AE_MODE_ON
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_TARGET_FPS_RANGE)//max>20 (available)
CONFIG_ENTRY_VALUE(1, MINT32)
CONFIG_ENTRY_VALUE(30, MINT32)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//CONTROL_AF_MODE_AUTO (available)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_CAPTURE_INTENT)//TEMPLATE_PREVIEW
CONFIG_ENTRY_VALUE(MTK_CONTROL_CAPTURE_INTENT_PREVIEW, MUINT8)
CONFIG_METADATA_END()
break;
//..........................................................................
case CAMERA3_TEMPLATE_STILL_CAPTURE:
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_MODE)//!COLOR_CORRECTION_MODE_TRANSFORM_MATRIX
CONFIG_ENTRY_VALUE(MTK_COLOR_CORRECTION_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_MODE)//EDGE_MODE_HIGH_QUALITY
CONFIG_ENTRY_VALUE(MTK_EDGE_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_HOT_PIXEL_MODE)
CONFIG_ENTRY_VALUE(MTK_HOT_PIXEL_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_MODE)//NOISE_REDUCTION_MODE_HIGH_QUALITY
CONFIG_ENTRY_VALUE(MTK_NOISE_REDUCTION_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_TONEMAP_MODE)//NOISE_REDUCTION_MODE_HIGH_QUALITY
CONFIG_ENTRY_VALUE(MTK_TONEMAP_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_MODE)//CONTROL_AE_MODE_ON
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_TARGET_FPS_RANGE)//no max request (available)
CONFIG_ENTRY_VALUE(1, MINT32)
CONFIG_ENTRY_VALUE(30, MINT32)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//CONTROL_AF_MODE_AUTO (available)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_CAPTURE_INTENT)//TEMPLATE_STILL_CAPTURE
CONFIG_ENTRY_VALUE(MTK_CONTROL_CAPTURE_INTENT_STILL_CAPTURE, MUINT8)
CONFIG_METADATA_END()
break;
//..........................................................................
case CAMERA3_TEMPLATE_VIDEO_RECORD:
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_MODE)//dont care
CONFIG_ENTRY_VALUE(MTK_COLOR_CORRECTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_EDGE_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_HOT_PIXEL_MODE)
CONFIG_ENTRY_VALUE(MTK_HOT_PIXEL_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_NOISE_REDUCTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_TONEMAP_MODE)//!TONEMAP_MODE_CONTRAST_CURVE
CONFIG_ENTRY_VALUE(MTK_TONEMAP_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_MODE)//CONTROL_AE_MODE_ON
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_TARGET_FPS_RANGE)//min=max
CONFIG_ENTRY_VALUE(1, MINT32)
CONFIG_ENTRY_VALUE(30, MINT32)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//(available) (default: auto)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_CAPTURE_INTENT)//TEMPLATE_RECORD
CONFIG_ENTRY_VALUE(MTK_CONTROL_CAPTURE_INTENT_VIDEO_RECORD, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_VIDEO_STABILIZATION_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_VIDEO_STABILIZATION_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
break;
//..........................................................................
case CAMERA3_TEMPLATE_VIDEO_SNAPSHOT:
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_MODE)//dont care
CONFIG_ENTRY_VALUE(MTK_COLOR_CORRECTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_EDGE_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_HOT_PIXEL_MODE)
CONFIG_ENTRY_VALUE(MTK_HOT_PIXEL_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_NOISE_REDUCTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_TONEMAP_MODE)//!TONEMAP_MODE_CONTRAST_CURVE
CONFIG_ENTRY_VALUE(MTK_TONEMAP_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_MODE)//CONTROL_AE_MODE_ON
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_TARGET_FPS_RANGE)//min=max
CONFIG_ENTRY_VALUE(1, MINT32)
CONFIG_ENTRY_VALUE(30, MINT32)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//(available) (default: auto)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_CAPTURE_INTENT)//TEMPLATE_VIDEO_SNAPSHOT
CONFIG_ENTRY_VALUE(MTK_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_VIDEO_STABILIZATION_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_VIDEO_STABILIZATION_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
break;
//..........................................................................
case CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG:
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_MODE)//dont care
CONFIG_ENTRY_VALUE(MTK_COLOR_CORRECTION_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_EDGE_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_HOT_PIXEL_MODE)
CONFIG_ENTRY_VALUE(MTK_HOT_PIXEL_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_NOISE_REDUCTION_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_TONEMAP_MODE)//!TONEMAP_MODE_CONTRAST_CURVE
CONFIG_ENTRY_VALUE(MTK_TONEMAP_MODE_HIGH_QUALITY, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_MODE)//CONTROL_AE_MODE_ON
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_ON, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_TARGET_FPS_RANGE)//max > 20
CONFIG_ENTRY_VALUE(1, MINT32)
CONFIG_ENTRY_VALUE(30, MINT32)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//(available) (default: CONTROL_AF_MODE_AUTO)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_CAPTURE_INTENT)//TEMPALTE_ZERO_SHUTTER_LAG
CONFIG_ENTRY_VALUE(MTK_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG, MUINT8)
CONFIG_METADATA_END()
break;
//..........................................................................
default:
CONFIG_METADATA_BEGIN(MTK_COLOR_CORRECTION_MODE)//dont care
CONFIG_ENTRY_VALUE(MTK_COLOR_CORRECTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_DEMOSAIC_MODE)
CONFIG_ENTRY_VALUE(MTK_DEMOSAIC_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_EDGE_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_EDGE_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_HOT_PIXEL_MODE)
CONFIG_ENTRY_VALUE(MTK_HOT_PIXEL_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_MODE)//not null
CONFIG_ENTRY_VALUE(MTK_NOISE_REDUCTION_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_NOISE_REDUCTION_STRENGTH)
CONFIG_ENTRY_VALUE(5, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_SHADING_MODE)
CONFIG_ENTRY_VALUE(MTK_SHADING_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_TONEMAP_MODE)//!TONEMAP_MODE_CONTRAST_CURVE
CONFIG_ENTRY_VALUE(MTK_TONEMAP_MODE_FAST, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_MODE)//CONTROL_AE_MODE_OFF
CONFIG_ENTRY_VALUE(MTK_CONTROL_AE_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AE_TARGET_FPS_RANGE)//no request for max
CONFIG_ENTRY_VALUE(1, MINT32)
CONFIG_ENTRY_VALUE(30, MINT32)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AF_MODE)//(pre:auto)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AF_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_AWB_MODE)
CONFIG_ENTRY_VALUE(MTK_CONTROL_AWB_MODE_OFF, MUINT8)//auto, default: off
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_MODE)//CONTROL_MODE_AUTO
CONFIG_ENTRY_VALUE(MTK_CONTROL_MODE_OFF, MUINT8)
CONFIG_METADATA_END()
CONFIG_METADATA_BEGIN(MTK_CONTROL_CAPTURE_INTENT)//TEMPLATE_MANUAL
CONFIG_ENTRY_VALUE(MTK_CONTROL_CAPTURE_INTENT_MANUAL, MUINT8)
CONFIG_METADATA_END()
break;
}
//------------------------------------------------------------------------------
REQUEST_METADATA_END()

@ -1,249 +0,0 @@
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein
* is confidential and proprietary to MediaTek Inc. and/or its licensors.
* Without the prior written permission of MediaTek inc. and/or its licensors,
* any reproduction, modification, use or disclosure of MediaTek Software,
* and information contained herein, in whole or in part, shall be strictly prohibited.
*/
/* MediaTek Inc. (C) 2010. All rights reserved.
*
* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
* STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
* CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* The following software/firmware and/or related documentation ("MediaTek Software")
* have been modified by MediaTek Inc. All revisions are subject to any receiver's
* applicable license agreements with MediaTek Inc.
*/
#ifndef _LIB3A_AE_FEATURE_H
#define _LIB3A_AE_FEATURE_H
// AE mode definition
typedef enum
{
LIB3A_AE_MODE_UNSUPPORTED = -1,
LIB3A_AE_MODE_OFF = 0,
LIB3A_AE_MODE_ON = 1,
LIB3A_AE_MODE_ON_AUTO_FLASH = 2,
LIB3A_AE_MODE_ON_ALWAYS_FLASH = 3,
LIB3A_AE_MODE_ON_AUTO_FLASH_REDEYE = 4,
LIB3A_AE_MODE_MAX
} LIB3A_AE_MODE_T;
// Cam mode definition
typedef enum
{
LIB3A_AECAM_MODE_UNSUPPORTED = -1,
LIB3A_AECAM_MODE_PHOTO = 0,
LIB3A_AECAM_MODE_VIDEO = 1,
LIB3A_AECAM_MODE_ZSD = 2,
LIB3A_AECAM_MODE_S3D = 3,
LIB3A_AECAM_MODE_MAX
} LIB3A_AECAM_MODE_T;
// Sensor index definition
typedef enum
{
LIB3A_SENSOR_MODE_UNSUPPORTED = -1,
LIB3A_SENSOR_MODE_PRVIEW = 0,
LIB3A_SENSOR_MODE_CAPTURE = 1,
LIB3A_SENSOR_MODE_VIDEO = 2,
LIB3A_SENSOR_MODE_VIDEO1 = 3,
LIB3A_SENSOR_MODE_VIDEO2 = 4,
LIB3A_SENSOR_MODE_CUSTOM1 = 5,
LIB3A_SENSOR_MODE_CUSTOM2 = 6,
LIB3A_SENSOR_MODE_CUSTOM3 = 7,
LIB3A_SENSOR_MODE_CUSTOM4 = 8,
LIB3A_SENSOR_MODE_CUSTOM5 = 9,
LIB3A_SENSOR_MODE_CAPTURE_ZSD = 10,
LIB3A_SENSOR_MODE_MAX
} LIB3A_SENSOR_MODE_T;
// AE EV compensation
typedef enum // enum for evcompensate
{
LIB3A_AE_EV_COMP_UNSUPPORTED = -1,
LIB3A_AE_EV_COMP_00 = 0, // Disable EV compenate
LIB3A_AE_EV_COMP_01 = 1, // EV compensate 0.1
LIB3A_AE_EV_COMP_02 = 2, // EV compensate 0.2
LIB3A_AE_EV_COMP_03 = 3, // EV compensate 0.3
LIB3A_AE_EV_COMP_04 = 4, // EV compensate 0.4
LIB3A_AE_EV_COMP_05 = 5, // EV compensate 0.5
LIB3A_AE_EV_COMP_06 = 6, // EV compensate 0.6
LIB3A_AE_EV_COMP_07 = 7, // EV compensate 0.7
LIB3A_AE_EV_COMP_08 = 8, // EV compensate 0.8
LIB3A_AE_EV_COMP_09 = 9, // EV compensate 0.9
LIB3A_AE_EV_COMP_10 = 10, // EV compensate 1.0
LIB3A_AE_EV_COMP_11 = 11, // EV compensate 1.1
LIB3A_AE_EV_COMP_12 = 12, // EV compensate 1.2
LIB3A_AE_EV_COMP_13 = 13, // EV compensate 1.3
LIB3A_AE_EV_COMP_14 = 14, // EV compensate 1.4
LIB3A_AE_EV_COMP_15 = 15, // EV compensate 1.5
LIB3A_AE_EV_COMP_16 = 16, // EV compensate 1.6
LIB3A_AE_EV_COMP_17 = 17, // EV compensate 1.7
LIB3A_AE_EV_COMP_18 = 18, // EV compensate 1.8
LIB3A_AE_EV_COMP_19 = 19, // EV compensate 1.9
LIB3A_AE_EV_COMP_20 = 20, // EV compensate 2.0
LIB3A_AE_EV_COMP_21 = 21, // EV compensate 2.1
LIB3A_AE_EV_COMP_22 = 22, // EV compensate 2.2
LIB3A_AE_EV_COMP_23 = 23, // EV compensate 2.3
LIB3A_AE_EV_COMP_24 = 24, // EV compensate 2.4
LIB3A_AE_EV_COMP_25 = 25, // EV compensate 2.5
LIB3A_AE_EV_COMP_26 = 26, // EV compensate 2.6
LIB3A_AE_EV_COMP_27 = 27, // EV compensate 2.7
LIB3A_AE_EV_COMP_28 = 28, // EV compensate 2.8
LIB3A_AE_EV_COMP_29 = 29, // EV compensate 2.9
LIB3A_AE_EV_COMP_30 = 30, // EV compensate 3.0
LIB3A_AE_EV_COMP_31 = 31, // EV compensate 3.1
LIB3A_AE_EV_COMP_32 = 32, // EV compensate 3.2
LIB3A_AE_EV_COMP_33 = 33, // EV compensate 3.3
LIB3A_AE_EV_COMP_34 = 34, // EV compensate 3.4
LIB3A_AE_EV_COMP_35 = 35, // EV compensate 3.5
LIB3A_AE_EV_COMP_36 = 36, // EV compensate 3.6
LIB3A_AE_EV_COMP_37 = 37, // EV compensate 3.7
LIB3A_AE_EV_COMP_38 = 38, // EV compensate 3.8
LIB3A_AE_EV_COMP_39 = 39, // EV compensate 3.9
LIB3A_AE_EV_COMP_40 = 40, // EV compensate 4.0
LIB3A_AE_EV_COMP_n01 = 41, // EV compensate -0.1
LIB3A_AE_EV_COMP_n02 = 42, // EV compensate -0.2
LIB3A_AE_EV_COMP_n03 = 43, // EV compensate -0.3
LIB3A_AE_EV_COMP_n04 = 44, // EV compensate -0.4
LIB3A_AE_EV_COMP_n05 = 45, // EV compensate -0.5
LIB3A_AE_EV_COMP_n06 = 46, // EV compensate -0.6
LIB3A_AE_EV_COMP_n07 = 47, // EV compensate -0.7
LIB3A_AE_EV_COMP_n08 = 48, // EV compensate -0.8
LIB3A_AE_EV_COMP_n09 = 49, // EV compensate -0.9
LIB3A_AE_EV_COMP_n10 = 50, // EV compensate -1.0
LIB3A_AE_EV_COMP_n11 = 51, // EV compensate -1.1
LIB3A_AE_EV_COMP_n12 = 52, // EV compensate -1.2
LIB3A_AE_EV_COMP_n13 = 53, // EV compensate -1.3
LIB3A_AE_EV_COMP_n14 = 54, // EV compensate -1.4
LIB3A_AE_EV_COMP_n15 = 55, // EV compensate -1.5
LIB3A_AE_EV_COMP_n16 = 56, // EV compensate -1.6
LIB3A_AE_EV_COMP_n17 = 57, // EV compensate -1.7
LIB3A_AE_EV_COMP_n18 = 58, // EV compensate -1.8
LIB3A_AE_EV_COMP_n19 = 59, // EV compensate -1.9
LIB3A_AE_EV_COMP_n20 = 60, // EV compensate -2.0
LIB3A_AE_EV_COMP_n21 = 61, // EV compensate -2.1
LIB3A_AE_EV_COMP_n22 = 62, // EV compensate -2.2
LIB3A_AE_EV_COMP_n23 = 63, // EV compensate -2.3
LIB3A_AE_EV_COMP_n24 = 64, // EV compensate -2.4
LIB3A_AE_EV_COMP_n25 = 65, // EV compensate -2.5
LIB3A_AE_EV_COMP_n26 = 66, // EV compensate -2.6
LIB3A_AE_EV_COMP_n27 = 67, // EV compensate -2.7
LIB3A_AE_EV_COMP_n28 = 68, // EV compensate -2.8
LIB3A_AE_EV_COMP_n29 = 69, // EV compensate -2.9
LIB3A_AE_EV_COMP_n30 = 70, // EV compensate -3.0
LIB3A_AE_EV_COMP_n31 = 71, // EV compensate -3.1
LIB3A_AE_EV_COMP_n32 = 72, // EV compensate -3.2
LIB3A_AE_EV_COMP_n33 = 73, // EV compensate -3.3
LIB3A_AE_EV_COMP_n34 = 74, // EV compensate -3.4
LIB3A_AE_EV_COMP_n35 = 75, // EV compensate -3.5
LIB3A_AE_EV_COMP_n36 = 76, // EV compensate -3.6
LIB3A_AE_EV_COMP_n37 = 77, // EV compensate -3.7
LIB3A_AE_EV_COMP_n38 = 78, // EV compensate -3.8
LIB3A_AE_EV_COMP_n39 = 79, // EV compensate -3.9
LIB3A_AE_EV_COMP_n40 = 80, // EV compensate -4.0
LIB3A_AE_EV_COMP_n41 = 81, // EV compensate -4.1
LIB3A_AE_EV_COMP_n42 = 82, // EV compensate -4.2
LIB3A_AE_EV_COMP_n43 = 83, // EV compensate -4.3
LIB3A_AE_EV_COMP_n44 = 84, // EV compensate -4.4
LIB3A_AE_EV_COMP_n45 = 85, // EV compensate -4.5
LIB3A_AE_EV_COMP_n46 = 86, // EV compensate -4.6
LIB3A_AE_EV_COMP_n47 = 87, // EV compensate -4.7
LIB3A_AE_EV_COMP_n48 = 88, // EV compensate -4.8
LIB3A_AE_EV_COMP_n49 = 89, // EV compensate -4.9
LIB3A_AE_EV_COMP_n50 = 90, // EV compensate -5.0
LIB3A_AE_EV_COMP_n51 = 91, // EV compensate -5.1
LIB3A_AE_EV_COMP_n52 = 92, // EV compensate -5.2
LIB3A_AE_EV_COMP_n53 = 93, // EV compensate -5.3
LIB3A_AE_EV_COMP_n54 = 94, // EV compensate -5.4
LIB3A_AE_EV_COMP_n55 = 95, // EV compensate -5.5
LIB3A_AE_EV_COMP_n56 = 96, // EV compensate -5.6
LIB3A_AE_EV_COMP_n57 = 97, // EV compensate -5.7
LIB3A_AE_EV_COMP_n58 = 98, // EV compensate -5.8
LIB3A_AE_EV_COMP_n59 = 99, // EV compensate -5.9
LIB3A_AE_EV_COMP_n60 = 100, // EV compensate -6.0
LIB3A_AE_EV_COMP_MAX
}LIB3A_AE_EVCOMP_T;
// AE metering mode
typedef enum // enum for metering
{
LIB3A_AE_METERING_MODE_UNSUPPORTED = -1,
LIB3A_AE_METERING_MODE_CENTER_WEIGHT, // CENTER WEIGHTED MODE
LIB3A_AE_METERING_MODE_SOPT, // SPOT MODE
LIB3A_AE_METERING_MODE_AVERAGE, // AVERAGE MODE
LIB3A_AE_METERING_MODE_MULTI, // MULTI MODE
LIB3A_AE_METERING_MODE_MAX
}LIB3A_AE_METERING_MODE_T;
// AE set flicker mode
typedef enum
{
LIB3A_AE_FLICKER_MODE_UNSUPPORTED = -1,
LIB3A_AE_FLICKER_MODE_60HZ,
LIB3A_AE_FLICKER_MODE_50HZ,
LIB3A_AE_FLICKER_MODE_AUTO, // No support in MT6516
LIB3A_AE_FLICKER_MODE_OFF, // No support in MT6516
LIB3A_AE_FLICKER_MODE_MAX
}LIB3A_AE_FLICKER_MODE_T;
// AE set frame rate mode //10base
typedef enum
{
LIB3A_AE_FRAMERATE_MODE_UNSUPPORTED = -1,
LIB3A_AE_FRAMERATE_MODE_DYNAMIC = 0,
LIB3A_AE_FRAMERATE_MODE_05FPS = 20,
LIB3A_AE_FRAMERATE_MODE_15FPS = 150,
LIB3A_AE_FRAMERATE_MODE_30FPS = 300,
LIB3A_AE_FRAMERATE_MODE_60FPS = 600,
LIB3A_AE_FRAMERATE_MODE_90FPS = 900,
LIB3A_AE_FRAMERATE_MODE_120FPS = 1200,
LIB3A_AE_FRAMERATE_MODE_240FPS = 2400,
LIB3A_AE_FRAMERATE_MODE_MAX = LIB3A_AE_FRAMERATE_MODE_240FPS
}LIB3A_AE_FRAMERATE_MODE_T;
// for flicker detection algorithm used only.
typedef enum
{
LIB3A_AE_FLICKER_AUTO_MODE_UNSUPPORTED = -1,
LIB3A_AE_FLICKER_AUTO_MODE_50HZ,
LIB3A_AE_FLICKER_AUTO_MODE_60HZ,
LIB3A_AE_FLICKER_AUTO_MODE_MAX
}LIB3A_AE_FLICKER_AUTO_MODE_T;
// remove later
typedef enum
{
LIB3A_AE_STROBE_MODE_UNSUPPORTED = -1,
LIB3A_AE_STROBE_MODE_AUTO = 0,
LIB3A_AE_STROBE_MODE_SLOWSYNC = 0, //NOW DO NOT SUPPORT SLOW SYNC, TEMPERALLY THE SAME WITH AUTO
LIB3A_AE_STROBE_MODE_FORCE_ON = 1,
LIB3A_AE_STROBE_MODE_FORCE_OFF = 2,
LIB3A_AE_STROBE_MODE_FORCE_TORCH = 3,
LIB3A_AE_STROBE_MODE_REDEYE = 4,
LIB3A_AE_STROBE_MODE_TOTAL_NUM,
LIB3A_AE_STROBE_MODE_MIN = LIB3A_AE_STROBE_MODE_AUTO,
LIB3A_AE_STROBE_MODE_MAX = LIB3A_AE_STROBE_MODE_FORCE_OFF
}LIB3A_AE_STROBE_MODE_T;
#endif

@ -1,236 +0,0 @@
#ifndef __AE_FEATURE_H__
#define __AE_FEATURE_H__
// AE mode definition
typedef enum
{
LIB3A_AE_MODE_UNSUPPORTED = -1,
LIB3A_AE_MODE_OFF = 0,
LIB3A_AE_MODE_ON = 1,
LIB3A_AE_MODE_ON_AUTO_FLASH = 2,
LIB3A_AE_MODE_ON_ALWAYS_FLASH = 3,
LIB3A_AE_MODE_ON_AUTO_FLASH_REDEYE = 4,
LIB3A_AE_MODE_ON_EXTERNAL_FLASH = 5,
LIB3A_AE_MODE_MAX
} LIB3A_AE_MODE_T;
// Cam mode definition
typedef enum
{
LIB3A_AECAM_MODE_UNSUPPORTED = -1,
LIB3A_AECAM_MODE_PHOTO = 0,
LIB3A_AECAM_MODE_VIDEO = 1,
LIB3A_AECAM_MODE_ZSD = 2,
LIB3A_AECAM_MODE_S3D = 3,
LIB3A_AECAM_MODE_MAX
} LIB3A_AECAM_MODE_T;
// Sensor index definition
typedef enum
{
LIB3A_SENSOR_MODE_UNSUPPORTED = -1,
LIB3A_SENSOR_MODE_PRVIEW = 0,
LIB3A_SENSOR_MODE_CAPTURE = 1,
LIB3A_SENSOR_MODE_VIDEO = 2,
LIB3A_SENSOR_MODE_VIDEO1 = 3,
LIB3A_SENSOR_MODE_VIDEO2 = 4,
LIB3A_SENSOR_MODE_CUSTOM1 = 5,
LIB3A_SENSOR_MODE_CUSTOM2 = 6,
LIB3A_SENSOR_MODE_CUSTOM3 = 7,
LIB3A_SENSOR_MODE_CUSTOM4 = 8,
LIB3A_SENSOR_MODE_CUSTOM5 = 9,
LIB3A_SENSOR_MODE_CAPTURE_ZSD = 10,
LIB3A_SENSOR_MODE_MAX
} LIB3A_SENSOR_MODE_T;
// AE EV compensation
typedef enum // enum for evcompensate
{
LIB3A_AE_EV_COMP_UNSUPPORTED = -1,
LIB3A_AE_EV_COMP_00 = 0, // Disable EV compenate
LIB3A_AE_EV_COMP_01 = 1, // EV compensate 0.1
LIB3A_AE_EV_COMP_02 = 2, // EV compensate 0.2
LIB3A_AE_EV_COMP_03 = 3, // EV compensate 0.3
LIB3A_AE_EV_COMP_04 = 4, // EV compensate 0.4
LIB3A_AE_EV_COMP_05 = 5, // EV compensate 0.5
LIB3A_AE_EV_COMP_06 = 6, // EV compensate 0.6
LIB3A_AE_EV_COMP_07 = 7, // EV compensate 0.7
LIB3A_AE_EV_COMP_08 = 8, // EV compensate 0.8
LIB3A_AE_EV_COMP_09 = 9, // EV compensate 0.9
LIB3A_AE_EV_COMP_10 = 10, // EV compensate 1.0
LIB3A_AE_EV_COMP_11 = 11, // EV compensate 1.1
LIB3A_AE_EV_COMP_12 = 12, // EV compensate 1.2
LIB3A_AE_EV_COMP_13 = 13, // EV compensate 1.3
LIB3A_AE_EV_COMP_14 = 14, // EV compensate 1.4
LIB3A_AE_EV_COMP_15 = 15, // EV compensate 1.5
LIB3A_AE_EV_COMP_16 = 16, // EV compensate 1.6
LIB3A_AE_EV_COMP_17 = 17, // EV compensate 1.7
LIB3A_AE_EV_COMP_18 = 18, // EV compensate 1.8
LIB3A_AE_EV_COMP_19 = 19, // EV compensate 1.9
LIB3A_AE_EV_COMP_20 = 20, // EV compensate 2.0
LIB3A_AE_EV_COMP_21 = 21, // EV compensate 2.1
LIB3A_AE_EV_COMP_22 = 22, // EV compensate 2.2
LIB3A_AE_EV_COMP_23 = 23, // EV compensate 2.3
LIB3A_AE_EV_COMP_24 = 24, // EV compensate 2.4
LIB3A_AE_EV_COMP_25 = 25, // EV compensate 2.5
LIB3A_AE_EV_COMP_26 = 26, // EV compensate 2.6
LIB3A_AE_EV_COMP_27 = 27, // EV compensate 2.7
LIB3A_AE_EV_COMP_28 = 28, // EV compensate 2.8
LIB3A_AE_EV_COMP_29 = 29, // EV compensate 2.9
LIB3A_AE_EV_COMP_30 = 30, // EV compensate 3.0
LIB3A_AE_EV_COMP_31 = 31, // EV compensate 3.1
LIB3A_AE_EV_COMP_32 = 32, // EV compensate 3.2
LIB3A_AE_EV_COMP_33 = 33, // EV compensate 3.3
LIB3A_AE_EV_COMP_34 = 34, // EV compensate 3.4
LIB3A_AE_EV_COMP_35 = 35, // EV compensate 3.5
LIB3A_AE_EV_COMP_36 = 36, // EV compensate 3.6
LIB3A_AE_EV_COMP_37 = 37, // EV compensate 3.7
LIB3A_AE_EV_COMP_38 = 38, // EV compensate 3.8
LIB3A_AE_EV_COMP_39 = 39, // EV compensate 3.9
LIB3A_AE_EV_COMP_40 = 40, // EV compensate 4.0
LIB3A_AE_EV_COMP_n01 = 41, // EV compensate -0.1
LIB3A_AE_EV_COMP_n02 = 42, // EV compensate -0.2
LIB3A_AE_EV_COMP_n03 = 43, // EV compensate -0.3
LIB3A_AE_EV_COMP_n04 = 44, // EV compensate -0.4
LIB3A_AE_EV_COMP_n05 = 45, // EV compensate -0.5
LIB3A_AE_EV_COMP_n06 = 46, // EV compensate -0.6
LIB3A_AE_EV_COMP_n07 = 47, // EV compensate -0.7
LIB3A_AE_EV_COMP_n08 = 48, // EV compensate -0.8
LIB3A_AE_EV_COMP_n09 = 49, // EV compensate -0.9
LIB3A_AE_EV_COMP_n10 = 50, // EV compensate -1.0
LIB3A_AE_EV_COMP_n11 = 51, // EV compensate -1.1
LIB3A_AE_EV_COMP_n12 = 52, // EV compensate -1.2
LIB3A_AE_EV_COMP_n13 = 53, // EV compensate -1.3
LIB3A_AE_EV_COMP_n14 = 54, // EV compensate -1.4
LIB3A_AE_EV_COMP_n15 = 55, // EV compensate -1.5
LIB3A_AE_EV_COMP_n16 = 56, // EV compensate -1.6
LIB3A_AE_EV_COMP_n17 = 57, // EV compensate -1.7
LIB3A_AE_EV_COMP_n18 = 58, // EV compensate -1.8
LIB3A_AE_EV_COMP_n19 = 59, // EV compensate -1.9
LIB3A_AE_EV_COMP_n20 = 60, // EV compensate -2.0
LIB3A_AE_EV_COMP_n21 = 61, // EV compensate -2.1
LIB3A_AE_EV_COMP_n22 = 62, // EV compensate -2.2
LIB3A_AE_EV_COMP_n23 = 63, // EV compensate -2.3
LIB3A_AE_EV_COMP_n24 = 64, // EV compensate -2.4
LIB3A_AE_EV_COMP_n25 = 65, // EV compensate -2.5
LIB3A_AE_EV_COMP_n26 = 66, // EV compensate -2.6
LIB3A_AE_EV_COMP_n27 = 67, // EV compensate -2.7
LIB3A_AE_EV_COMP_n28 = 68, // EV compensate -2.8
LIB3A_AE_EV_COMP_n29 = 69, // EV compensate -2.9
LIB3A_AE_EV_COMP_n30 = 70, // EV compensate -3.0
LIB3A_AE_EV_COMP_n31 = 71, // EV compensate -3.1
LIB3A_AE_EV_COMP_n32 = 72, // EV compensate -3.2
LIB3A_AE_EV_COMP_n33 = 73, // EV compensate -3.3
LIB3A_AE_EV_COMP_n34 = 74, // EV compensate -3.4
LIB3A_AE_EV_COMP_n35 = 75, // EV compensate -3.5
LIB3A_AE_EV_COMP_n36 = 76, // EV compensate -3.6
LIB3A_AE_EV_COMP_n37 = 77, // EV compensate -3.7
LIB3A_AE_EV_COMP_n38 = 78, // EV compensate -3.8
LIB3A_AE_EV_COMP_n39 = 79, // EV compensate -3.9
LIB3A_AE_EV_COMP_n40 = 80, // EV compensate -4.0
LIB3A_AE_EV_COMP_n41 = 81, // EV compensate -4.1
LIB3A_AE_EV_COMP_n42 = 82, // EV compensate -4.2
LIB3A_AE_EV_COMP_n43 = 83, // EV compensate -4.3
LIB3A_AE_EV_COMP_n44 = 84, // EV compensate -4.4
LIB3A_AE_EV_COMP_n45 = 85, // EV compensate -4.5
LIB3A_AE_EV_COMP_n46 = 86, // EV compensate -4.6
LIB3A_AE_EV_COMP_n47 = 87, // EV compensate -4.7
LIB3A_AE_EV_COMP_n48 = 88, // EV compensate -4.8
LIB3A_AE_EV_COMP_n49 = 89, // EV compensate -4.9
LIB3A_AE_EV_COMP_n50 = 90, // EV compensate -5.0
LIB3A_AE_EV_COMP_n51 = 91, // EV compensate -5.1
LIB3A_AE_EV_COMP_n52 = 92, // EV compensate -5.2
LIB3A_AE_EV_COMP_n53 = 93, // EV compensate -5.3
LIB3A_AE_EV_COMP_n54 = 94, // EV compensate -5.4
LIB3A_AE_EV_COMP_n55 = 95, // EV compensate -5.5
LIB3A_AE_EV_COMP_n56 = 96, // EV compensate -5.6
LIB3A_AE_EV_COMP_n57 = 97, // EV compensate -5.7
LIB3A_AE_EV_COMP_n58 = 98, // EV compensate -5.8
LIB3A_AE_EV_COMP_n59 = 99, // EV compensate -5.9
LIB3A_AE_EV_COMP_n60 = 100, // EV compensate -6.0
LIB3A_AE_EV_COMP_n61 = 101, // EV compensate -6.1
LIB3A_AE_EV_COMP_n62 = 102, // EV compensate -6.2
LIB3A_AE_EV_COMP_n63 = 103, // EV compensate -6.3
LIB3A_AE_EV_COMP_n64 = 104, // EV compensate -6.4
LIB3A_AE_EV_COMP_n65 = 105, // EV compensate -6.5
LIB3A_AE_EV_COMP_n66 = 106, // EV compensate -6.6
LIB3A_AE_EV_COMP_n67 = 107, // EV compensate -6.7
LIB3A_AE_EV_COMP_n68 = 108, // EV compensate -6.8
LIB3A_AE_EV_COMP_n69 = 109, // EV compensate -6.9
LIB3A_AE_EV_COMP_n70 = 110, // EV compensate -7.0
LIB3A_AE_EV_COMP_MAX
}LIB3A_AE_EVCOMP_T;
// AE metering mode
typedef enum // enum for metering
{
LIB3A_AE_METERING_MODE_UNSUPPORTED = -1,
LIB3A_AE_METERING_MODE_CENTER_WEIGHT, // CENTER WEIGHTED MODE
LIB3A_AE_METERING_MODE_SOPT, // SPOT MODE
LIB3A_AE_METERING_MODE_AVERAGE, // AVERAGE MODE
LIB3A_AE_METERING_MODE_MULTI, // MULTI MODE
LIB3A_AE_METERING_MODE_MAX
}LIB3A_AE_METERING_MODE_T;
// AE set flicker mode
typedef enum
{
LIB3A_AE_FLICKER_MODE_UNSUPPORTED = -1,
LIB3A_AE_FLICKER_MODE_60HZ,
LIB3A_AE_FLICKER_MODE_50HZ,
LIB3A_AE_FLICKER_MODE_AUTO, // No support in MT6516
LIB3A_AE_FLICKER_MODE_OFF, // No support in MT6516
LIB3A_AE_FLICKER_MODE_MAX
}LIB3A_AE_FLICKER_MODE_T;
// AE set frame rate mode //10base
typedef enum
{
LIB3A_AE_FRAMERATE_MODE_UNSUPPORTED = -1,
LIB3A_AE_FRAMERATE_MODE_DYNAMIC = 0,
LIB3A_AE_FRAMERATE_MODE_05FPS = 20,
LIB3A_AE_FRAMERATE_MODE_15FPS = 150,
LIB3A_AE_FRAMERATE_MODE_30FPS = 300,
LIB3A_AE_FRAMERATE_MODE_60FPS = 600,
LIB3A_AE_FRAMERATE_MODE_90FPS = 900,
LIB3A_AE_FRAMERATE_MODE_120FPS = 1200,
LIB3A_AE_FRAMERATE_MODE_240FPS = 2400,
LIB3A_AE_FRAMERATE_MODE_480FPS = 4800,
LIB3A_AE_FRAMERATE_MODE_MAX = LIB3A_AE_FRAMERATE_MODE_480FPS
}LIB3A_AE_FRAMERATE_MODE_T;
// for flicker detection algorithm used only.
typedef enum
{
LIB3A_AE_FLICKER_AUTO_MODE_UNSUPPORTED = -1,
LIB3A_AE_FLICKER_AUTO_MODE_50HZ,
LIB3A_AE_FLICKER_AUTO_MODE_60HZ,
LIB3A_AE_FLICKER_AUTO_MODE_MAX
}LIB3A_AE_FLICKER_AUTO_MODE_T;
// remove later
typedef enum
{
LIB3A_AE_STROBE_MODE_UNSUPPORTED = -1,
LIB3A_AE_STROBE_MODE_AUTO = 0,
LIB3A_AE_STROBE_MODE_SLOWSYNC = 0, //NOW DO NOT SUPPORT SLOW SYNC, TEMPERALLY THE SAME WITH AUTO
LIB3A_AE_STROBE_MODE_FORCE_ON = 1,
LIB3A_AE_STROBE_MODE_FORCE_OFF = 2,
LIB3A_AE_STROBE_MODE_FORCE_TORCH = 3,
LIB3A_AE_STROBE_MODE_REDEYE = 4,
LIB3A_AE_STROBE_MODE_TOTAL_NUM,
LIB3A_AE_STROBE_MODE_MIN = LIB3A_AE_STROBE_MODE_AUTO,
LIB3A_AE_STROBE_MODE_MAX = LIB3A_AE_STROBE_MODE_FORCE_OFF
}LIB3A_AE_STROBE_MODE_T;
// for mstream hdr ISO reconfig used.
typedef enum
{
LIB3A_AE_APP_MODE_UNSUPPORTED = -1,
LIB3A_AE_APP_MODE_PHOTO_PREVIEW = 0,
LIB3A_AE_APP_MODE_VIDEO_PREVIEW = 1,
LIB3A_AE_APP_MODE_VIDEO_RECORD = 2,
LIB3A_AE_APP_MODE_VIDEO_STOP = 3,
}LIB3A_AE_APP_MODE_T;
#endif

@ -1,249 +0,0 @@
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein
* is confidential and proprietary to MediaTek Inc. and/or its licensors.
* Without the prior written permission of MediaTek inc. and/or its licensors,
* any reproduction, modification, use or disclosure of MediaTek Software,
* and information contained herein, in whole or in part, shall be strictly prohibited.
*/
/* MediaTek Inc. (C) 2010. All rights reserved.
*
* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
* STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
* CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* The following software/firmware and/or related documentation ("MediaTek Software")
* have been modified by MediaTek Inc. All revisions are subject to any receiver's
* applicable license agreements with MediaTek Inc.
*/
#ifndef _LIB3A_AE_FEATURE_H
#define _LIB3A_AE_FEATURE_H
// AE mode definition
typedef enum
{
LIB3A_AE_MODE_UNSUPPORTED = -1,
LIB3A_AE_MODE_OFF = 0,
LIB3A_AE_MODE_ON = 1,
LIB3A_AE_MODE_ON_AUTO_FLASH = 2,
LIB3A_AE_MODE_ON_ALWAYS_FLASH = 3,
LIB3A_AE_MODE_ON_AUTO_FLASH_REDEYE = 4,
LIB3A_AE_MODE_MAX
} LIB3A_AE_MODE_T;
// Cam mode definition
typedef enum
{
LIB3A_AECAM_MODE_UNSUPPORTED = -1,
LIB3A_AECAM_MODE_PHOTO = 0,
LIB3A_AECAM_MODE_VIDEO = 1,
LIB3A_AECAM_MODE_ZSD = 2,
LIB3A_AECAM_MODE_S3D = 3,
LIB3A_AECAM_MODE_MAX
} LIB3A_AECAM_MODE_T;
// Sensor index definition
typedef enum
{
LIB3A_SENSOR_MODE_UNSUPPORTED = -1,
LIB3A_SENSOR_MODE_PRVIEW = 0,
LIB3A_SENSOR_MODE_CAPTURE = 1,
LIB3A_SENSOR_MODE_VIDEO = 2,
LIB3A_SENSOR_MODE_VIDEO1 = 3,
LIB3A_SENSOR_MODE_VIDEO2 = 4,
LIB3A_SENSOR_MODE_CUSTOM1 = 5,
LIB3A_SENSOR_MODE_CUSTOM2 = 6,
LIB3A_SENSOR_MODE_CUSTOM3 = 7,
LIB3A_SENSOR_MODE_CUSTOM4 = 8,
LIB3A_SENSOR_MODE_CUSTOM5 = 9,
LIB3A_SENSOR_MODE_CAPTURE_ZSD = 10,
LIB3A_SENSOR_MODE_MAX
} LIB3A_SENSOR_MODE_T;
// AE EV compensation
typedef enum // enum for evcompensate
{
LIB3A_AE_EV_COMP_UNSUPPORTED = -1,
LIB3A_AE_EV_COMP_00 = 0, // Disable EV compenate
LIB3A_AE_EV_COMP_01 = 1, // EV compensate 0.1
LIB3A_AE_EV_COMP_02 = 2, // EV compensate 0.2
LIB3A_AE_EV_COMP_03 = 3, // EV compensate 0.3
LIB3A_AE_EV_COMP_04 = 4, // EV compensate 0.4
LIB3A_AE_EV_COMP_05 = 5, // EV compensate 0.5
LIB3A_AE_EV_COMP_06 = 6, // EV compensate 0.6
LIB3A_AE_EV_COMP_07 = 7, // EV compensate 0.7
LIB3A_AE_EV_COMP_08 = 8, // EV compensate 0.8
LIB3A_AE_EV_COMP_09 = 9, // EV compensate 0.9
LIB3A_AE_EV_COMP_10 = 10, // EV compensate 1.0
LIB3A_AE_EV_COMP_11 = 11, // EV compensate 1.1
LIB3A_AE_EV_COMP_12 = 12, // EV compensate 1.2
LIB3A_AE_EV_COMP_13 = 13, // EV compensate 1.3
LIB3A_AE_EV_COMP_14 = 14, // EV compensate 1.4
LIB3A_AE_EV_COMP_15 = 15, // EV compensate 1.5
LIB3A_AE_EV_COMP_16 = 16, // EV compensate 1.6
LIB3A_AE_EV_COMP_17 = 17, // EV compensate 1.7
LIB3A_AE_EV_COMP_18 = 18, // EV compensate 1.8
LIB3A_AE_EV_COMP_19 = 19, // EV compensate 1.9
LIB3A_AE_EV_COMP_20 = 20, // EV compensate 2.0
LIB3A_AE_EV_COMP_21 = 21, // EV compensate 2.1
LIB3A_AE_EV_COMP_22 = 22, // EV compensate 2.2
LIB3A_AE_EV_COMP_23 = 23, // EV compensate 2.3
LIB3A_AE_EV_COMP_24 = 24, // EV compensate 2.4
LIB3A_AE_EV_COMP_25 = 25, // EV compensate 2.5
LIB3A_AE_EV_COMP_26 = 26, // EV compensate 2.6
LIB3A_AE_EV_COMP_27 = 27, // EV compensate 2.7
LIB3A_AE_EV_COMP_28 = 28, // EV compensate 2.8
LIB3A_AE_EV_COMP_29 = 29, // EV compensate 2.9
LIB3A_AE_EV_COMP_30 = 30, // EV compensate 3.0
LIB3A_AE_EV_COMP_31 = 31, // EV compensate 3.1
LIB3A_AE_EV_COMP_32 = 32, // EV compensate 3.2
LIB3A_AE_EV_COMP_33 = 33, // EV compensate 3.3
LIB3A_AE_EV_COMP_34 = 34, // EV compensate 3.4
LIB3A_AE_EV_COMP_35 = 35, // EV compensate 3.5
LIB3A_AE_EV_COMP_36 = 36, // EV compensate 3.6
LIB3A_AE_EV_COMP_37 = 37, // EV compensate 3.7
LIB3A_AE_EV_COMP_38 = 38, // EV compensate 3.8
LIB3A_AE_EV_COMP_39 = 39, // EV compensate 3.9
LIB3A_AE_EV_COMP_40 = 40, // EV compensate 4.0
LIB3A_AE_EV_COMP_n01 = 41, // EV compensate -0.1
LIB3A_AE_EV_COMP_n02 = 42, // EV compensate -0.2
LIB3A_AE_EV_COMP_n03 = 43, // EV compensate -0.3
LIB3A_AE_EV_COMP_n04 = 44, // EV compensate -0.4
LIB3A_AE_EV_COMP_n05 = 45, // EV compensate -0.5
LIB3A_AE_EV_COMP_n06 = 46, // EV compensate -0.6
LIB3A_AE_EV_COMP_n07 = 47, // EV compensate -0.7
LIB3A_AE_EV_COMP_n08 = 48, // EV compensate -0.8
LIB3A_AE_EV_COMP_n09 = 49, // EV compensate -0.9
LIB3A_AE_EV_COMP_n10 = 50, // EV compensate -1.0
LIB3A_AE_EV_COMP_n11 = 51, // EV compensate -1.1
LIB3A_AE_EV_COMP_n12 = 52, // EV compensate -1.2
LIB3A_AE_EV_COMP_n13 = 53, // EV compensate -1.3
LIB3A_AE_EV_COMP_n14 = 54, // EV compensate -1.4
LIB3A_AE_EV_COMP_n15 = 55, // EV compensate -1.5
LIB3A_AE_EV_COMP_n16 = 56, // EV compensate -1.6
LIB3A_AE_EV_COMP_n17 = 57, // EV compensate -1.7
LIB3A_AE_EV_COMP_n18 = 58, // EV compensate -1.8
LIB3A_AE_EV_COMP_n19 = 59, // EV compensate -1.9
LIB3A_AE_EV_COMP_n20 = 60, // EV compensate -2.0
LIB3A_AE_EV_COMP_n21 = 61, // EV compensate -2.1
LIB3A_AE_EV_COMP_n22 = 62, // EV compensate -2.2
LIB3A_AE_EV_COMP_n23 = 63, // EV compensate -2.3
LIB3A_AE_EV_COMP_n24 = 64, // EV compensate -2.4
LIB3A_AE_EV_COMP_n25 = 65, // EV compensate -2.5
LIB3A_AE_EV_COMP_n26 = 66, // EV compensate -2.6
LIB3A_AE_EV_COMP_n27 = 67, // EV compensate -2.7
LIB3A_AE_EV_COMP_n28 = 68, // EV compensate -2.8
LIB3A_AE_EV_COMP_n29 = 69, // EV compensate -2.9
LIB3A_AE_EV_COMP_n30 = 70, // EV compensate -3.0
LIB3A_AE_EV_COMP_n31 = 71, // EV compensate -3.1
LIB3A_AE_EV_COMP_n32 = 72, // EV compensate -3.2
LIB3A_AE_EV_COMP_n33 = 73, // EV compensate -3.3
LIB3A_AE_EV_COMP_n34 = 74, // EV compensate -3.4
LIB3A_AE_EV_COMP_n35 = 75, // EV compensate -3.5
LIB3A_AE_EV_COMP_n36 = 76, // EV compensate -3.6
LIB3A_AE_EV_COMP_n37 = 77, // EV compensate -3.7
LIB3A_AE_EV_COMP_n38 = 78, // EV compensate -3.8
LIB3A_AE_EV_COMP_n39 = 79, // EV compensate -3.9
LIB3A_AE_EV_COMP_n40 = 80, // EV compensate -4.0
LIB3A_AE_EV_COMP_n41 = 81, // EV compensate -4.1
LIB3A_AE_EV_COMP_n42 = 82, // EV compensate -4.2
LIB3A_AE_EV_COMP_n43 = 83, // EV compensate -4.3
LIB3A_AE_EV_COMP_n44 = 84, // EV compensate -4.4
LIB3A_AE_EV_COMP_n45 = 85, // EV compensate -4.5
LIB3A_AE_EV_COMP_n46 = 86, // EV compensate -4.6
LIB3A_AE_EV_COMP_n47 = 87, // EV compensate -4.7
LIB3A_AE_EV_COMP_n48 = 88, // EV compensate -4.8
LIB3A_AE_EV_COMP_n49 = 89, // EV compensate -4.9
LIB3A_AE_EV_COMP_n50 = 90, // EV compensate -5.0
LIB3A_AE_EV_COMP_n51 = 91, // EV compensate -5.1
LIB3A_AE_EV_COMP_n52 = 92, // EV compensate -5.2
LIB3A_AE_EV_COMP_n53 = 93, // EV compensate -5.3
LIB3A_AE_EV_COMP_n54 = 94, // EV compensate -5.4
LIB3A_AE_EV_COMP_n55 = 95, // EV compensate -5.5
LIB3A_AE_EV_COMP_n56 = 96, // EV compensate -5.6
LIB3A_AE_EV_COMP_n57 = 97, // EV compensate -5.7
LIB3A_AE_EV_COMP_n58 = 98, // EV compensate -5.8
LIB3A_AE_EV_COMP_n59 = 99, // EV compensate -5.9
LIB3A_AE_EV_COMP_n60 = 100, // EV compensate -6.0
LIB3A_AE_EV_COMP_MAX
}LIB3A_AE_EVCOMP_T;
// AE metering mode
typedef enum // enum for metering
{
LIB3A_AE_METERING_MODE_UNSUPPORTED = -1,
LIB3A_AE_METERING_MODE_CENTER_WEIGHT, // CENTER WEIGHTED MODE
LIB3A_AE_METERING_MODE_SOPT, // SPOT MODE
LIB3A_AE_METERING_MODE_AVERAGE, // AVERAGE MODE
LIB3A_AE_METERING_MODE_MULTI, // MULTI MODE
LIB3A_AE_METERING_MODE_MAX
}LIB3A_AE_METERING_MODE_T;
// AE set flicker mode
typedef enum
{
LIB3A_AE_FLICKER_MODE_UNSUPPORTED = -1,
LIB3A_AE_FLICKER_MODE_60HZ,
LIB3A_AE_FLICKER_MODE_50HZ,
LIB3A_AE_FLICKER_MODE_AUTO, // No support in MT6516
LIB3A_AE_FLICKER_MODE_OFF, // No support in MT6516
LIB3A_AE_FLICKER_MODE_MAX
}LIB3A_AE_FLICKER_MODE_T;
// AE set frame rate mode //10base
typedef enum
{
LIB3A_AE_FRAMERATE_MODE_UNSUPPORTED = -1,
LIB3A_AE_FRAMERATE_MODE_DYNAMIC = 0,
LIB3A_AE_FRAMERATE_MODE_05FPS = 20,
LIB3A_AE_FRAMERATE_MODE_15FPS = 150,
LIB3A_AE_FRAMERATE_MODE_30FPS = 300,
LIB3A_AE_FRAMERATE_MODE_60FPS = 600,
LIB3A_AE_FRAMERATE_MODE_90FPS = 900,
LIB3A_AE_FRAMERATE_MODE_120FPS = 1200,
LIB3A_AE_FRAMERATE_MODE_240FPS = 2400,
LIB3A_AE_FRAMERATE_MODE_MAX = LIB3A_AE_FRAMERATE_MODE_240FPS
}LIB3A_AE_FRAMERATE_MODE_T;
// for flicker detection algorithm used only.
typedef enum
{
LIB3A_AE_FLICKER_AUTO_MODE_UNSUPPORTED = -1,
LIB3A_AE_FLICKER_AUTO_MODE_50HZ,
LIB3A_AE_FLICKER_AUTO_MODE_60HZ,
LIB3A_AE_FLICKER_AUTO_MODE_MAX
}LIB3A_AE_FLICKER_AUTO_MODE_T;
// remove later
typedef enum
{
LIB3A_AE_STROBE_MODE_UNSUPPORTED = -1,
LIB3A_AE_STROBE_MODE_AUTO = 0,
LIB3A_AE_STROBE_MODE_SLOWSYNC = 0, //NOW DO NOT SUPPORT SLOW SYNC, TEMPERALLY THE SAME WITH AUTO
LIB3A_AE_STROBE_MODE_FORCE_ON = 1,
LIB3A_AE_STROBE_MODE_FORCE_OFF = 2,
LIB3A_AE_STROBE_MODE_FORCE_TORCH = 3,
LIB3A_AE_STROBE_MODE_REDEYE = 4,
LIB3A_AE_STROBE_MODE_TOTAL_NUM,
LIB3A_AE_STROBE_MODE_MIN = LIB3A_AE_STROBE_MODE_AUTO,
LIB3A_AE_STROBE_MODE_MAX = LIB3A_AE_STROBE_MODE_FORCE_OFF
}LIB3A_AE_STROBE_MODE_T;
#endif

@ -1,253 +0,0 @@
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein
* is confidential and proprietary to MediaTek Inc. and/or its licensors.
* Without the prior written permission of MediaTek inc. and/or its licensors,
* any reproduction, modification, use or disclosure of MediaTek Software,
* and information contained herein, in whole or in part, shall be strictly prohibited.
*/
/* MediaTek Inc. (C) 2010. All rights reserved.
*
* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
* STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
* CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* The following software/firmware and/or related documentation ("MediaTek Software")
* have been modified by MediaTek Inc. All revisions are subject to any receiver's
* applicable license agreements with MediaTek Inc.
*/
#ifndef _CCU_LIB3A_AE_FEATURE_H
#define _CCU_LIB3A_AE_FEATURE_H
// AE mode definition
typedef enum
{
CCU_LIB3A_AE_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AE_MODE_OFF = 0,
CCU_LIB3A_AE_MODE_ON = 1,
CCU_LIB3A_AE_MODE_ON_AUTO_FLASH = 2,
CCU_LIB3A_AE_MODE_ON_ALWAYS_FLASH = 3,
CCU_LIB3A_AE_MODE_ON_AUTO_FLASH_REDEYE = 4,
CCU_LIB3A_AE_MODE_MAX
} CCU_LIB3A_AE_MODE_T;
// Cam mode definition
typedef enum
{
CCU_LIB3A_AECAM_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AECAM_MODE_PHOTO = 0,
CCU_LIB3A_AECAM_MODE_VIDEO = 1,
CCU_LIB3A_AECAM_MODE_ZSD = 2,
CCU_LIB3A_AECAM_MODE_S3D = 3,
CCU_LIB3A_AECAM_MODE_MAX
} CCU_LIB3A_AECAM_MODE_T;
// Sensor index definition
typedef enum
{
CCU_LIB3A_SENSOR_MODE_UNSUPPORTED = -1,
CCU_LIB3A_SENSOR_MODE_PRVIEW = 0,
CCU_LIB3A_SENSOR_MODE_CAPTURE = 1,
CCU_LIB3A_SENSOR_MODE_VIDEO = 2,
CCU_LIB3A_SENSOR_MODE_VIDEO1 = 3,
CCU_LIB3A_SENSOR_MODE_VIDEO2 = 4,
CCU_LIB3A_SENSOR_MODE_CUSTOM1 = 5,
CCU_LIB3A_SENSOR_MODE_CUSTOM2 = 6,
CCU_LIB3A_SENSOR_MODE_CUSTOM3 = 7,
CCU_LIB3A_SENSOR_MODE_CUSTOM4 = 8,
CCU_LIB3A_SENSOR_MODE_CUSTOM5 = 9,
CCU_LIB3A_SENSOR_MODE_CAPTURE_ZSD = 10,
CCU_LIB3A_SENSOR_MODE_MAX
} CCU_LIB3A_SENSOR_MODE_T;
// AE EV compensation
// 82*4 = 328bytes
typedef enum // enum for evcompensate
{
CCU_LIB3A_AE_EV_COMP_UNSUPPORTED = -1,
CCU_LIB3A_AE_EV_COMP_00 = 0, // Disable EV compenate
CCU_LIB3A_AE_EV_COMP_01 = 1, // EV compensate 0.1
CCU_LIB3A_AE_EV_COMP_02 = 2, // EV compensate 0.2
CCU_LIB3A_AE_EV_COMP_03 = 3, // EV compensate 0.3
CCU_LIB3A_AE_EV_COMP_04 = 4, // EV compensate 0.4
CCU_LIB3A_AE_EV_COMP_05 = 5, // EV compensate 0.5
CCU_LIB3A_AE_EV_COMP_06 = 6, // EV compensate 0.6
CCU_LIB3A_AE_EV_COMP_07 = 7, // EV compensate 0.7
CCU_LIB3A_AE_EV_COMP_08 = 8, // EV compensate 0.8
CCU_LIB3A_AE_EV_COMP_09 = 9, // EV compensate 0.9
CCU_LIB3A_AE_EV_COMP_10 = 10, // EV compensate 1.0
CCU_LIB3A_AE_EV_COMP_11 = 11, // EV compensate 1.1
CCU_LIB3A_AE_EV_COMP_12 = 12, // EV compensate 1.2
CCU_LIB3A_AE_EV_COMP_13 = 13, // EV compensate 1.3
CCU_LIB3A_AE_EV_COMP_14 = 14, // EV compensate 1.4
CCU_LIB3A_AE_EV_COMP_15 = 15, // EV compensate 1.5
CCU_LIB3A_AE_EV_COMP_16 = 16, // EV compensate 1.6
CCU_LIB3A_AE_EV_COMP_17 = 17, // EV compensate 1.7
CCU_LIB3A_AE_EV_COMP_18 = 18, // EV compensate 1.8
CCU_LIB3A_AE_EV_COMP_19 = 19, // EV compensate 1.9
CCU_LIB3A_AE_EV_COMP_20 = 20, // EV compensate 2.0
CCU_LIB3A_AE_EV_COMP_21 = 21, // EV compensate 2.1
CCU_LIB3A_AE_EV_COMP_22 = 22, // EV compensate 2.2
CCU_LIB3A_AE_EV_COMP_23 = 23, // EV compensate 2.3
CCU_LIB3A_AE_EV_COMP_24 = 24, // EV compensate 2.4
CCU_LIB3A_AE_EV_COMP_25 = 25, // EV compensate 2.5
CCU_LIB3A_AE_EV_COMP_26 = 26, // EV compensate 2.6
CCU_LIB3A_AE_EV_COMP_27 = 27, // EV compensate 2.7
CCU_LIB3A_AE_EV_COMP_28 = 28, // EV compensate 2.8
CCU_LIB3A_AE_EV_COMP_29 = 29, // EV compensate 2.9
CCU_LIB3A_AE_EV_COMP_30 = 30, // EV compensate 3.0
CCU_LIB3A_AE_EV_COMP_31 = 31, // EV compensate 3.1
CCU_LIB3A_AE_EV_COMP_32 = 32, // EV compensate 3.2
CCU_LIB3A_AE_EV_COMP_33 = 33, // EV compensate 3.3
CCU_LIB3A_AE_EV_COMP_34 = 34, // EV compensate 3.4
CCU_LIB3A_AE_EV_COMP_35 = 35, // EV compensate 3.5
CCU_LIB3A_AE_EV_COMP_36 = 36, // EV compensate 3.6
CCU_LIB3A_AE_EV_COMP_37 = 37, // EV compensate 3.7
CCU_LIB3A_AE_EV_COMP_38 = 38, // EV compensate 3.8
CCU_LIB3A_AE_EV_COMP_39 = 39, // EV compensate 3.9
CCU_LIB3A_AE_EV_COMP_40 = 40, // EV compensate 4.0
CCU_LIB3A_AE_EV_COMP_n01 = 41, // EV compensate -0.1
CCU_LIB3A_AE_EV_COMP_n02 = 42, // EV compensate -0.2
CCU_LIB3A_AE_EV_COMP_n03 = 43, // EV compensate -0.3
CCU_LIB3A_AE_EV_COMP_n04 = 44, // EV compensate -0.4
CCU_LIB3A_AE_EV_COMP_n05 = 45, // EV compensate -0.5
CCU_LIB3A_AE_EV_COMP_n06 = 46, // EV compensate -0.6
CCU_LIB3A_AE_EV_COMP_n07 = 47, // EV compensate -0.7
CCU_LIB3A_AE_EV_COMP_n08 = 48, // EV compensate -0.8
CCU_LIB3A_AE_EV_COMP_n09 = 49, // EV compensate -0.9
CCU_LIB3A_AE_EV_COMP_n10 = 50, // EV compensate -1.0
CCU_LIB3A_AE_EV_COMP_n11 = 51, // EV compensate -1.1
CCU_LIB3A_AE_EV_COMP_n12 = 52, // EV compensate -1.2
CCU_LIB3A_AE_EV_COMP_n13 = 53, // EV compensate -1.3
CCU_LIB3A_AE_EV_COMP_n14 = 54, // EV compensate -1.4
CCU_LIB3A_AE_EV_COMP_n15 = 55, // EV compensate -1.5
CCU_LIB3A_AE_EV_COMP_n16 = 56, // EV compensate -1.6
CCU_LIB3A_AE_EV_COMP_n17 = 57, // EV compensate -1.7
CCU_LIB3A_AE_EV_COMP_n18 = 58, // EV compensate -1.8
CCU_LIB3A_AE_EV_COMP_n19 = 59, // EV compensate -1.9
CCU_LIB3A_AE_EV_COMP_n20 = 60, // EV compensate -2.0
CCU_LIB3A_AE_EV_COMP_n21 = 61, // EV compensate -2.1
CCU_LIB3A_AE_EV_COMP_n22 = 62, // EV compensate -2.2
CCU_LIB3A_AE_EV_COMP_n23 = 63, // EV compensate -2.3
CCU_LIB3A_AE_EV_COMP_n24 = 64, // EV compensate -2.4
CCU_LIB3A_AE_EV_COMP_n25 = 65, // EV compensate -2.5
CCU_LIB3A_AE_EV_COMP_n26 = 66, // EV compensate -2.6
CCU_LIB3A_AE_EV_COMP_n27 = 67, // EV compensate -2.7
CCU_LIB3A_AE_EV_COMP_n28 = 68, // EV compensate -2.8
CCU_LIB3A_AE_EV_COMP_n29 = 69, // EV compensate -2.9
CCU_LIB3A_AE_EV_COMP_n30 = 70, // EV compensate -3.0
CCU_LIB3A_AE_EV_COMP_n31 = 71, // EV compensate -3.1
CCU_LIB3A_AE_EV_COMP_n32 = 72, // EV compensate -3.2
CCU_LIB3A_AE_EV_COMP_n33 = 73, // EV compensate -3.3
CCU_LIB3A_AE_EV_COMP_n34 = 74, // EV compensate -3.4
CCU_LIB3A_AE_EV_COMP_n35 = 75, // EV compensate -3.5
CCU_LIB3A_AE_EV_COMP_n36 = 76, // EV compensate -3.6
CCU_LIB3A_AE_EV_COMP_n37 = 77, // EV compensate -3.7
CCU_LIB3A_AE_EV_COMP_n38 = 78, // EV compensate -3.8
CCU_LIB3A_AE_EV_COMP_n39 = 79, // EV compensate -3.9
CCU_LIB3A_AE_EV_COMP_n40 = 80, // EV compensate -4.0
CCU_LIB3A_AE_EV_COMP_n41 = 81, // EV compensate -4.1
CCU_LIB3A_AE_EV_COMP_n42 = 82, // EV compensate -4.2
CCU_LIB3A_AE_EV_COMP_n43 = 83, // EV compensate -4.3
CCU_LIB3A_AE_EV_COMP_n44 = 84, // EV compensate -4.4
CCU_LIB3A_AE_EV_COMP_n45 = 85, // EV compensate -4.5
CCU_LIB3A_AE_EV_COMP_n46 = 86, // EV compensate -4.6
CCU_LIB3A_AE_EV_COMP_n47 = 87, // EV compensate -4.7
CCU_LIB3A_AE_EV_COMP_n48 = 88, // EV compensate -4.8
CCU_LIB3A_AE_EV_COMP_n49 = 89, // EV compensate -4.9
CCU_LIB3A_AE_EV_COMP_n50 = 90, // EV compensate -5.0
CCU_LIB3A_AE_EV_COMP_n51 = 91, // EV compensate -5.1
CCU_LIB3A_AE_EV_COMP_n52 = 92, // EV compensate -5.2
CCU_LIB3A_AE_EV_COMP_n53 = 93, // EV compensate -5.3
CCU_LIB3A_AE_EV_COMP_n54 = 94, // EV compensate -5.4
CCU_LIB3A_AE_EV_COMP_n55 = 95, // EV compensate -5.5
CCU_LIB3A_AE_EV_COMP_n56 = 96, // EV compensate -5.6
CCU_LIB3A_AE_EV_COMP_n57 = 97, // EV compensate -5.7
CCU_LIB3A_AE_EV_COMP_n58 = 98, // EV compensate -5.8
CCU_LIB3A_AE_EV_COMP_n59 = 99, // EV compensate -5.9
CCU_LIB3A_AE_EV_COMP_n60 = 100, // EV compensate -6.0
CCU_LIB3A_AE_EV_COMP_MAX
}CCU_LIB3A_AE_EVCOMP_T;
// AE metering mode
// 6*4=24bytes
typedef enum // enum for metering
{
CCU_LIB3A_AE_METERING_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AE_METERING_MODE_CENTER_WEIGHT, // CENTER WEIGHTED MODE
CCU_LIB3A_AE_METERING_MODE_SOPT, // SPOT MODE
CCU_LIB3A_AE_METERING_MODE_AVERAGE, // AVERAGE MODE
CCU_LIB3A_AE_METERING_MODE_MULTI, // MULTI MODE
CCU_LIB3A_AE_METERING_MODE_MAX
}CCU_LIB3A_AE_METERING_MODE_T;
// AE set flicker mode
// 6*4 = 24bytes
typedef enum
{
CCU_LIB3A_AE_FLICKER_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AE_FLICKER_MODE_60HZ,
CCU_LIB3A_AE_FLICKER_MODE_50HZ,
CCU_LIB3A_AE_FLICKER_MODE_AUTO, // No support in MT6516
CCU_LIB3A_AE_FLICKER_MODE_OFF, // No support in MT6516
CCU_LIB3A_AE_FLICKER_MODE_MAX
}CCU_LIB3A_AE_FLICKER_MODE_T;
// AE set frame rate mode //10base
typedef enum
{
CCU_LIB3A_AE_FRAMERATE_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AE_FRAMERATE_MODE_DYNAMIC = 0,
CCU_LIB3A_AE_FRAMERATE_MODE_05FPS = 20,
CCU_LIB3A_AE_FRAMERATE_MODE_15FPS = 150,
CCU_LIB3A_AE_FRAMERATE_MODE_30FPS = 300,
CCU_LIB3A_AE_FRAMERATE_MODE_60FPS = 600,
CCU_LIB3A_AE_FRAMERATE_MODE_90FPS = 900,
CCU_LIB3A_AE_FRAMERATE_MODE_120FPS = 1200,
CCU_LIB3A_AE_FRAMERATE_MODE_240FPS = 2400,
CCU_LIB3A_AE_FRAMERATE_MODE_MAX = CCU_LIB3A_AE_FRAMERATE_MODE_240FPS
}CCU_LIB3A_AE_FRAMERATE_MODE_T;
// for flicker detection algorithm used only.
// 4*4 = 16bytes
typedef enum
{
CCU_LIB3A_AE_FLICKER_AUTO_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AE_FLICKER_AUTO_MODE_50HZ,
CCU_LIB3A_AE_FLICKER_AUTO_MODE_60HZ,
CCU_LIB3A_AE_FLICKER_AUTO_MODE_MAX
}CCU_LIB3A_AE_FLICKER_AUTO_MODE_T;
// remove later
typedef enum
{
CCU_LIB3A_AE_STROBE_MODE_UNSUPPORTED = -1,
CCU_LIB3A_AE_STROBE_MODE_AUTO = 0,
CCU_LIB3A_AE_STROBE_MODE_SLOWSYNC = 0, //NOW DO NOT SUPPORT SLOW SYNC, TEMPERALLY THE SAME WITH AUTO
CCU_LIB3A_AE_STROBE_MODE_FORCE_ON = 1,
CCU_LIB3A_AE_STROBE_MODE_FORCE_OFF = 2,
CCU_LIB3A_AE_STROBE_MODE_FORCE_TORCH = 3,
CCU_LIB3A_AE_STROBE_MODE_REDEYE = 4,
CCU_LIB3A_AE_STROBE_MODE_TOTAL_NUM,
CCU_LIB3A_AE_STROBE_MODE_MIN = CCU_LIB3A_AE_STROBE_MODE_AUTO,
CCU_LIB3A_AE_STROBE_MODE_MAX = CCU_LIB3A_AE_STROBE_MODE_FORCE_OFF
}CCU_LIB3A_AE_STROBE_MODE_T;
#endif

@ -1,766 +0,0 @@
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein
* is confidential and proprietary to MediaTek Inc. and/or its licensors.
* Without the prior written permission of MediaTek inc. and/or its licensors,
* any reproduction, modification, use or disclosure of MediaTek Software,
* and information contained herein, in whole or in part, shall be strictly prohibited.
*/
/* MediaTek Inc. (C) 2010. All rights reserved.
*
* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
* STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
* CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* The following software/firmware and/or related documentation ("MediaTek Software")
* have been modified by MediaTek Inc. All revisions are subject to any receiver's
* applicable license agreements with MediaTek Inc.
*/
/********************************************************************************************
* LEGAL DISCLAIMER
*
* (Header of MediaTek Software/Firmware Release or Documentation)
*
* BY OPENING OR USING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") RECEIVED
* FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON AN "AS-IS" BASIS
* ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
* A PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY
* WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
* INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK
* ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION
* OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE LIABILITY WITH
* RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION,
TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE
* FEES OR SERVICE CHARGE PAID BY BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE WITH THE LAWS
* OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF LAWS PRINCIPLES.
************************************************************************************************/
/**
* @file aaa_hal_base.h
* @brief Declarations of 3A Hal Base Class and Top Data Structures
*/
#ifdef MTK_LOG_ENABLE
#undef MTK_LOG_ENABLE
#endif
#define MTK_LOG_ENABLE 1
#include <stdint.h>
#include <sys/time.h>
#include <log/log.h>
#ifndef _AAA_HAL_BASE_H_
#define _AAA_HAL_BASE_H_
typedef intptr_t MINTPTR;
typedef uintptr_t MUINTPTR;
class IBaseCamExif;
namespace NS3A
{
enum E3ACtrl_T
{
E3ACtrl_Begin = 0,
//shading
E3ACtrl_SetShadingOnOff = 0x0001,
E3ACtrl_SetShadingStrength = 0x0002,
E3ACtrl_SetShadingSdblkCfg = 0x0003,
E3ACtrl_SetShadingTSFOnOff = 0x0004,
E3ACtrl_SetShadingDynamic = 0x0005,
E3ACtrl_SetShadingColorTemp = 0x0006,
E3ACtrl_SetShadingByp123 = 0x0007,
E3ACtrl_SetShadingTSFCapByp = 0x0008,
//AWB
E3ACtrl_SetAwbBypCalibration = 0x0100,
//AE
E3ACtrl_SetExposureParam = 0x0200,
E3ACtrl_GetExposureParam = 0x0201,
E3ACtrl_GetAEPLineTable = 0x0202,
E3ACtrl_EnableDisableAE = 0x0203,
E3ACtrl_SetIsAEMultiCapture = 0x0204,
E3ACtrl_GetAECapDelay = 0x0205,
E3ACtrl_GetSensorDelayFrame = 0x0206,
E3ACtrl_SetSensorDirectly = 0x0207,
E3ACtrl_SetAEContinueShot = 0x0208,
E3ACtrl_GetEvCapture = 0x0209,
//ISP
E3ACtrl_GetIspGamma = 0x0300,
//AF
E3ACtrl_PostPDAFtask = 0x0400,
E3ACtrl_QueryAFStatus = 0x0401,
//Flow control set
E3ACtrl_Enable3ASetParams = 0x1000,
E3ACtrl_SetOperMode = 0x1001,
E3ACtrl_KeepOnLastStatus = 0x1002,
//Flow control get
E3ACtrl_GetOperMode = 0x2001,
//Stereo
E3ACtrl_GetStereo3DWarning = 0x8000,
E3ACtrl_GetDAFTBL = 0x8001,
// For engineer collect module info file
ECmd_Set3ACollectInfoFile = 0x9000,
//
E3ACtrl_Num
};
typedef enum
{
ESensorDevId_Main = 0x01,
ESensorDevId_Sub = 0x02,
ESensorDevId_MainSecond = 0x04,
ESensorDevId_Main3D = 0x05,
ESensorDevId_Atv = 0x08,
} ESensorDevId_T;
enum ESensorType_T {
ESensorType_RAW = 0,
ESensorType_YUV = 1
};
/**
* @brief 3A commands
*/
enum ECmd_T {
ECmd_CameraPreviewStart,
ECmd_CameraPreviewEnd,
ECmd_CamcorderPreviewStart,
ECmd_CamcorderPreviewEnd,
ECmd_PrecaptureStart,
ECmd_PrecaptureEnd,
ECmd_CaptureStart,
ECmd_CaptureEnd,
ECmd_RecordingStart,
ECmd_RecordingEnd,
ECmd_Update,
// internal command
ECmd_Init,
ECmd_Uninit,
ECmd_AFUpdate, // sync with AF done
ECmd_AFStart,
ECmd_AFEnd
};
enum EQueryType_T{
EQueryType_Init,
EQueryType_Effect,
EQueryType_AWB,
EQueryType_AF,
EQueryType_Ev,
EQueryType_Sat,
EQueryType_Bright,
EQueryType_Contrast
};
/**
* @brief ISP tuning profile
*/
enum EIspProfile_T
{
// NORMAL
EIspProfile_NormalPreview = 0,
EIspProfile_ZsdPreview_CC,
EIspProfile_ZsdPreview_NCC,
EIspProfile_NormalCapture,
EIspProfile_VideoPreview,
EIspProfile_VideoCapture,
EIspProfile_NormalCapture_CC,
EIspProfile_NormalCapture_16M,
// MF
EIspProfile_MFCapPass1,
EIspProfile_MFCapPass2,
EIspProfile_NUM
};
enum E3ACaptureMode_T
{
ECapMode_P2_Cal = (1<<0),
ECapMode_P2_Set = (1<<1)
};
enum E3APreviewMode_T
{
EPv_Normal = 0,
EPv_Video
};
enum ECaptureType_T
{
ECapType_SingleCapture = 0,
ECapType_MultiCapture
};
struct FrameOutputParam_T
{
MUINT32 u4FRameRate_x10; // 10 base frame rate
MINT32 i4BrightValue_x10; // 10 base brightness value
MINT32 i4ExposureValue_x10; // 10 base exposure value
MINT32 i4LightValue_x10; // 10 base lumince value
MUINT32 u4AEIndex;
MUINT32 u4ShutterSpeed_us; // micro second
MUINT32 u4SensorGain_x1024; // 1024 base
MUINT32 u4ISPGain_x1024; // 1024 base
MUINT32 u4PreviewShutterSpeed_us; // micro secondMUINT32 u4ShutterSpeed_us; // micro second
MUINT32 u4PreviewSensorGain_x1024; // 1024 base
MUINT32 u4PreviewISPGain_x1024; // 1024 base
MUINT32 u4RealISOValue;
MUINT32 u4CapShutterSpeed_us; // micro second
MUINT32 u4CapSensorGain_x1024; // 1024 base
MUINT32 u4CapISPGain_x1024; // 1024 base
MINT16 i2FlareOffset; // 12 bit domain
MINT16 i2FlareGain; // 9 base gain
};
struct Hal3A_HDROutputParam_T
{
MUINT32 u4OutputFrameNum; // Output frame number (2 or 3)
MUINT32 u4FinalGainDiff[2]; // 1x=1024; [0]: Between short exposure and 0EV; [1]: Between 0EV and long exposure
MUINT32 u4TargetTone; //Decide the curve to decide target tone
};
/**
* @brief 3A parameters for capture
*/
struct CaptureParam_T
{
MUINT32 u4ExposureMode; //0: exp. time, 1: exp. line
MUINT32 u4Eposuretime; //!<: Exposure time in us
MUINT32 u4AfeGain; //!<: sensor gain
MUINT32 u4IspGain; //!<: raw gain
MUINT32 u4RealISO; //!<: Real ISO speed
MUINT32 u4FlareOffset;
MUINT32 u4FlareGain; // 512 is 1x
MINT32 i4LightValue_x10; // 10 base LV value
MUINT32 u4YuvShading; //0: off, 1,on
MUINT32 u4YuvGamma; //0: off, 1,on
MUINT32 u4YuvAE; //0: off, 1,on
MUINT32 u4YuvShutter;
MUINT32 u4YuvGain;
MUINT32 u4YuvShutterRange;
};
struct FeatureParam_T {
MBOOL bExposureLockSupported;
MBOOL bAutoWhiteBalanceLockSupported;
MUINT32 u4MaxFocusAreaNum;
MINT32 i4MaxLensPos;
MINT32 i4MinLensPos;
MINT32 i4AFBestPos;
MINT64 i8BSSVlu;
MUINT32 u4MaxMeterAreaNum;
MUINT32 u4FocusLength_100x;
};
struct CameraArea_T {
MINT32 i4Left;
MINT32 i4Top;
MINT32 i4Right;
MINT32 i4Bottom;
MINT32 i4Weight;
};
struct ExpSettingParam_T {
MINT32 u4AOEMode;
MUINT32 u4MaxSensorAnalogGain; // 1x=1024
MUINT32 u4MaxAEExpTimeInUS; // unit: us
MUINT32 u4MinAEExpTimeInUS; // unit: us
MUINT32 u4ShutterLineTime; // unit: 1/1000 us
MUINT32 u4MaxAESensorGain; // 1x=1024
MUINT32 u4MinAESensorGain; // 1x=1024
MUINT32 u4ExpTimeInUS0EV; // unit: us
MUINT32 u4SensorGain0EV; // 1x=1024
MUINT8 u1FlareOffset0EV;
MINT32 i4GainBase0EV; // AOE application for LE calculation
MINT32 i4LE_LowAvg; // AOE application for LE calculation, def: 0 ~ 39 avg
MINT32 i4SEDeltaEVx100; // AOE application for SE calculation
MUINT32 u4Histogram[128];
};
#define MAX_FOCUS_AREAS 9
struct CameraFocusArea_T {
CameraArea_T rAreas[MAX_FOCUS_AREAS];
MUINT32 u4Count;
};
#define MAX_METERING_AREAS 9
struct CameraMeteringArea_T {
CameraArea_T rAreas[MAX_METERING_AREAS];
MUINT32 u4Count;
};
// 3A ASD info
struct ASDInfo_T {
MINT32 i4AELv_x10; // AE Lv
MBOOL bAEBacklit; // AE backlit condition
MBOOL bAEStable; // AE stable
MINT16 i2AEFaceDiffIndex; // Face AE difference index with central weighting
MINT32 i4AWBRgain_X128; // AWB Rgain
MINT32 i4AWBBgain_X128; // AWB Bgain
MINT32 i4AWBRgain_D65_X128; // AWB Rgain (D65; golden sample)
MINT32 i4AWBBgain_D65_X128; // AWB Bgain (D65; golden sample)
MINT32 i4AWBRgain_CWF_X128; // AWB Rgain (CWF; golden sample)
MINT32 i4AWBBgain_CWF_X128; // AWB Bgain (CWF; golden sample)
MBOOL bAWBStable; // AWB stable
MINT32 i4AFPos; // AF position
MVOID *pAFTable; // Pointer to AF table
MINT32 i4AFTableOffset; // AF table offset
MINT32 i4AFTableMacroIdx; // AF table macro index
MINT32 i4AFTableIdxNum; // AF table total index number
MBOOL bAFStable; // AF stable
};
// LCE Info
struct LCEInfo_T {
MINT32 i4NormalAEidx; // gain >= 4x AE Pline table index at 30fps
MINT32 i4LowlightAEidx; // gain max AE Pline table index at 30fps
MINT32 i4AEidxCur; // AE current frame Pline table index
MINT32 i4AEidxNext; // AE next frame Pline table index
};
typedef enum
{
E_AE_PRECAPTURE_IDLE,
E_AE_PRECAPTURE_START
} EAePreCapture_T;
/**
* @brief 3A parameters
*/
// 3A parameters
struct Param_T {
// DEFAULT DEFINITION CATEGORY ( ordered by SDK )
MINT32 i4MinFps;
MINT32 i4MaxFps;
MUINT32 u4AfMode;
MUINT32 u4AeMode;
MUINT32 u4AwbMode;
MUINT32 u4EffectMode;
MUINT32 u4AntiBandingMode;
MUINT32 u4SceneMode;
MUINT32 u4StrobeMode;
MINT32 i4ExpIndex;
MFLOAT fExpCompStep;
MBOOL bIsAELock;
MBOOL bIsAWBLock;
MINT32 i4FullScanStep;
MINT32 i4MFPos;
CameraFocusArea_T rFocusAreas;
CameraMeteringArea_T rMeteringAreas;
// MTK DEFINITION CATEGORY
MUINT32 u4IsoSpeedMode;
MUINT32 u4AfLampMode;
//
MUINT32 u4BrightnessMode;
MUINT32 u4HueMode;
MUINT32 u4SaturationMode;
MUINT32 u4EdgeMode;
MUINT32 u4ContrastMode;
MINT32 i4RotateDegree;
MUINT32 u4AeMeterMode;
// NEWLY-ADDED CATEGORY
MUINT32 u4CamMode; //Photo, Video, ZSD, ENG mode
MUINT32 u4ShotMode;
//flash for engineer mode
MINT32 i4PreFlashDuty;
MINT32 i4PreFlashStep;
MINT32 i4MainFlashDuty;
MINT32 i4MainFlashStep;
MBOOL bIsSupportAndroidService;
MBOOL bVideoStabilization;
Param_T()
: i4MinFps(LIB3A_AE_FRAMERATE_MODE_05FPS * 100)
, i4MaxFps(LIB3A_AE_FRAMERATE_MODE_30FPS * 100)
, u4AfMode(5)
, u4AeMode(0)
, u4AwbMode(1)
, u4EffectMode(0)
, u4AntiBandingMode(0)
, u4SceneMode(0)
, u4StrobeMode(0)
, i4ExpIndex(0)
, fExpCompStep(0)
, bIsAELock(MFALSE)
, bIsAWBLock(MFALSE)
, i4FullScanStep(1)
, i4MFPos(0)
, rFocusAreas()
, rMeteringAreas()
, u4IsoSpeedMode(0)
, u4AfLampMode(0)
, u4BrightnessMode(0)
, u4HueMode(0)
, u4SaturationMode(0)
, u4EdgeMode(0)
, u4ContrastMode(0)
, i4RotateDegree(0)
, u4AeMeterMode (0)
, u4CamMode(0)
, u4ShotMode(0)
, i4PreFlashDuty(-1)
, i4PreFlashStep(-1)
, i4MainFlashDuty(-1)
, i4MainFlashStep(-1)
, bIsSupportAndroidService(MTRUE)
, bVideoStabilization(0)
{}
};
/*
#if 0
typedef enum
{
E_AF_INACTIVE,
E_AF_PASSIVE_SCAN,
E_AF_PASSIVE_FOCUSED,
E_AF_ACTIVE_SCAN,
E_AF_FOCUSED_LOCKED,
E_AF_NOT_FOCUSED_LOCKED,
E_AF_PASSIVE_UNFOCUSED,
} EAfState_T;
typedef enum
{
E_AE_INACTIVE,
E_AE_SEARCHING,
E_AE_CONVERGED,
E_AE_LOCKED,
E_AE_FLASH_REQUIRED,
E_AE_PRECAPTURE
} EAeState_T;
typedef enum
{
E_AWB_INACTIVE,
E_AWB_SEARCHING,
E_AWB_CONVERGED,
E_AWB_LOCKED
} EAwbState_T;
#endif
// max frames to queue DAF information
#define DAF_TBL_QLEN 32
#define DIST_TBL_QLEN 16
typedef struct
{
MUINT32 frm_mun;
MUINT8 is_learning;
MUINT8 is_querying;
MUINT8 af_valid;
MUINT16 af_dac_index;
MUINT16 af_confidence;
MUINT16 af_win_start_x;
MUINT16 af_win_start_y;
MUINT16 af_win_end_x;
MUINT16 af_win_end_y;
MUINT16 daf_dac_index;
MUINT16 daf_confidence;
MUINT16 daf_distance;
} DAF_VEC_STRUCT;
typedef struct
{
MUINT8 is_daf_run;
MUINT32 is_query_happen;
MUINT32 curr_p1_frm_num;
MUINT32 curr_p2_frm_num;
MUINT16 af_dac_min;
MUINT16 af_dac_max;
MUINT16 af_dac_start;
MUINT32 dac[DIST_TBL_QLEN];
MUINT32 dist[DIST_TBL_QLEN];
DAF_VEC_STRUCT daf_vec[DAF_TBL_QLEN];
}DAF_TBL_STRUCT;
*/
struct Result_T
{
MINT32 i4FrmId;
MINT32 i4PrecaptureId; // android.control.aePrecaptureId
//EAfState_T eAfState;
//EAeState_T eAeState;
//EAwbState_T eAwbState;
};
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class I3ACallBack {
public:
virtual ~I3ACallBack() {}
public:
virtual void doNotifyCb (
int32_t _msgType,
int32_t _ext1,
int32_t _ext2,
int32_t _ext3
) = 0;
virtual void doDataCb (
int32_t _msgType,
void* _data,
uint32_t _size
) = 0;
public:
enum ECallBack_T
{
eID_NOTIFY_AF_FOCUSED,
eID_NOTIFY_AF_MOVING,
eID_DATA_AF_FOCUSED,
};
};
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/**
* @brief 3A Hal Base Class
*/
class Hal3ABase {
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
protected: // Ctor/Dtor.
Hal3ABase() {}
virtual ~Hal3ABase() {}
private: // disable copy constructor and copy assignment operator
Hal3ABase(const Hal3ABase&);
Hal3ABase& operator=(const Hal3ABase&);
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Interfaces.
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public:
//
/**
* @brief Create instance of Hal3ABase
* @param [in] i4SensorDevId sensor device; please refer to halSensorDev_e in sensor_hal.h
*/
static Hal3ABase* createInstance(MINT32 const i4SensorDevId);
/**
* @brief destroy instance of Hal3ABase
*/
virtual MVOID destroyInstance() {}
/**
* @brief send commands to 3A hal
* @param [in] eCmd 3A commands; please refer to ECmd_T
*/
virtual MBOOL sendCommand(ECmd_T const /*eCmd*/, MINTPTR const i4Arg = 0) {(void)i4Arg; return MTRUE;}
/**
* @brief get 3A error code
*/
virtual MINT32 getErrorCode() const {return 0;}
/**
* @brief get 3A parameters
* @param [out] rParam 3A parameter struct; please refer to Param_T
*/
virtual MBOOL getParams(Param_T &/*rParam*/) const {return MTRUE;}
/**
* @brief set 3A parameters
* @param [in] rNewParam 3A parameter struct; please refer to Param_T
*/
virtual MBOOL setParams(Param_T const &/*rNewParam*/) {return MTRUE;}
/**
* @brief get 3A feature parameters
* @param [out] rFeatureParam feature parameter struct; please refer to FeatureParam_T
*/
virtual MBOOL getSupportedParams(FeatureParam_T &/*rFeatureParam*/) {return MTRUE;}
/**
* @brief to return whether ready to capture or not
*/
virtual MBOOL isReadyToCapture() const {return MTRUE;}
/**
* @brief execute auto focus process
*/
virtual MBOOL autoFocus() {return MTRUE;}
/**
* @brief cancel auto focus process
*/
virtual MBOOL cancelAutoFocus() {return MTRUE;}
/**
* @brief set zoom parameters of auto focus
*/
virtual MBOOL setZoom(MUINT32 /*u4ZoomRatio_x100*/, MUINT32 /*u4XOffset*/, MUINT32 /*u4YOffset*/, MUINT32 /*u4Width*/, MUINT32 /*u4Height*/) {return MTRUE;}
/**
* @brief set 3A photo EXIF information
* @param [in] pIBaseCamExif pointer of Exif base object; please refer to IBaseCamExif in IBaseCamExif.h
*/
virtual MBOOL set3AEXIFInfo(IBaseCamExif */*pIBaseCamExif*/) const {return MTRUE;}
/**
* @brief set debug information of MTK photo debug parsor
* @param [in] pIBaseCamExif pointer of Exif base object; please refer to IBaseCamExif in IBaseCamExif.h
*/
virtual MBOOL setDebugInfo(IBaseCamExif */*pIBaseCamExif*/) const {return MTRUE;}
/**
* @brief provide number of delay frames required by 3A mechanism
* @param [in] eQueryType query type; please refer to EQueryType_T
*/
virtual MINT32 getDelayFrame(EQueryType_T const /*eQueryType*/) const {return 0;}
/**
* @brief set callbacks of AF Manager
*/
virtual MBOOL setCallbacks(I3ACallBack* /*cb*/) {return MTRUE;}
/**
* @brief set ISP tuning profile
* @param [in] IspProfile ISP profile; please refer to EIspProfile
*/
virtual MBOOL setIspProfile(EIspProfile_T const /*IspProfile*/) {return MTRUE;}
/**
* @brief get capture AE parameters information
* @param [in] index capture index information, the value is 0~2
* @param [in] i4EVidx increase or decrease capture AE parameters information
* @param [out] a_rCaptureInfo AE information structure; please refer to Ae_param.h
*/
virtual MINT32 getCaptureParams(MINT8 /*index*/, MINT32 /*i4EVidx*/, CaptureParam_T &/*a_rCaptureInfo*/) {return 0;}
/**
* @brief update capture AE parameters
* @param [in] a_rCaptureInfo capture AE parameters information
*/
virtual MINT32 updateCaptureParams(CaptureParam_T &/*a_rCaptureInfo*/) {return 0;}
virtual MINT32 getExposureInfo(ExpSettingParam_T &/*strHDRInputSetting*/) {return 0;}
/**
* @brief get High dynamic range capture information
* @param [out] a_strHDROutputInfo capture information;
*/
virtual MINT32 getHDRCapInfo(Hal3A_HDROutputParam_T &/*a_strHDROutputInfo*/) {return 0;}
/**
* @brief set AE face detection area and weight information
* @param [in] a_sFaces face detection information; please refer to Faces.h
*/
virtual MVOID setFDEnable(MBOOL /*bEnable*/) {}
virtual MBOOL setFDInfo(MVOID* /*a_sFaces*/) {return MTRUE;}
virtual MBOOL setOTInfo(MVOID* /*a_sOT*/) {return MTRUE;}
/**
* @brief get real time AE parameters information
* @param [out] a_strFrameOutputInfo previiew AE information;
*/
virtual MINT32 getRTParams(FrameOutputParam_T &/*a_strFrameOutputInfo*/) {return 0;}
/**
* @brief to return whether need to fire flash
*/
virtual MINT32 isNeedFiringFlash() {return 0;}
/**
* @brief get ASD info
* @param [out] a_rASDInfo ASD info;
*/
virtual MBOOL getASDInfo(ASDInfo_T &/*a_rASDInfo*/) {return MTRUE;}
/**
* @brief get LCE info from AE
* @param [out] a_rLCEInfo LCE info;
*/
virtual MBOOL getLCEInfo(LCEInfo_T &/*a_rLCEInfo*/) {return MTRUE;}
/**
* @brief End continuous shot, EX: turn off flash device
*/
virtual MVOID endContinuousShotJobs() {}
/**
* @brief enable AE limiter control
*/
virtual MINT32 enableAELimiterControl(MBOOL /*bIsAELimiter*/) {return 0;}
virtual MINT32 getFlashFrameNumBeforeCapFrame() {return 1;}
virtual MVOID onFireCapFlashIfNeeded() {}
virtual MVOID setSensorMode(MINT32 /*i4SensorMode*/) {}
virtual MINT32 send3ACtrl(E3ACtrl_T /*e3ACtrl*/, MINTPTR /*iArg1*/, MINTPTR /*iArg2*/) {return 0;}
virtual MBOOL setAELock(MBOOL /*bIsAELock*/){return MTRUE;};
virtual MBOOL setAWBLock(MBOOL /*bIsAELock*/){return MTRUE;};
virtual MINT32 enableFlashQuickCalibration(MINT32 /*bEn*/) {return 0;}
virtual MINT32 getFlashQuickCalibrationResult() {return 0;}
#if 0
virtual MBOOL getFocusData (vector<T.B.D> &rData) const = 0;
// FD
// EXIF (T.B.D)
#endif
};
class aaaTimer {
public:
inline MINT32 getUsTime()
{
struct timeval tv;
gettimeofday(&tv, NULL);
return tv.tv_sec * 1000000 + tv.tv_usec;
}
aaaTimer(const char* info, MINT32 sensorDevId, MBOOL enable)
: mInfo(info), mIdx(sensorDevId), mEnable(enable)
{
if (mEnable) mStartTime = getUsTime();
}
MVOID start(const char* info, MINT32 sensorDevId, MBOOL enable) //used by global/static variables
{
mInfo = info;
mIdx = sensorDevId;
mEnable = enable;
if (mEnable) mStartTime = getUsTime();
}
MVOID printTime()
{
if (!mEnable) return;
MINT32 endTime = getUsTime();
ALOGD("[Function: %s, SensorDevId: %d] =====> time(ms): %f\n", mInfo, mIdx, ((double)(endTime - mStartTime)) / 1000);
}
~aaaTimer()
{
}
protected:
const char* mInfo;
MINT32 mStartTime;
MINT32 mIdx;
MBOOL mEnable;
};
}; // namespace NS3A
#endif
Loading…
Cancel
Save