MTK Android Driver :camera

xiaoxiao2021-02-28  158

7.camera 7.1 相关代码位置: mediatek\config\XXXX(红色字为具体的项目名) 文件:ProjectConfig.mk CUSTOM_KERNEL_IMGSENSOR = …… gc2235_raw CUSTOM_KERNEL_MAIN_IMGSENSOR = …… gc2235_raw CUSTOM_HAL_IMGSENSOR = …… gc2235_raw CUSTOM_HAL_MAIN_IMGSENSOR = …… gc2235_raw kernel: \mediatek\custom\common\kernel\imgsensor\gc2235_raw mediatek\custom\common\kernel\imgsensor\src 文件:kd_sensorlist.h 添加内容: UINT32 GC2235SensorInit(PSENSOR_FUNCTION_STRUCT *pfFunc); ACDK_KD_SENSOR_INIT_FUNCTION_STRUCT kdSensorList[MAX_NUM_OF_SUPPORT_SENSOR+1] = { #if defined(GC2235_RAW)     {GC2235_SENSOR_ID, SENSOR_DRVNAME_GC2235_RAW, GC2235SensorInit}, #endif }; mediatek\custom\common\kernel\imgsensor\inc 文件:kd_imgsensor.h 添加内容: #define GC2235_SENSOR_ID                 0x2235 #define SENSOR_DRVNAME_GC2235_RAW    "gc2235" hal \mediatek\custom\common\hal\imgsensor\gc2235_raw mediatek\custom\common\hal\imgsensor\src 文件:sensorlist.cpp 添加内容: MSDK_SENSOR_INIT_FUNCTION_STRUCT SensorList[] = { ………… #if defined(GC2235_RAW) RAW_INFO(GC2235_SENSOR_ID, SENSOR_DRVNAME_GC2235_RAW, NULL), #endif ………… }; 注意:在 kd_SensorList.h 和 SensorList.cpp 里面添加驱动的时候要注意,Sensor 添加的位置要一样。否则驱动会跑乱,轻则 ISP 参数不对,重则 Sensor 无法启动。 7.2 拍照图片尺寸设置: ..\mediatek\custom\\hal\camera\camera\cfg_ftbl_$prj$_raw_main.h //Capture Size CONFIG_FEATURE(FID_CAP_SIZE,     BY_DEFAULT(CAPTURE_SIZE_1600_1200),     /*BY_DEFAULT(CAPTURE_SIZE_2560_1920),  modify*/     CAPTURE_SIZE_640_480,     CAPTURE_SIZE_1280_960, CAPTURE_SIZE_1600_1200, ) 7.3 Camera物理角度旋转 90度: \alps\mediatek\custom\$prj$\hal\imgsensor\src\cfg_setting_imgsensor.cpp     static SensorOrientation_T const inst = {         u4Degree_0  : 180,//90,   //  main sensor in degree (0, 90, 180, 270)         u4Degree_1  : 0,//90,    //  sub  sensor in degree (0, 90, 180, 270) 180度: Sensor FAE提供修改方法。 7.4 Camera 相同sensor id兼容方式(前后sensor id 一致): //配置区分: CUSTOM_KERNEL_IMGSENSOR = gc0308_yuv # gc0308_sub_yuv CUSTOM_KERNEL_MAIN_IMGSENSOR = gc0308_yuv # gc0308_sub_yuv CUSTOM_HAL_IMGSENSOR = gc0308_yuv # gc0308_sub_yuv CUSTOM_HAL_MAIN_IMGSENSOR = gc0308_yuv # gc0308_sub_yuv //kernel:函数名也要区分 \alps\mediatek\custom\common\kernel\imgsensor\gc0308_sub_yuv \alps\mediatek\custom\common\kernel\imgsensor\gc0308_yuv //hal: 函数名也要区分 \alps\mediatek\custom\common\hal\imgsensor\gc0308_sub_yuv \alps\mediatek\custom\common\hal\imgsensor\gc0308_yuv //kdSensorList 和 SensorList 里面添加驱动也要区分,sensor id不要区分,写成一致,根据前后摄像头开关代码区分。 \alps\mediatek\custom\common\kernel\imgsensor\inc \kd_imgsensor.h #define GC0328_SENSOR_ID       0x009D #define GC0328_SUB_SENSOR_ID   0x9D9D #define SENSOR_DRVNAME_GC2235_RAW     "gc2235raw" //ben modify #define SENSOR_DRVNAME_GC2235_FRONT_RAW     "gc2235frontraw" //ben modify \alps\mediatek\custom\common\kernel\imgsensor\src\kd_sensorlist.h UINT32 GC2235_FRONTSensorInit(PSENSOR_FUNCTION_STRUCT *pfFunc);//cbk add #if defined(GC2235_FRONT_RAW) //ben add     {GC2235_FRONT_SENSOR_ID,SENSOR_DRVNAME_GC2235_FRONT_RAW,GC2235_FRONTSensorInit}, #endif mediatek\custom\common\hal\imgsensor\src\sensorlist.cpp MSDK_SENSOR_INIT_FUNCTION_STRUCT SensorList[] = { #if defined(GC2235_FRONT_RAW) //cbk add     RAW_INFO(GC2235_FRONT_SENSOR_ID, SENSOR_DRVNAME_GC2235_FRONT_RAW, NULL), #endif }; \alps\mediatek\custom\common\kernel\imgsensor\gc0328frontyuv_Sensor.c GC0328_FRONTGetSensorID(){ if (sensor_id == GC0328_SENSOR_ID) { sensor_id = GC0328_FRONT_SENSOR_ID; //---lcz break; } if(sensor_id != GC0328_FRONT_SENSOR_ID) //---lcz {         return ERROR_SENSOR_CONNECT_FAIL; } } GC0328_FRONTOpen (){ if (sensor_id == GC0328_SENSOR_ID) { sensor_id = GC0328_FRONT_SENSOR_ID; //---lcz break; } if(sensor_id != GC0328_FRONT_SENSOR_ID) {         return ERROR_SENSOR_CONNECT_FAIL; } }
转载请注明原文地址: https://www.6miu.com/read-31317.html

最新回复(0)