1.1 常见编译报错:
sensorlist.cpp:vtable for NSFeature::RAWSensorInfo<8710u>: error: undefined reference to
'NSFeature::RAWSensorInfo<8710u>::impGetDefaultData(CAMERA_DATA_TYPE_ENUM, void*, unsigned int) const'
(1)对比 sensorlist.cpp 和 kd_sensorlist.h,顺序可能没有对应上;
(2)项目目录 Hal 层缺少相关文件,需要从公共目录拷贝过来,比如配置了两颗摄像头,但项目目录 hal 层却只有其中一颗摄像头的效果文件,则会报错。
如果有 Imgsensor/和 sendepfeature/两个目录,则两个目录下的摄像头文件必须都有。
1.2 闪光灯一直打闪
修改 hal 层 camera_AE_PLineTable_s5k5e2yafmipiraw.h 文件中所有的 strAETable 结构体第三个成员值:
static strAETable g_AE_PreviewAutoTable =
{
AETABLE_RPEVIEW_AUTO, //eAETableID 134, //u4TotalIndex
0, // 20, //i4StrobeTrigerBV 这个值越小越不容易打闪(可为负数,最小已试过-30),值越大越容易打闪
120, //i4MaxBV -13, //i4MinBV
90, //i4EffectiveMaxBV -10, //i4EffectiveMinBV
LIB3A_AE_ISO_SPEED_AUTO, //ISO SPEED sPreviewPLineTable_60Hz, sPreviewPLineTable_50Hz,
NULL,
};
1.3 曝光表:
alps\vendor\mediatek\proprietary\custom\mt6580\hal\camera_3a\ae_tuning_custom_main.cpp
修改对应 EV=+-3,+-2,+-1,0 所对应的值(手机相机设置里面一般就这 7 个等级),改大或改小,可以使曝光亮度增大或减小。
static MUINT32 g_strEVValueArray[25] =
{
1024, // EV 0 1160, // EV 0.3 1261, // EV 0.5 1370, // EV 0.7
2100, // 1700, //1552, // EV 1.0
1758, // EV 1.3
1911, // EV 1.5
2077, // EV 1.7
3000, //2353, // EV 2.0
2896, // EV 2.5
5421, //3566, // EV 3.0
4390, // EV 3.5 5405, // EV 4.0 904, // EV -0.3 832, // EV -0.5 765, // EV -0.7
620, //748, // EV -1.0
596, // EV -1.3
549, // EV -1.5
505, // EV -1.7
430, //459, // EV -2.0
362, // EV -2.5
230,//218, // EV -3.0
239, // EV -3.5
194, // EV -4.0
};
vendor\mediatek\proprietary\custom\mt6580\hal\sendepfeature\gc5025mipi_raw\config.ftbl.gc5025mipi_raw.h
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_EXPOSURE_COMPENSATION),
SCENE_AS_DEFAULT_SCENE( ITEM_AS_DEFAULT_("0"), ITEM_AS_USER_LIST_(
"-3", //min exposure compensation index
"3", //max exposure compensation index
"1.0", //exposure compensation step; EV = step x index
)
),
//......................................................................
#if 1 // SCENE HDR SCENE_AS_(MtkCameraParameters::SCENE_MODE_HDR, ITEM_AS_DEFAULT_("0"),
ITEM_AS_USER_LIST_(
"0", //min exposure compensation index
"0", //max exposure compensation index
"1.0", //exposure compensation step; EV = step x index
)
)
#endif
//......................................................................
)
vendor\mediatek\proprietary\custom\mt6580\hal\sendepfeature\gc5025mipi_raw\config.ftbl.gc5025mipi_raw.h
FTABLE_CONFIG_AS_TYPE_OF_USER(
KEY_AS_(MtkCameraParameters::KEY_EXPOSURE_COMPENSATION),
SCENE_AS_DEFAULT_SCENE( ITEM_AS_DEFAULT_("0"), ITEM_AS_USER_LIST_(
"-3", //min exposure compensation index
"3", //max exposure compensation index
"1.0", //exposure compensation step; EV = step x index
)
),
//......................................................................
#if 1 // SCENE HDR SCENE_AS_(MtkCameraParameters::SCENE_MODE_HDR, ITEM_AS_DEFAULT_("0"),
ITEM_AS_USER_LIST_(
"0", //min exposure compensation index
"0", //max exposure compensation index
"1.0", //exposure compensation step; EV = step x index
)
)
#endif
//......................................................................
)
1.4 对焦文件修改对远焦和对近焦问题
const NVRAM_LENS_PARA_STRUCT FM50AF_LENS_PARA_DEFAULT_VALUE =
{
//Version
NVRAM_CAMERA_LENS_FILE_VERSION,
//Focus Range NVRAM {0, 1023},
//AF NVRAM
{
------------------------------// sAF_Coef -----------------------------------------
{
{
80, // i4Offset,原先为 200,值太大,电流太大,马达被推出来太多,适用于对远焦。改成 80 后,
对近焦效果会好些。
13, // i4NormalNum 13, // i4MacroNum 0, // i4InfIdxOffset
0, // i4MacroIdxOffset
{
0, 20, 45, 70, 95, 120, 150, 180, 220, 260, 305, 355, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
}
},
15, // i4THRES_MAIN 10, // i4THRES_SUB 1, // i4AFC_FAIL_CNT 0, // i4FAIL_POS
4, // i4INIT_WAIT
{500, 500, 500, 500, 500}, // i4FRAME_WAIT
0, // i4DONE_WAIT
},
// ------------------------------ sVAFC_Coef -----------------------------------------
{
{
50, // i4Offset,原先为 210,值太大,电流太大,马达被推出来太多,适用于对远焦。改成 80
后,对近焦效果会好些。
21, // i4NormalNum 21, // i4MacroNum 0, // i4InfIdxOffset
0, // i4MacroIdxOffset
{
15, 25, 35, 45, 55, 65, 75, 85, 100, 115, 135, 155, 180, 205, 235, 265, 305, 355, 405, 455, 505, 0, 0, 0, 0, 0, 0, 0, 0, 0,
}
},