// // "$Id: Camera.h 4 2011-09-14 14:13:30Z xiaoyongli $" // // Copyright (c)2008-2008, ZheJiang JuFeng Technology Stock CO.LTD. // All Rights Reserved. // // Description: // Revisions: Year-Month-Day SVN-Author Modification // #ifndef __CAMERA_H__ #define __CAMERA_H__ #ifdef __cplusplus extern "C" { #endif #include "xm_type.h" #include "xm_comm_video.h" #ifdef SOC_NONE #include "mpi_vencTx.h" #endif #define GET_REJECT_SHAKE_TIME(cfgTime) ((cfgTime)*20) #define BYTE unsigned char #define WORD unsigned short //ºÍAHD_NextChipÒ»Ö // 3MP 13x; 4MP 14x; 5M 15x typedef enum { SENSOR_CHIP_UNKNOW = 0, SENSOR_CHIP_H42 = 92, SENSOR_CHIP_AR0140 = 94, SENSOR_CHIP_AR0130 = 95, SENSOR_CHIP_SC1035 = 96, SENSOR_CHIP_SC1037 = 97, SENSOR_CHIP_H81 = 98, SENSOR_CHIP_H65 = 99, SENSOR_CHIP_SP140A = 81, SENSOR_CHIP_H62 = 82, SENSOR_CHIP_BG0703 = 83, SENSOR_CHIP_SC1145 = 84, SENSOR_CHIP_SC1135 = 85, SENSOR_CHIP_OV9732 = 86, SENSOR_CHIP_OV9750 = 87, SENSOR_CHIP_SP1409 = 88, SENSOR_CHIP_MIS1002 = 89, SENSOR_CHIP_SC2045 = 21, SENSOR_CHIP_IMX222 = 22, SENSOR_CHIP_IMX322 = 23, SENSOR_CHIP_AR0237_IR = 24, SENSOR_CHIP_SC2035 = 25, SENSOR_CHIP_F02 = 26, SENSOR_CHIP_AR0237 = 27, SENSOR_CHIP_IMX323 = 28, SENSOR_CHIP_PS5220 = 29, SENSOR_CHIP_SC2135 = 71, SENSOR_CHIP_F22 = 72, SENSOR_CHIP_BG0803 = 73, SENSOR_CHIP_PS5230 = 74, SENSOR_CHIP_PS3210 = 75, SENSOR_CHIP_GC2023 = 76, SENSOR_CHIP_SC2145 = 77, SENSOR_CHIP_HNX083 = 78, SENSOR_CHIP_HNX993 = 79, SENSOR_CHIP_SC1235 = 50, SENSOR_CHIP_BF3016 = 51, SENSOR_CHIP_IMX307 = 52, SENSOR_CHIP_SC2235E = 53, SENSOR_CHIP_BG0806 = 60, SENSOR_CHIP_IMX291 = 61, SENSOR_CHIP_PS5250 = 62, SENSOR_CHIP_SC2235 = 63, SENSOR_CHIP_SC2145H = 64, SENSOR_CHIP_GC2033 = 65, SENSOR_CHIP_F28 = 66, SENSOR_CHIP_SC2235P = 67, SENSOR_CHIP_MIS2236 = 68, SENSOR_CHIP_SC2315 = 69, SENSOR_CHIP_AR0330 = 130, SENSOR_CHIP_SC3035 = 131, SENSOR_CHIP_AUGE = 132, SENSOR_CHIP_OV4689 = 140, SENSOR_CHIP_SC4236 = 141, SENSOR_CHIP_K02 = 142, SENSOR_CHIP_PS5510 = 150, SENSOR_CHIP_K03 = 151, SENSOR_CHIP_SC5035 = 152, SENSOR_CHIP_SC5235 = 153, SENSOR_CHIP_SC5300 = 154, SENSOR_CHIP_IMX335 = 155, SENSOR_CHIP_SC5239 = 156, SENSOR_CHIP_OV12895 = 180, SENSOR_CHIP_APOLLO = 181, }XM_SENSOR_CHIP; enum dvr_info_cmd_hs { PRODUCT_TYPE = 0, VIDEO_CHANNEL = 1, AUDIO_CHANNEL = 2, ALARM_IN = 3, ALARM_OUT = 4, FVIDEO_CHIP = 5, DSP_CHIP = 6, ANALOG_AUDIO_MODE = 7, TALKBACK = 8, BVIDEO_CHIP = 9, STORE_INTERFACE = 10, MATRIX = 11, WIRELESS_INTERFACE = 12, HD_ENCODE = 13, HD_VERSION = 14, VD_INTERFACE = 15, NET_INTERFACE = 16, HD_INFO_LEN = 17 }; enum netmode{ NET_LAN = 0, NET_WLAN_8188EU }; typedef enum _resolution_bit_{ RSLTION_BIT_720P = 0, RSLTION_BIT_960P, RSLTION_BIT_1080P, RSLTION_BIT_1536P, RSLTION_BIT_4MP, RSLTION_BIT_5MP, RSLTION_BIT_8MP, RSLTION_BIT_BUTT }RSLTION_BIT; typedef enum{ IPC_UNKNOWN = 0x2000, IPC_50X10 = 0x2001, IPC_53X13 = 0x2002, IPC_RA50X10 = 0x2003, IPC_50X10_XYD = 0x2004, IPC_50X10_SW = 0x2005, IPC_53X13_SWI = 0x2006, //IPC_53X13_SWI ·Éµú IPC_RA50X10_C = 0x2007, IPC_RA53X13 = 0x2008, IPC_53X13_SW = 0x2009, IPC_53X13_SWL = 0x200A, // IPC_53X13_SWL °×¹âµÆ·Éµú IPC_RA53X13_C = 0x200B, IPC_50X10_SWC = 0x200C, IPC_50X20_SWL = 0x200E, IPC_50X20_SWI = 0x200F, IPC_53X13_XYD = 0x2010, IPC_RA50X20_C = 0x2011, IPC_50X30_SWL = 0x2012, IPC_50X10_SWCL = 0x2013, IPC_53X13_SWCL = 0x2014, IPC_50X20_SWCL = 0x2018, IPC_50X30_SWI = 0x2015, IPC_RA50X20 = 0x2016, IPC_50X20_SWC = 0x2017, IPC_50X10_SW_S = 0x2019,//32M IPC_53X13_SWL_S = 0x201A, IPC_50X10_SWC_S = 0x201B, IPC_RA50X10_C_S = 0x201C, IPC_53X13_SWI_S = 0x201D, IPC_XM530_RA50X20 = 0x3001, IPC_XM530_80X20 = 0x3002, IPC_XM530_80X50 = 0x3005, XM350AI_60X20 = 0x6000, // ÁÙÊ±Çø·Ö NR_IPC }IPC_NICKNAME_E; typedef enum { BLIGHT_CLOSE = 0x10, BLIGHT_OPEN = 0x11, CLIGHT_CLOSE = 0x20, MUSICLIGHT_OPEN = 0x21, MOODLIGHT_OPEN = 0x22, }enLIGHT_CTRL; typedef struct xm_COORD_S { XM_S32 s32X; XM_S32 s32Y; }COORD_S; /************************************************************************ * *»ñÈ¡É豸µÄÌØ¶¨Ãû³ÆID * ·µ»ØÃ¶¾ÙIPC_NICKNAME_E * ************************************************************************/ extern int get_hwinfo(int info_cmd); extern int GetProductNickName(void); /************************************************************************ ½Ó¿ÚËùÔÚ¿â: libdvr.so º¯Êý¹¦ÄÜ: »ñÈ¡ProductDefinitionÀïµÄ²úÆ·ÐͺŠÊäÈë²ÎÊý: ´æ´¢×Ö·û´®µÄµØÖ· ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ʧ°Ü ************************************************************************/ int GetProductString(char *pString); ///±àÂëÆ÷¾²Ì¬²ÎÊý typedef struct ENCODE_STATICPARAM { char reserved[2]; int profile; int level; int reserved1[4]; } ENCODE_STATICPARAM; #define NAME_LEN 16 typedef struct ispconfig_json_s { char deviceType[NAME_LEN]; char oemName[NAME_LEN]; unsigned char u8InfraredIO; unsigned char u8InfraredSwap; unsigned char u8IrCutIO; unsigned char u8IrCutSwap; /***************************************** u8IRLed: (0: default ³£¹æÄ£×é) bit0: (1: Èí¼þ¿ØÖƵÆ(WL/IR) 0: Ó²¼þ¿ØÖƵÆ(³£¹æ)) bit4: (1: Ó²¹âÃô 0: Èí¹âÃô) *****************************************/ unsigned char u8IRLed; } ISPCONFIG_JSON_S; /* typedef enum WB_MODE { WB_DISABLE, // ½ûÖ¹ WB_AUTO, // ×Ô¶¯ WB_DAYLIGHT, // ÈÕ¹â 6500k WB_CLOUDY, // ÒõÌì 7500k WB_INCANDESCENCE, // °×Èȹâ 5000k WB_FLUORESCENT, // ÈÕ¹âµÆ 4400k WB_TUNGSTEN, // ÎÙË¿µÆ 2800k WB_MANUAL // ÊÖ¶¯ }WB_MODE; */ typedef enum IRCUT_SWITCH_MODE { IRCUT_SYN_INFRARED, IRCUT_SWITCH_AUTO, IRCUT_BUTT }IRCUT_SWITCH_MODE; typedef enum DNC_MODE { DNC_AUTO, // ×Ô¶¯Çл» DNC_MULTICOLOR, // ²ÊÉ« DNC_BLACKWHITE, // Ç¿ÖÆÎªºÚ°×ģʽ DNC_INTE_WHITE_INF, //ÖÇÄܾ¯½ä DNC_WHITELAMP_AUTO, //ÖÇÄÜů¹â DNC_IRLAMP_AUTO, //ÖÇÄܺìÍâ DNC_LP_MODE, //³µÅÆÄ£Ê½ DNC_BUTT }DNC_MODE; typedef enum IRCUT_MODE { IRCUT_NIGHT,///ÍíÉÏ IRCUT_DAY,///°×ÌìÂË¹âÆ¬ IRCUT_AUTO, }IRCUT_MODE; typedef enum CAMERA_SCENE { SCENE_AUTO, SCENE_INDOOR, SCENE_OUTDOOR, SCENE_BUTT, }CAMERA_SCENE; typedef enum IRCUT_SWITCH_DIRECTION { NORMAL_DIRECTION, // CONTRARY_DIRECTION }IRCUT_SWITCH_DIRECTION; typedef struct XM_MOVEMENT_DATA_S { int reg_addr; int data; int mode; }MOVEMENT_DATA_S ; /// ÊÓÆµÑÕÉ«¸ñʽ typedef struct CAMERA_COLOR{ unsigned char Brightness; ///< ÁÁ¶È£¬È¡Öµ0-100¡£ unsigned char Contrast; ///< ¶Ô±È¶È£¬È¡Öµ0-100¡£ unsigned char Saturation; ///< ±¥ºÍ¶È£¬È¡Öµ0-100¡£ unsigned char Hue; ///< É«µ÷£¬È¡Öµ0-100¡£ unsigned char Gain; ///< ÔöÒæ£¬È¡Öµ0-100¡£bit7ÖÃλ±íʾ×Ô¶¯ÔöÒæ£¬ÆäËûλ±»ºöÂÔ¡£ unsigned char WhiteBalance; ///< ×Ô¶¯°×µçƽ¿ØÖÆ£¬bit7ÖÃλ±íʾ¿ªÆô×Ô¶¯¿ØÖÆ.0x0,0x1,0x2·Ö±ð´ú±íµÍ,ÖÐ,¸ßµÈ¼¶ unsigned short Acutance; ///< Èñ¶È£¬È¡Öµ0-15, µÚ8λ±íʾˮƽÈñ¶È£¬¸ß8Ϊ±íʾ´¹Ö±Èñ¶È¡£ }CAMERA_COLOR; // ºÍVIDEO_COLORÒ»Ö // ±àÂë²ÎÊý typedef struct tagCAPTURE_FORMAT { BYTE Compression; /*!< ѹËõģʽ */ BYTE BitRateControl; /*!< ÂëÁ÷¿ØÖÆ */ BYTE ImageSize; /*!< ͼÏñ·Ö±æÂÊ */ BYTE ImageQuality; /*!< ͼÏñ»ÖÊ */ BYTE FramesPerSecond; /*!< Ö¡ÂÊ */ BYTE AVOption; /*!< ÒôÊÓÆµÑ¡Ïî */ WORD BitRate; ///< ²Î¿¼ÂëÁ÷Öµ£¬KbpsΪµ¥Î» BYTE GOP; /*< Ö¡¼ä¸ôµÄÊýÖµ£¬½¨ÒéÖµ49¡«99*/ BYTE reserved[3]; /*< ±£Áô×Ö½Ú*/ } CAPTURE_FORMAT; typedef struct stCAM_INIT_DATE { XM_S32 mask; //ÑÚÂë XM_U8 u8GammaDay; XM_U8 u8GammaNight; XM_U8 u8LumDefDay; XM_U8 u8LumDefNight; XM_U8 u8InfrGpioNum; // µÆ°åGPIO XM_U16 u16GainDef; // x1 XM_U16 u16GainDefSD; // x1 XM_U16 u16GainMax; // x1 XM_U32 u32DnThrDay[5]; XM_U32 u32DnThrNight[5]; XM_U32 u32EshutterLvEn; // E Shutter enable level XM_U32 u32EshutterLvDis; // E Shutter Disbale level XM_U32 u32awb_agc; // bit7: En bit0~bit6: Choice XM_U32 u32AgcSLvlAwb; // >= limit awb gain XM_U32 u32AgcELvlAwb; // <= not limit awb gain XM_U32 u32CscLumCon; // HighByte -> LowByte [Lum Con] XM_U32 u32CscAcutance; // Autance XM_U32 u32CscHueSat; // HighByte -> LowByte [Hue Sat] XM_S32 s32TgtNum; //[0,3] XM_U32 au32TgtExp[4]; XM_U32 au32TgtLum[4]; XM_U32 u32FlashExtCfgEn; // 0xA55A: Enable XM_U32 u32GammaAgc; // bit7: En bit0~bit6: Choice XM_U32 u32GamAgcStartLvl; // > StartLevel use AgcGamma XM_U32 u32GamAgcEndLvl; // < EndLevel use NormalGamma XM_S32 s32Rvs; // Bit0: Infrared swap }CAM_INIT_DATA; //·µ»ØVI´°¿Ú³ß´çµÄ½á¹¹Ìå typedef struct st_VI_WIN_S { XM_U32 u32Width; XM_U32 u32Height; XM_U32 u32TotalWidth; XM_U32 u32TotalHeight; }VI_WIN_S; // ÉèÖÃ°×Æ½ºâ²ÎÊý int camera_set_wb_mode(unsigned int mode); /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖà ÈÕҹģʽ ÊäÈë²ÎÊý: 0: Auto 1: Color 2: BW note: *************************************************************************/ int camera_get_dnc_mode(XM_U32 *pMode); int camera_set_dnc_mode(unsigned int mode); // »ñȡ֧³ÖµÄÆØ¹âµÈ¼¶Êý // ·µ»ØÖµ<0£¬»ñȡʧ°Ü£¬>=0±íʾµÈ¼¶Êý£¬¾ßÌåµÈ¼¶±£´æÔÚÊý×éspeedsÖС£ // speedsÊý×鳤¶È±ØÐë×ã¹»´ó£¬È¡16²î²»¶àÁË¡£ int camera_get_exposure_speeds(int vstd, unsigned int *speeds); /************************************************************************* º¯Êý¹¦ÄÜ: ÆØ¹âģʽÉèÖà ÊäÈë²ÎÊý: level: 0 ×Ô¶¯ÆØ¹â 1~9 ÊÖ¶¯ÆØ¹â(¹Ì¶¨¼¸µµ) value1: ÆØ¹âÏÂÏÞ(min,us) value2: ÆØ¹âÉÏÏÞ(max,us) note: ×Ô¶¯ÆØ¹â(ÉÏÏÂÏÞÎÞЧ) level :0 ÊÖ¶¯ÆØ¹â(¹Ì¶¨¼¸µµ) level :1~9 *************************************************************************/ int camera_get_exposure_level(int *pLevel, XM_U32 *pValue1, XM_U32 *pValue2); int camera_set_exposure_level(int level, unsigned int value1, unsigned int value2); /******************************************************************* º¯Êý¹¦ÄÜ: ÉèÖÃ/»ñÈ¡×Ô¶¯ÔöÒæ ÊäÈë²ÎÊý: s32GainMax: ×î´óÔöÒæ ( 0~100 def: 50) s32AutoEn: AutoGain ʹÄÜ (0~1 def: 1) Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0 ³É¹¦ -1 ³ö´í Note: Lycai *******************************************************************/ int camera_get_gain(int *pGainLevel, int *pAutoEn); int camera_set_gain(int s32GainMax, int s32AutoEn); // ÉèÖòο¼µçƽֵ // level:²Î¿¼µçƽֵ£¬È¡Öµ0-100¡£ int camera_get_refrence_level(void); int camera_set_refrence_level(int level); // »ñȡƽ¾ùÁÁ¶ÈÖµ int camera_get_luminance(void); //»ñȡ״̬Âë,>=0±íʾ״̬Õý³£,<0±íʾ״̬Òì³£ int camera_get_status(int *status); //ÓÃÓÚµ÷ÊÔ int camera_debug(char *cmd); //·µ»Øxm 2a¿âµÄ°æ±¾ÐÅÏ¢ int camera_aew_get_version(char *str); //·µ»ØWBÔöÒæ void camera_get_wb_params(void *param); //ÉèÖÃ×Ô¶¯¹âȦģʽ int camera_set_aperture(unsigned int mode); //ÉèÖñ³¹â²¹³¥Ä£Ê½ int camera_get_blc(XM_U32 *pMode); int camera_set_blc(unsigned int mode); // ÉèÖÃÇ龰ģʽ int camera_get_scene(CAMERA_SCENE* pScene); int camera_set_scene(CAMERA_SCENE scene); /******************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡µç×ÓÂý¿ìÃÅ״̬(µ±Ç°) ÊäÈë²ÎÊý: ÎÞ Êä³ö²ÎÊý: *pu8EShutterSts: fps' = fps*0x10/gu8EshutterSts ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ʧ°Ü *******************************************************************/ int camera_get_es_status(XM_U8 *pu8EShutterSts); /************************************************************************* º¯Êý¹¦ÄÜ: ½µÖ¡¹¦ÄÜ£¨Ê¹ÄÜ£© ÊäÈë²ÎÊý: es_shutter: 0: 1/1 2: 1/2 4: 1/3 6: 1/4 Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_get_es_shutter(int *pEshutterLevel); int camera_set_es_shutter(int es_shutter); ///¿ªÆôÈÕ¹âµÆ·ÀÉÁ¹¦ÄÜ //en = 0 ²»¿ªÆô en= 1¿ªÆô int camera_get_reject_flicker(int *pEn); int camera_set_reject_flicker(int en); // ÈÕÒ¹Çл»ãÐÖµ int camera_get_dnc_thr(int *pDnc_thr); int camera_set_dnc_thr(int dnc_thr); //ÈÕҹת»»ãÐÖµ 10-50£¬Ä¬ÈÏ30 /******************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖà ÈÕÒ¹µ÷½ÚÁéÃô¶È ÊäÈë²ÎÊý: ÎÞ Êä³ö²ÎÊý: * pLevel: µÈ¼¶(1~10) ·µ»Ø²ÎÊý: 0 ³É¹¦ -1 ³ö´í Note: Lycai *******************************************************************/ int camera_get_ae_sensitivity(int*pLevel); int camera_set_ae_sensitivity(int ae_sensitivity); ///aeÁéÃô¶ÈÅäÖà 1-10£¬Ä¬ÈÏΪ5 /******************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖà AEµ÷½ÚÁéÃô¶È ÊäÈë²ÎÊý: ÎÞ Êä³ö²ÎÊý: * pLevel: µÈ¼¶(1~10) ·µ»Ø²ÎÊý: 0 ³É¹¦ -1 ³ö´í Note: Lycai *******************************************************************/ int camera_get_ae_sensitivity2(int* pLevel); int camera_set_ae_sensitivity2(int level); //int camera_set_RGBGain(int channel, int gainval);//ÉèÖÃRGBÔöÒæ1 REDͨµÀ 2 GREENͨµÀ 3BLUEͨµÀ int camera_get_Infrared(void);//»ñÈ¡É豸ºìÍâ״̬ 1±íʾºìÍâ´ò¿ª 0±íʾ¹Ø±Õ 2±íʾоƬ²»Ö§³Ö int camera_set_Ircut(int mode);//ÅäÖÃircut״̬ int camera_save_debug_cmd(char *cmd); /******************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖÃÈÕÒ¹½µÔëµÈ¼¶ ÊäÈë²ÎÊý: daynight: 0(Day) 1(Night) nf_level: 0~5 Def:3 Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0 ³É¹¦ -1 ³ö´í Note: Lycai *******************************************************************/ int CameraGetNFLevel(int daynight, int *pNrLevel); int CameraSetNFLevel(int daynight, int nf_level); //swap 0:Õý³£Ðò 1£º·´Ðò int CameraGetSwapICR(int *pSwap); int CameraSwapICR(int swap); int test_movement(int x,int y,int z); int movement_ircut(int level); int movement_gpioset(int addr,int mode); int movement_addrset(MOVEMENT_DATA_S *); // DWDR int camera_get_wdr(int* pLevel, int* pEnable); int camera_set_wdr(int level, int enable); int Camera_Get_StyleMode(int *pChoice); int Camera_Set_StyleMode(int choice); //ÊäÈë²ÎÊý: 0, 1, 2 int Camera_Get_DebugFile(char *fliename, unsigned int choice, unsigned int depth); int Movement_LumTarget_Change(int lum_now); //¸Ä±äÄ¿±êÁÁ¶È int Camera_Get_DebugFile(char *fliename, unsigned int choice, unsigned int depth); int camera_scan_task(XM_U32 u32Tms); // IR-CUT ģʽ int camera_get_ircut_mode(int *pIrcutMode); int camera_set_ircut_mode(int ircut_mode); // ¾µÏñ int camera_get_mirror(int *pMirror); int camera_set_mirror(int mirror); // ·×ª int camera_get_flip(int *pFlip); int camera_set_flip(int flip); /************************************************************************* º¯Êý¹¦ÄÜ: ͼÏñÑÕÉ«(Web) ½Ó¿Ú ÊäÈë²ÎÊý: channel: ÎÞЧ pColor: Brightness: ÁÁ¶È(0~100) Contrast: ¶Ô±È¶È(0~100) Saturation: ±¥ºÍ¶È(0~100) Hue: É«¶È(0~100) Acutance: Èñ»¯(0~15) ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_get_color(int channel, CAMERA_COLOR * pColor); int camera_set_color(int channel, CAMERA_COLOR * pColor); /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖà ÊÓÆµÖÆÊ½(PAL/NTSC) ÊäÈë²ÎÊý: channel: ÎÞЧ u32Vstd: 0:(UN) 1:PAL 2:NTSC Êä³ö²ÎÊý: *pu32Vstd 0:(UN) 1:PAL 2:NTSC ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_get_vstd(int channel,unsigned int *pu32Vstd); int camera_set_vstd(int channel,unsigned int u32Vstd); // u32Level: 0~100 // def: 0 /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖà ȥα²Ê ÊäÈë²ÎÊý: u32Level: 0~100(def:0) Êä³ö²ÎÊý: pu32Level: µ±Ç°µÈ¼¶ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_antiFalseColor(unsigned int u32Level); int camera_get_antiFalseColor(unsigned int *pu32Level); // u32Level: 0~100 // def: 0 /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖà ȥ¾â³Ý ÊäÈë²ÎÊý: u32Level: 0~100(def:0) Êä³ö²ÎÊý: pu32Level: µ±Ç°µÈ¼¶ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_sawtooth(unsigned int u32Level); int camera_get_sawtooth(unsigned int *pu32Level); //·ÀºìÍâ¹ýÆØ¹¦ÄÜ //Enable = 0 ²»¿ªÆô Enable = 1¿ªÆô int camera_set_hlc(int Enable); int camera_get_hlc(int *pEnable); /************************************************************************* º¯Êý¹¦ÄÜ: camera_set_format ÊäÈë²ÎÊý: chn u32Type: 0MainStream 1:SubStream1 2:SubStream2 pstFormat: encode paramer Êä³ö²ÎÊý: none ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_format(int chn, unsigned int u32Type,const CAPTURE_FORMAT *pstFormat); /************************************************************************* º¯Êý¹¦ÄÜ: ½µÖ¡À©Õ¹¹¦ÄÜ(XM320ʹÓÃ) ÊäÈë²ÎÊý: u8Mode: 1: Read 2: Write pu8Status: fps 0: 1/1 2: 1/2 Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_es_shutter_ex(XM_U8 u8Mode, XM_U8 *pu8Status); /************************************************************************* º¯Êý¹¦ÄÜ: ²úÆ·ÐͺÅ(¶Á/д) ÊäÈë²ÎÊý: u8Mode: 1: Read 2: Write *pu32ProductType: ²úÆ·ÐͺŠÊä³ö²ÎÊý: *pu32ProductType: ²úÆ·ÐͺŠ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_productType(XM_U8 u8Mode, XM_U32 *pu32ProductType); /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡/ÉèÖÃÄÚ²¿²ÎÊý ÊäÈë²ÎÊý: pstCamearPara: Ö¸Ïò²ÎÊýµØÖ· Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_para_get(CAM_INIT_DATA *pstCamearPara); int camera_para_set(CAM_INIT_DATA *pstCamearPara); /************************************************************************* º¯Êý¹¦ÄÜ: ÉèÖÃ/»ñÈ¡ ÏÞÖÆAWBɫΠÊäÈë²ÎÊý: u8MinCt: ×îµÍɫΠbit7: En bit0~bit6: Choice u32Start: ¿ªÊ¼ÏÞÖÆÔöÒæ(x1024) u32End: ·Å¿ªÏÞÖÆÔöÒæ(x1024) Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_awbLimit_set(XM_U8 u8MinCt, XM_U32 u32Start, XM_U32 u32End); int camera_awbLimit_get(XM_U8 *pu8MinCt, XM_U32 *pu32Start, XM_U32 *pu32End); /************************************************************************* º¯Êý¹¦ÄÜ: ÉèÖÃ/»ñÈ¡ BurstʹÄÜ(BW) ÊäÈë²ÎÊý: u8Enable: 0:Disable 1:Enable Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_bwBurst_set(XM_U8 u8Enable); int camera_bwBurst_get(XM_U8 *pu8Enable); int camera_get_vdaMovState(XM_U32 *pData); int camera_set_wbRB(XM_U8 u8Data); int camera_get_wbRB(XM_U8 *pu8Data); int camera_set_wbGM(XM_U8 u8Data); int camera_get_wbGM(XM_U8 *pu8Data); int camera_set_encoderinfo(XM_U8 *pu8Dta); /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡ÈÕҹ״̬ Êä³ö²ÎÊý: pu8Mode: 0: Color 1: BW note: *************************************************************************/ int camera_get_dn_state(XM_U8 *pu8Mode); /************************************************************************* º¯Êý¹¦ÄÜ: ±àÂë/ÖÆÊ½/·Ö±æÂÊ Ä£Ê½Çл» Êä³ö²ÎÊý: u8Mode: 0x00:AHD 0x01:CVI 0x02:TVI 0x10:XVI u8VstdMode: 1: PAL 2:NTSC u8RlstMode: 0:1M 1:2M 3:3M 4:4M 5:5M note: *************************************************************************/ int camera_set_isp_para(XM_U8 u8Mode, XM_U8 u8VstdMode, XM_U8 u8RlstMode); int camera_get_isp_para(XM_U8 *pu8Mode); int camera_set_language(int s32Language); /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖÃ/»ñÈ¡ LEDģʽ ÊäÈë²ÎÊý: ps32Mode: 0xAB( A: 0: IR 1: WL --- ½ö¶ÁȡʱÓÐЧ B: 0:Auto 1:Manual 2:Intelligence) ps32State: 0:Close 1:Open Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_ledMode(int s32Mode, int s32State); int camera_get_ledMode(int *ps32Mode, int *ps32State); /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖà LEDÀàÐÍ ÊäÈë²ÎÊý: s32Type: 0: IR 1: WL 2:Double Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_ledType(int s32Type); int camera_get_ledType(int *ps32Type); /***************************************************************************** º¯Êý¹¦ÄÜ: Íⲿµ÷ÊÔÑ¡Ôñgamma ÊäÈë²ÎÊý: u32Gamma: [High Byte->Low Byte] = [u8IdxWgt(Idx2) u8Idx2 u8Idx1] u8Idx1: 0: disable gamma (ÏßÐÔ) 1~15: LinearGamma 128~255: WdrGamma u8Idx2: 0: disable gamma (ÏßÐÔ) 0~15: LinearGamma 128~255: WdrGamma u8IdxWgt: (0~255) u8Idx1 Weight: 255-u8IdxWgt u8Idx2 Weight: u8IdxWgt ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ʧ°Ü *****************************************************************************/ int camera_set_gamma(XM_U32 u32Gamma); int camera_get_gamma(XM_U32 *pu32Gamma); int camera_set_smartVda(XM_U8 u8MovFlg); int camera_get_smartVda(XM_U8 *pu8MovFlg); /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡Îȶ¨×´Ì¬(µÆÅÝ) ÊäÈë²ÎÊý: ÎÞ Êä³ö²ÎÊý: pu8StateFlg 0: Îȶ¨ 1: ²Ù×÷LED ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_get_stabState(XM_U8 *pu8StateFlg); /************************************************************************* º¯Êý¹¦ÄÜ: »ñÈ¡ ±¨¾¯LED³ÖÐøÊ±¼ä(ms) ÊäÈë²ÎÊý: s32Tms: ³ÖÐøÊ±¼ä(ms) ----(¾«¶È100ms) Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_ledHold(int s32Tms); /************************************************************************* º¯Êý¹¦ÄÜ: 2Mץͼ½Ó¿Ú ÊäÈë²ÎÊý: ÎÞ Êä³ö²ÎÊý: pstSnapVFInfo ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_snap(VIDEO_FRAME_INFO_S *pstSnapVFInfo); /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖÃͼÏñ×ø±ê ÊäÈë²ÎÊý: mode: ±£Áô stCoord: ×ø±êÐÅÏ¢ Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_coord(int mode, COORD_S stCoord); /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖÃͼÏñ×ø±ê ÊäÈë²ÎÊý: pstViWin Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_get_vi_resolution(VI_WIN_S *pstViWin); int camera_init(XM_U32 *pu32ProductType); typedef struct st_AIRSLT_INFO_S { XM_U8 u8AlarmFlg; //1: ´¥·¢±¨¾¯ 0:δ´¥·¢ XM_U32 u32TargetNum; // Ä¿±ê¸öÊý; XM_U32 u32Info[64]; // ±¨¾¯ÐÅÏ¢(×ø±êµÈ) }AIRSLT_INFO_S; /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖÃÖÇÄܱ¨¾¯ÐÅÏ¢(ÈËÐμì²â) ÊäÈë²ÎÊý: u8Cmd: ±¨¾¯Âë pstAiInfoRlst: ±¨¾¯ÐÅÏ¢ Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_aiInfo(XM_U8 u8Cmd, AIRSLT_INFO_S *pstAiInfoRlst); /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖÃÈËÐηÀ¹ýÆØÊ¹ÄÜ ÊäÈë²ÎÊý: en: 1:ʹÄÜ 0:½ûÄÜ Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_aeweight(int en); int camera_get_aeweight(int *ps32En); /************************************************************************* º¯Êý¹¦ÄÜ: ÅäÖÃÈíºìÍâãÐÖµ ÊäÈë²ÎÊý: dnc_thr: 1~5(default:3) (ԽС£¬Ô½ÔçÇкڰ×) Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_set_softIr_thr(int dnc_thr); #ifdef SOC_NONE int camera_get_txAttr(XM_U8 *pu8En, VENC_TX_ATTR *pstTxAttr); int camera_set_txAttr(XM_U8 u8En, VENC_TX_ATTR stTxAttr); #endif //#if(defined SOC_ALIOS) || (defined SOC_XMSDK) typedef struct xm_CAMERACFG_TO_ISP { unsigned int u32ProductType; unsigned int u32StdType; // 0: unknow 1:PAL 2:NTSC unsigned int u32RsltType; // 0: 720P 1:1080P 2:960P 3:1536P 101:P1080_S1 102:P1080_S2 /**************************** u32IRLed: bit31: 0 not use 1 use bit0: 0 ÆÕͨģʽ£¨ºìÍâͬ²½/×Ô¶¯Í¬²½... (Ó²¼þ¿ØÖƺìÍâµÆ)£© 1 Èí¼þ¿ØÖÆµÆ bit4: 0 Èí¹âÃô 1 Ó²¹âÃô ****************************/ unsigned int u32IRLed; unsigned int au32RsltCh[4][4]; // (Ch0_Width Ch0_Height Ch1_Width Ch1_Height) * 4 /**************************** u32Infrared: bit31: 0 not use 1 use bit0: InfraredSwap bit8~bit15: InfraredGPIO (0xFF: choice by source) ****************************/ unsigned int u32Infrared; /**************************** u32IrCut: bit31: 0 not use 1 use bit0: IRCUT Swap bit8~bit15: InfraredGPIO (0xFF: choice by source) ****************************/ unsigned int u32IrCut; unsigned int au32Rsv[10]; }CAMERACFG_TO_ISP; /************************************************************************* º¯Êý¹¦ÄÜ: ´´½¨ISPÏà¹ØÒµÎñ(Æô¶¯Í¼ÏñÏà¹Ø´¦Àí) ÊäÈë²ÎÊý: pstViWin Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_isp_task(CAMERACFG_TO_ISP *pstCfg); /************************************************************************* º¯Êý¹¦ÄÜ: ͼÏñÏà¹Ø½øÐÐÍ˳ö²Ù×÷ ÊäÈë²ÎÊý: ÎÞ Êä³ö²ÎÊý: ÎÞ ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í *************************************************************************/ int camera_exit(void); /*************************************************************** º¯Êý¹¦ÄÜ: È¥Îí¹¦ÄÜ ÊäÈë²ÎÊý: enable: ´ò¿ª¹Ø±Õ[0,1] level: Ç¿¶ÈµÈ¼¶[0,100] ·µ»Ø²ÎÊý: 0: ³É¹¦ -1: ³ö´í ***************************************************************/ int Camera_SetClearFog(int enable, int level); //#endif #ifdef __cplusplus } #endif #endif