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

📄 ds40xxsdk.h

📁 强大的QT,GTK的学习Demo.包含DSP驱动以及所使用库文件资源。
💻 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
#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 + -