firmware/general/package/xiongmai-osdrv-xm530/files/sample/venc/Camera.h

974 lines
25 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//
// "$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