📄 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
#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;
FACE_AREA_DEMO noseArea;
FACE_AREA_DEMO mouthArea;
} FACE_INFO_DEMO;
typedef void (*FACE_DETECTION_DEMO_CALLBACK)
(
UINT nChannel,
UINT nFaceCount,
FACE_INFO_DEMO * pFaceInfo,
char *pData,
UINT nDataSize,
UINT nImageWidth,
UINT nImageHeight
);
typedef void (*STREAM_READ_CALLBACK) (int cahnnelNum, char*pBuf, int frameType, int length);
typedef void* (*IMAGE_STREAM_CALLBACK) (UINT channelNumber, void* context);
typedef void (*MOTION_DETECTION_CALLBACK) (ULONG channelNumber, int bMotionDetected, void *context);
typedef void (*DECODER_VIDEO_CAPTURE_CALLBACK)
(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -