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

📄 isp_device_if.h

📁 最新MTK手机软件源码
💻 H
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING 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.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *   isp_cct_if.h
 *
 * Project:
 * --------
 *   MT6226,MT6227,MT6228,MT6229
 *
 * Description:
 * ------------
 *   These are interface with FT for CCT/DeviceTool
 *
 * Author:
 * -------
 *   
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *-----------------------------------------------------------------------------
 ****************************************************************************/
#if (defined(ISP_SUPPORT))

#ifndef _ISP_DEVICE_IF_H
#define _ISP_DEVICE_IF_H

/*************************************************
 * INFO Interface 
 **************************************************/
dsc_info_struct *isp_device_get_dsc_info(void); 
device_info_struct *isp_device_get_device_info(void); 
void isp_device_get_iris_info(kal_bool iris[AV_NO]);
void isp_device_set_iris_info(const kal_bool iris[AV_NO]);

/*************************************************
 * AE Interface 	
 **************************************************/
typedef struct
{
    exposure_lut_struct *lut;
    kal_uint8   *iris_lut;
    kal_uint16  start_idx;
    kal_uint16  end_idx;
    kal_uint32  timer_ms;    
}camera_ae_bypass_freerun_struct;

typedef struct
{
    kal_uint32 *resultLum;
}camera_ae_bypass_freerun_result_struct;    

typedef struct
{
	kal_uint8	ae_awb_cal_period;					/* AE AWB calculation period */
	kal_uint8	ae_setting_gain_delay_frame;		/* The frame of setting gain */
	kal_uint8	ae_setting_shut_delay_frame;		/* The frame of setting shutter */
	kal_uint8	ae_setting_cal_delay_frame;		    /* The frame of calculation */
	kal_uint8	ae_setting_sensor_gain_delay_frame;	/* The frame of setting sensor gain */
}camera_ae_period_para_struct;

extern const exposure_lut_struct *get_ae_lut(ae_lut_info_struct info);
extern const kal_uint8 *get_iris_lut(ae_lut_info_struct info);
kal_uint8 isp_device_set_ae_idx(ae_lut_info_struct ae_lut_info, kal_uint8 idx);
kal_uint8 isp_device_set_ae_value(kal_uint32 shutter, kal_uint32 sensorgain, kal_uint32 ispgain);

void set_ae_period_data(const camera_ae_period_para_struct *period_data);
void get_ae_period_data(camera_ae_period_para_struct *period_data);
kal_uint8 isp_device_ae_bypass_freerun_process(camera_ae_bypass_freerun_struct *freerun_para, camera_ae_bypass_freerun_result_struct *freerun_result);
kal_uint32 get_lum_info(void);

/*************************************************
 * AF Interface 	
 **************************************************/
kal_uint8 isp_device_af_calibration(kal_uint32 *pos, kal_uint32 *atf_value);
kal_uint8 isp_device_set_af_idx(kal_uint8 idx);
kal_uint8 isp_device_set_af_pos(kal_uint32 pos);

/*************************************************
 * Flash Light Interface 	
 **************************************************/
kal_uint8 adjust_flashlight_param(kal_uint32 curr_lum, kal_uint32 target_lum);

/*************************************************
 * Defect Table Interface 	
 **************************************************/
#if (defined(MT6219))
#define	GRAB_INTERPO_WIDTH_PIXEL		(4)
#define	GRAB_INTERPO_HEIGHT_PIXEL		(2)
#elif (defined(MT6226)||defined(MT6226M)||defined(MT6227))
#define	GRAB_INTERPO_WIDTH_PIXEL		(4)
#define	GRAB_INTERPO_HEIGHT_PIXEL		(4)
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
#define	GRAB_INTERPO_WIDTH_PIXEL		(6)
#define	GRAB_INTERPO_HEIGHT_PIXEL		(6)
#endif

/* DEFECT PIXEL*/
#define	DEFECT_MAX_SEARCH_NUM			(1024)
#define	DEFECT_MAX_BLOACK_PER_ROW		(32)	// 3M=2048*1536, 2048/32=64, so, min block width=64

#define	ERR_OVER_MAX_SEARCH_NUM			(-1)
#define	ERR_OVER_MAX_DEFECT_NUM			(-2)

#define	ERR_STATE_INIT_PROCESS			(-3)
#define	ERR_STATE_UNDER_PROCESSING		(-4)
#define	ERR_STATE_UNKNOWN_MODE			(-5)

#define	ERR_PARA_SIZE_NOT_ALIGN			(-10)
#define	ERR_PARA_SIZE_OVER_MEM			(-11)
#define	ERR_PARA_SIZE_OVER_BLOCK		(-12)

typedef enum
{
	DEFECT_INIT_STATE=0,
	DEFECT_START_STATE,
	DEFECT_PROCESS_STATE,
	DEFECT_FINISH_STATE	
}DEFECT_OPERATION_STATE_ENUM;

enum
{
	DEFECT_MODE_NONE = 0,
	DEFECT_MODE_CAPTURE,
	DEFECT_MODE_PREVIEW,	
	DEFECT_MODE_BOTH
};

enum
{
	DEFECT_AREA_AVG=1,
	DEFECT_AREA_CENTER_PRI
};

enum
{
	DEFECT_AREA_1=1,
	DEFECT_AREA_2
};

enum
{
	DEFECT_TYPE_BLACK_PIXEL=1,
	DEFECT_TYPE_WHITE_PIXEL		
};

enum
{
	DEFECT_TYPE_BLACK_PIXEL_ONLY=1,
	DEFECT_TYPE_WHITE_PIXEL_ONLY,		
	DEFECT_TYPE_BOTH_BW,		
	DEFECT_TYPE_BOTH_WB			
};

typedef struct
{
	kal_uint8	search_mode_select;	/* Area1 or Avg. priority*/
	kal_uint8	defect_type;			/* Black or white */	
	kal_uint8	defect_type_select;	/* Black only or white only or B&W or W&B */
	kal_uint8	threshold_area1;		/* threshold condition for area 1*/
	kal_uint8	threshold_area2;		/* threshold condition for area 2*/
	kal_uint16	image_width;			/* image width */
	kal_uint16	image_height;			/* image height */
	kal_uint16	block_width_factor;	/* block width factor */
	kal_uint16	block_height_factor;	/* block height factor */
	kal_uint16	boarder_len;			/* boarder length */
	kal_uint16	max_defect_num;		/* max defect pixel limit */
	kal_uint16	max_search_num;		/* max search pixel limit */
} defectpixel_para_struct;
extern defectpixel_para_struct defectpixel_data;

typedef struct
{
	kal_uint8	area_id;
	kal_uint8	pixel_diff;		
	kal_uint16	pos_x;
	kal_uint16	pos_y;
} defectpixel_pixel_struct;

typedef struct
{
	kal_uint16	defect_num;				/* defect pixel found */
	kal_uint16	search_num;				/* searched pixel */	
	defectpixel_pixel_struct	pixel_list[256];
} defectpixel_result_struct;

void reset_camera_defectpixel(kal_uint8	defect_mode);
kal_int32 camera_defectpixel_verify_block_factor(const kal_uint32  isp_debug_buffer_size, defectpixel_para_struct *defect_data);
kal_int32 camera_defectpixel_process(	kal_uint8	defect_mode, defectpixel_para_struct *defect_data, kal_uint32 	isp_debug_buffer, kal_uint32 isp_debug_buffer_size);
kal_int32 get_defectpixel_info(kal_uint8 defect_mode, defectpixel_para_struct **defect_data, defectpixel_result_struct **defect_result);

void copy_calibration_result_to_camera_defect(nvram_camera_defect_struct *p_cam_defect);
void pixellist_to_camera_defect(kal_uint8 defect_mode, const defectpixel_result_struct *defect_result, nvram_camera_defect_struct *p_cam_defect);
void camera_defect_to_pixellist(kal_uint8 defect_mode, const nvram_camera_defect_struct *p_cam_defect, defectpixel_result_struct *defect_result);

#endif

#endif

⌨️ 快捷键说明

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