📄 isp_device_if.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 + -