📄 ds40xxsdk.h
字号:
#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 + -