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

📄 ds40xxsdk.h

📁 linux下开发的基于pc的DVR系统
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _DS40XXSDK_H_
#define _DS40XXSDK_H_

/*
*		The api for DS40xxHC DS400HT DS400MD board
*		Last update time: 2005-7-18 
*/

#ifdef __cplusplus
        extern "C"{
#endif
//******************************//
//	error code list		//
//******************************//
#define ErrorCodeSuccess		0x0000


#define ErrorCodeDSPUninit		0x0001
#define ErrorCodeDSPNotReady		0x0002
#define ErrorCodeDSPLoadFail		0x0004
#define ErrorCodeDSPSyncObjectFail	0x0005
#define ErrorCodeDSPCountOverflow	0x0009
#define ErrorCodeEncodeChannelOverflow	0x000a
#define ErrorCodeDecodeChannelOverflow	0x000b
#define ErrorCodeBoardOverflow		0x000c
#define ErrorCodeDSPHexBlockLenOverflow	0x000d
#define ErrorCodeDSPProgramCheckoutFail	0x000e
#define ErrorCodeDSPInitRecheckFail	0x000f
#define ErrorCodeDSPBusy		0x0010

#define ErrorCodeNoCardInstalled	0x0102
#define ErrorCodeIoctlFail			0x0103
#define ErrorCodeMemLocateFail		0x0104
#define ErrorCodeDuplicateSN		0x0105
#define ErrorCodeCreateThreadFail	0x0106
#define ErrorCodeDSPCmdInvalid		0x0107
#define ErrorCodeHOSTCmdInvalid		0x0108
#define ErrorCodeDSPRespondCmdFail	0x0109
#define ErrorCodeOrderFail		0x010a
#define ErrorCodeKernelFail		0x010b
#define ErrorCodeStreamBufUnderflow	0x010c

#define ErrorCodeChannelOutofRange	0x0200
#define ErrorCodeInvalidEncodeChannel	0x0201
#define ErrorCodeInvalidArgument	0x0202
#define ErrorCodeNotSupport		0x0203
#define ErrorCodeMmapFail		0x0204

#define ErrorCodeFileInvalid			0x0301
#define ErrorCodeOpenFileFail			0x0302
#define ErrorCodeFileSizeZero			0x0303
#define ErrorCodeBadFileFormat			0x0304
#define ErrorCodeBadFileHeader			0x0305
#define ErrorCodeParaOver			0x0306
#define ErrorCodeCreateFileFail			0x0307
#define ErrorCodeNoSpare			0x0308
#define ErrorCodeInvalidDevice			0x0309
#define ErrorCodeInsufficientMem		0x030a
#define ErrorCodeCardSerialError		0x030b
#define ErrorCodeInvalidDecodeChannel		0x030c
#define ErrorCodeOutOfMemory			0x030d
#define ErrorCodeSemCreateFail			0x030e

//////////////////////////////////////////////////////////////////
//			type define											//
//////////////////////////////////////////////////////////////////
#define STREAM_TYPE_VIDEO       1
#define STREAM_TYPE_AUDIO       2
#define STREAM_TYPE_AVSYNC      3

#define HW_JUMP_FORWARD							309 
#define HW_JUMP_BACKWARD						310

/* preview mode */
#define NORMAL_SIZE             0       /* just not change */
#define D1_SIZE                 1       /* 704 x 576 */
#define DCIF_SIZE               2       /* 528 x 288 */
#define CIF_SIZE                3       /* 352 x 288 */
#define QCIF_SIZE               4       /* 176 x 144 */
#define MINI_SIZE               5       /* 88 x 72 */


typedef enum {
	DS400XM 			=0,		//400XM
	DS400XH				=1,		//400XH
	DS4004HC			=2,		//4004HC
	DS4008HC			=3,		//4008HC
	DS4016HC			=4,		//4016HC
	DS4001HF			=5,		//4001HF
	DS4004HF			=6,		//4004HF
	DS4002MD			=7,		//4002MD
	DS4004MD			=8,		//4004MD
	DS4016HCS			=9,		//4016HCS
	DS4002HT			=10,	//4002HT
	DS4004HT			=11,	//4004HT
	DS4008HT			=12,	//4008HT
	DS4004HC_PLUS		=13,	//4004HC+
	DS4008HC_PLUS		=14,	//4008HC+
	DS4016HC_PLUS		=15,	//4016HC+
	DS4008HF			=16,	//4008HF
	DS4008MD			=17,	//4008MD
	DS4008HS			=18,	//4008HS
	DS4016HS			=19,	//4016HS
	INVALID_BOARD_TYPE	=0xffffffff,
}BOARD_TYPE_DS;
typedef struct
{
	BOARD_TYPE_DS type;					//板卡类型
	char sn[16];						//序列号
	UINT dspCount;						//板卡包含的DSP个数
	UINT firstDspIndex;					//板卡上第一个DSP的索引
	UINT encodeChannelCount;			//板卡包含的编码通道个数
	UINT firstEncodeChannelIndex;		//板卡上第一个编码通道的索引
	UINT decodeChannelCount;			//板卡包含的解码通道个数
	UINT firstDecodeChannelIndex;		//板卡上第一个解码通道的索引
	UINT displayChannelCount;			//板卡包含的视频输出通道个数
	UINT firstDisplayChannelIndex;		//板卡上第一个视频输出通道的索引
	UINT reserved1;
	UINT reserved2;
	UINT reserved3;
	UINT version;				//the version for hardware:format:major.minor.build,
						//major:bit 16-19,minor:bit 8-15, build: bit 0-7
}DS_BOARD_DETAIL;
typedef struct
{
	UINT encodeChannelCount;			//板卡包含的编码通道个数
	UINT firstEncodeChannelIndex;		//板卡上第一个编码通道的索引
	UINT decodeChannelCount;			//板卡包含的解码通道个数
	UINT firstDecodeChannelIndex;		//板卡上第一个解码通道的索引
	UINT displayChannelCount;			//板卡包含的视频输出通道个数
	UINT firstDisplayChannelIndex;		//板卡上第一个视频输出通道的索引
	UINT reserved1;
	UINT reserved2;
	UINT reserved3;
	UINT reserved4;
}DSP_DETAIL;
typedef struct tagChannelCapability{
	UCHAR bAudioPreview;
	UCHAR bAlarmIO;
	UCHAR bWatchDog;
}CHANNEL_CAPABILITY, *PCHANNEL_CAPABILITY;
typedef enum {
	brCBR = 0,
	brVBR = 1,
}BitrateControlType_t;

typedef struct{
	UINT year;
	UINT month;
	UINT day;
	UINT dayOfWeek;
	UINT hour;
	UINT minute;
	UINT second;
	UINT milliSecond;
}SYSTEMTIME;

typedef struct tagFramsStatistics{
	ULONG VideoFrames;
	ULONG AudioFrames;
	ULONG FramesLost;
	ULONG QueueOverflow;
	ULONG CurBps;
}FRAMES_STATISTICS, *PFRAMES_STATISTICS;

typedef struct _Preview_Config{
	ULONG	imageSize;
	ULONG	w;
	ULONG	h;
	char*	dataAddr;
	sem_t*  SyncSem;				//the semphore for have new image coming
	sem_t*	ChangeSem;				//the semphore for the image size changed
}PREVIEWCONFIG, *PPREVIEWCONFIG;

//Version info
typedef struct {
	ULONG DspVersion, DspBuildNum;
	ULONG DriverVersion, DriverBuildNum;
	ULONG SDKVersion, SDKBuildNum;
}HW_VERSION, *PHW_VERSION;

typedef struct{
	long bToScreen;
	long bToVideoOut;
	long nLeft;
	long nTop;
	long nWidth;
	long nHeight;
	long nReserved;
}DISPLAY_PARA,*PDISPLAY_PARA;
#define MAX_DISPLAY_REGION		16
typedef struct
{
	UINT left;
	UINT top;
	UINT width;
	UINT height;
	UINT r;
	UINT g;
	UINT b;
	UINT param;
}REGION_PARAM;

/* add at 2006.8.6 */
/*
face detecting: just for checking and evaluating, it maybe update more.
*/
typedef struct
{
	short x,y,width,height;
}FACE_AREA_DEMO;
typedef struct
{
	FACE_AREA_DEMO faceArea;
	FACE_AREA_DEMO leftEyeArea;
	FACE_AREA_DEMO rightEyeArea;
	FACE_AREA_DEMO leftPupilArea;
	FACE_AREA_DEMO rightPupilArea;

⌨️ 快捷键说明

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