⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera_para.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#elif (defined(MT6226)||defined(MT6226M)||defined(MT6227))
	kal_uint16	LightSource[5][5];	/* {color_temperature, Rgain, GRgain, Bgain, GBgain} */	
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
	kal_uint16	LightSource[6][5];	/* {color_temperature, Rgain, GRgain, Bgain, GBgain} */	
#endif	
	kal_uint16	AWB_rgain_max;
	kal_uint16	AWB_ggain_max;
	kal_uint16	AWB_bgain_max;
}awb_para_struct;

#if (!defined(MT6219))
typedef struct
{
	kal_uint32		shading_cap[11];
	kal_uint32		autodefect_pre_low[2];
	kal_uint32		autodefect_cap_nor[2];
	kal_uint32		autodefect_cap_low[2];
	kal_uint32		shading_spare_1[11];
	kal_uint32		shading_spare_2[11];
}isp_comp_struct;

#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
#define Shading_Reg1_ID			125
#define AutoDefect_Reg1_ID		107
#elif(defined(MT6228))
#define Shading_Reg1_ID			117
#define AutoDefect_Reg1_ID		99
#elif (defined(MT6229)||defined(MT6230))
#define Shading_Reg1_ID			133
#define AutoDefect_Reg1_ID		115
#endif

#endif

typedef struct
{
	isp_para_struct				ISP;
	isp_predefine_gamma_struct	PREDGAMMA;
#if (!defined(MT6219))
	isp_comp_struct		COMP;//shading & auto defect compensation
#endif	
	ae_para_struct					AE;
	awb_para_struct				AWB;
	sensor_data_struct			SENSOR;
}nvram_camera_para_struct;

//-----------------------Defect table interface-------------------------	
#define	MAX_DEFECT_NUM			(256)
#define	MAX_PV_DEFECT_NUM		(240)
#define	MAX_DEFECT_INFO_NUM	(MAX_DEFECT_NUM+MAX_PV_DEFECT_NUM)
typedef struct
{
	kal_uint32	defect[MAX_DEFECT_INFO_NUM];		
}nvram_camera_defect_struct;

// lens parameter structure
typedef struct {
	kal_uint8		af_table_num;	
	kal_uint16		af_home_idx;
	kal_uint16		af_macro_idx;		
	kal_uint16		af_infinite_idx;		
	kal_uint16		af_hyper_pos;		
	kal_uint16		af_me_home_pos;		// For Stepping Motor Use	
	kal_uint16		af_me_macro_pos;		// For Stepping Motor Use	
	kal_uint16		af_calibration_offset;
} lens_info_struct;

typedef struct {
	kal_uint32	pos;	
	kal_uint32	distance;
} af_table_struct;

typedef struct
{
   lens_info_struct	INFO;
	af_table_struct	AF[AF_NO];	
}nvram_camera_lens_struct;

enum
{
	CAMERA_PARA_INIT_MODE=0,
	CAMERA_PARA_PREVIEW_MODE,
	CAMERA_PARA_CAPTURE_MODE,
	CAMERA_PARA_NIGHT_MODE,
	CAMERA_PARA_VIDEO_MODE,
	CAMERA_PARA_AUTO_LOWLIGHT_MODE,
	CAMERA_PARA_VIDEO_AUTO_LOWLIGHT_MODE,
	CAMERA_PARA_AF_NORMAL_MODE,
	CAMERA_PARA_AF_LOWLIGHT_MODE
};

typedef enum
{
	/* must to keep w/o compiler option for meta API */
	CAMERA_COMP_PREVIEW_NORMAL_SET=0,
	CAMERA_COMP_PREVIEW_LOWLIGHT_SET,
	CAMERA_COMP_CAPTURE_NORMAL_SET,	
	CAMERA_COMP_CAPTURE_LOWLIGHT_SET,
	CAMERA_COMP_END
	/* new mode should insert before CAMERA_COMP_END */
} camera_comp_set_num;

typedef enum
{
	/* must to keep w/o compiler option for meta API */
	CAMERA_AUTO_DEFECT_LEVEL_0=0,
	CAMERA_AUTO_DEFECT_LEVEL_1,
	CAMERA_AUTO_DEFECT_LEVEL_2,	
	CAMERA_AUTO_DEFECT_LEVEL_3,
	CAMERA_AUTO_DEFECT_END
	/* new mode should insert before CAMERA_COMP_END */
} camera_auto_defect_set_num;

typedef struct
{
	kal_uint8		band;
	kal_bool		videomode;
	kal_uint8	dscmode;
}ae_lut_info_struct;

typedef struct
{
	kal_bool	autodsc;
	kal_bool	portrait;
	kal_bool	landscape;
	kal_bool	sport;
	kal_bool flower;
	kal_bool	nightscene;
	kal_bool	tvmode;
	kal_bool	avmode;
	kal_bool	isomode;
}dsc_mode_info_struct;

typedef struct
{
	kal_bool	flashlight;
	kal_bool	autofocus;
}dsc_comp_info_struct;

typedef struct
{
	kal_bool	autoflash;
	kal_bool	forceon;
	kal_bool	forceoff;
	kal_bool	antiredeye;
}flash_mode_info_struct;

typedef struct
{
	kal_bool	automode;
	kal_bool	macro;
	kal_bool	infinite;
	kal_bool	manual;
}af_mode_info_struct;

typedef struct
{
	dsc_mode_info_struct		dscmode;
	dsc_comp_info_struct		dsccomp;
	flash_mode_info_struct	flashlight;
	af_mode_info_struct		af;
}dsc_info_struct;

typedef struct
{
	kal_uint8	lutsize;
	kal_uint16	step;		//Ev_step*1000, ex:0.1 -> 100
	kal_uint16	minEv;	//Ev*1000
	kal_uint16	maxEv;	//Ev*1000
	kal_uint8	iris;		//No. of Iris
	kal_uint8	sensor_basegain;	// Sensor base gain, bypass capture compensate when != 0x40 
}ae_info_struct;

typedef struct
{
	kal_bool		strobe_pol;
	kal_uint8	lutidx;
	kal_uint16	duty;
	kal_uint16	offset;
	kal_uint16	shutter;
	kal_uint16	min_shutter;
	kal_uint16	max_shutter;
	kal_uint16	fwb_rgain;
	kal_uint16	fwb_ggain;
	kal_uint16	fwb_bgain;
	kal_uint16	sensorgain;
	kal_uint8	ispgain;
}flash_info_struct;

typedef struct
{
	ae_info_struct			ae;
	flash_info_struct		autoflash;
}device_info_struct;

// lens id definition
typedef enum _LENS_TYPE {
	VCM_AF_LENS=0,
	PIEZO_AF_LENS,
	STEP_MOTOR_AF_LENS
} LENS_TYPE;
#define LENS_VCM_LEBRO_ID			{ 201, VCM_AF_LENS	}
#define LENS_PIEZO_LITEON_ID		{ 202, PIEZO_AF_LENS	}

// lens af driver status
enum LENS_AF_STATUS
{
	AF_STATUS_READY,				/* AF Ready */
	AF_STATUS_OPERATING,			/* AF is operating/Busy */	
	AF_STATUS_FIXED				/* Low battary, AF Fixed */
};
// sensor id definition
#define OV7660_OMNIVISION			{ 101, CMOS_SENSOR }
#define OV9650_OMNIVISION			{ 102, CMOS_SENSOR }
#define MT9MX11_MICRON				{ 103, CMOS_SENSOR }
#define S5K3AAEA_SAMSUNG			{ 104, CMOS_SENSOR }
#define PO3030K_PIXELPLUS			{ 105, CMOS_SENSOR }
#define PO3130D_PIXELPLUS			{ 106, CMOS_SENSOR }
#define HV7131RP_HYNIX				{ 107, CMOS_SENSOR }
#define NOON130PC20_SILICONFILE	    { 108, CMOS_SENSOR }
#define MT9D011_MICRON				{ 109, CMOS_SENSOR }
#define S5K3BAFB_SAMSUNG			{ 110, CMOS_SENSOR }	
#define OV2630_OMNIVISION			{ 111, CMOS_SENSOR }
#define NOON200PC11_SILICONFILE	    { 112, CMOS_SENSOR }
#define S5K83AFX_SAMSUNG			{ 113, CMOS_SENSOR }	
#define OM6802_PHILIPS				{ 114, CMOS_SENSOR }
#define S5K53BEX_SAMSUNG			{ 115, CMOS_SENSOR }
#define OV7670_OMNIVISION			{ 116, CMOS_SENSOR }		
#define OV9655_OMNIVISION			{ 117, CMOS_SENSOR }
#define OV3630_OMNIVISION			{ 118, CMOS_SENSOR }
#define NOON200PC20_SILICONFILE	    { 119, CMOS_SENSOR }
#define OV2640_OMNIVISION			{ 120, CMOS_SENSOR }
#define MC501CA_MAGNACHIP		    { 121, CMOS_SENSOR }
#define MT9T012_MICRON				{ 122, CMOS_SENSOR }

// interface to apply/update camera_para to/from ISP, AE&AWB and SENSOR 
void apply_camera_para_to_reg(void);
void update_camera_para_from_reg(void);

// interface to apply camera_para to ISP, AE&AWB 
void load_camera_para(void);

// interface to apply/update camera_para to/from ISP 
void camera_para_to_isp(void);
void isp_to_camera_para(void);

// interface to apply/update camera_para to/from AE&AWB 
void camera_para_to_ae(void);

// interface to get/set camera_para global variable 
nvram_camera_para_struct *get_camera_para(void);
void set_camera_para(const nvram_camera_para_struct *p_cam_para);
#if (!defined(MT6219))
void apply_camera_shading_to_reg(camera_comp_set_num p_set_mode);
void update_camera_shading_from_reg(camera_comp_set_num p_set_mode);
void apply_camera_autodefect_to_reg(camera_comp_set_num p_set_mode);
void update_camera_autodefect_from_reg(camera_comp_set_num p_set_mode);
nvram_camera_defect_struct *get_camera_defect(void);
void set_camera_defect(const nvram_camera_defect_struct *p_cam_defect);
nvram_camera_lens_struct *get_camera_lens(void);
void set_camera_lens(const nvram_camera_lens_struct *p_cam_lens);
kal_uint8 Set_camera_shading_mode(camera_shading_mode_set_num p_shading_set);
kal_uint8 Get_camera_shading_mode(void);
#endif
#if (!(defined(MT6219)||defined(MT6228)))
nvram_camera_gamma_struct *get_camera_gamma(void);
void set_camera_gamma(const nvram_camera_gamma_struct *p_cam_gamma);
#endif

// interface to get default hardcoded camera_para 
const nvram_camera_para_struct *get_default_camera_para(void);

// interface to set f/w data
void init_camera_operation_para(camera_operation_para_struct *oper_data);
#if (defined(AF_SUPPORT)&&(!defined(MT6219)))
extern float	lens_step_scaling;
void init_af_operation_para(af_operation_para_struct *oper_data);
#endif

// interface to set camera para in differnt mode
void set_camera_mode_para(kal_uint8 mode);
void set_anti_low_light_para(kal_uint8 aeidx);

/* Extern Global Variable */
extern nvram_camera_para_struct	camera_para;
extern const nvram_camera_para_struct CAMERA_PARA_DEFAULT_VALUE;

#if (!defined(MT6219))
const nvram_camera_defect_struct *get_default_camera_defect(void);
const nvram_camera_lens_struct *get_default_camera_lens(void);
void load_defect_table_para(kal_uint8	table_id);

extern nvram_camera_defect_struct	camera_defect;
extern nvram_camera_lens_struct	camera_lens;
extern const nvram_camera_defect_struct CAMERA_DEFECT_DEFAULT_VALUE;
extern const nvram_camera_lens_struct CAMERA_LENS_DEFAULT_VALUE;
#endif

#if (!(defined(MT6219)||defined(MT6228)))
const nvram_camera_gamma_struct *get_default_camera_gamma(void);

extern nvram_camera_gamma_struct	camera_gamma;
extern const nvram_camera_gamma_struct CAMERA_GAMMA_DEFAULT_VALUE;
#endif
	
#if (!defined(MT6219))
const exposure_lut_struct *get_ae_lut(ae_lut_info_struct info);
const kal_uint8 *get_iris_lut(ae_lut_info_struct info);
extern dsc_info_struct		dsc_support_info;
extern device_info_struct	device_support_info;
#endif

extern kal_uint8 	camera_horizontal_flag;

// preview rotation flag 
extern kal_uint8	g_CCT_PreviewImageMirror;

//gamma 1024 software flag
#define gamma_global_1024_no 	52
void apply_take_image_with_gamma_1024_by_flag(void);//chip compiler option inside API
void recover_preview_with_gamma_1024_disabled(void);//chip compiler option inside API

#endif
#endif /* _CAMERA_PARA_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -