📄 dvrsdk.h
字号:
/*************************************************
**
** 文件名:DVRSDK.h
**
** 发行商:维视图像 Microvision Copyright
**
** 发行时间:2003.05.01
**
** 最后更新:2004.07.30
**
** 说明:DVRSDK.dll API 函数的声明文件, ver 3.2
**
**************************************************/
#ifndef ___DVR_SDK_H__
#define ___DVR_SDK_H__
// 定义 DVRSDK 多路透明色
#define TRANSPARENCE_COLOR RGB(238,0,238)
// 视频输入端口号选择
typedef enum
{
VInput_AV1 = 0x0,
VInput_AV2 = 0x1,
VInput_AV3 = 0x2,
VInput_AV4 = 0x3
} VInput;
// 视频流类型参量
typedef enum
{
VSubType_RGB32 = 0x0,
VSubType_RGB24 = 0x1,
VSubType_RGB16 = 0x2,
VSubType_RGB15 = 0x3,
VSubType_YUY2 = 0x4,
VSubType_BTYUV = 0x5,
VSubType_Y8 = 0x6,
VSubType_RGB8 = 0x7,
VSubType_PL422 = 0x8,
VSubType_PL411 = 0x9,
VSubType_YUV12 = 0xA,
VSubType_YUV9 = 0xB,
VSubType_RAW = 0xE
} VSubType;
// 视频制式参量
typedef enum
{
VStandard_NTSC = 0x1,
VStandard_PAL = 0x3,
VStandard_SECAM = 0x6
} VStandard;
// 录像视频制式
typedef enum
{
VRecord_NTSC = 0x0,
VRecord_PAL = 0x1,
} VRecStandard;
// 视频属性参量
typedef enum
{
VProperty_Brightness = 0x00, // 范围: 0 ~ 510 最佳:255
VProperty_Contrast = 0x01, // 范围: 0 ~ 510 最佳:255
VProperty_Hue = 0x02, // 范围: 0 ~ 510 最佳:255
VProperty_Saturation = 0x03, // 范围: 0 ~ 510 最佳:300
} VProperty;
// 不规则显示参数设置
typedef struct tagCardRect
{
RECT rcWndPos; // 窗口位置
DWORD dwCardID; // 卡号
DWORD reserve1; // 扩展保留
DWORD reserve2; // 扩展保留
} CAP_WND_POS;
// MPEG4 录制参数设置
typedef struct tagProperty
{
DWORD RecProperty_BitRate; // 位率 (范围:56KBPS ~ 10MBPS)
DWORD RecProperty_KeyFrameInterval; // 帧率 (范围:1 ~ 25(PAL)/30(NTSC)帧)
DWORD RecProperty_FrameRate; // 关键帧间隔 (要求:大于等于帧率)
VRecStandard RecProperty_VStandard; // 视频制式 (取值:0 为NTSC, 1 为PAL)
} RecordMPEGPara;
// 捕捉模式定义用于 HxnDVR_SetCaptureFile () 函数接口
// 例如:要捕捉只有视频的 MPEG4 文件和捕捉音视流保存为 .WAV 文件,请使用
// 参数:CaptureMode_VO_MPEG4_FILE | CaptureMode_AO_WAV_FILE
#define CaptureMode_VA_MPEG4_FILE 0xffffffff // OCX取值为:1 捕捉音视频复合的 MPEG4 文件
#define CaptureMode_VO_MPEG4_FILE 0xfff70000 // OCX取值为:2 捕捉只有视频的 MPEG4 文件
#define CaptureMode_VO_YUY2_FILE 0xfff00000 // OCX取值为:4 捕捉未压缩 YUY2 文件
#define CaptureMode_VO_USER 0xff000000 // OCX取值为:8 将捕捉到的视频流提供给用户
#define CaptureMode_AO_WAV_USER 0x000000ff // OCX取值为:16 将捕捉到的未压缩音频流提供给用户
#define CaptureMode_AO_ADPCM_USER 0x00000fff // OCX取值为:32 将捕捉到的压缩音频ADPCM流提供给用户
#define CaptureMode_AO_WAV_FILE 0x0000fff7 // OCX取值为:64 捕捉音视流保存为 .WAV 文件
// 定义 MPEG4 捕捉时工作模式
typedef enum
{
MPEG4Mode_ToFile = 0x00, // 只能用于捕捉成文件
MPEG4Mode_Both = 0x01, // 可以捕捉成文件也能网传
MPEG4Mode_ToTransmit = 0x02 // 只能用于网传
} MPEG4Mode;
// 视频压缩引擎的信息
// 用于函数:HxnDVR_EnumVidCompressor ()
typedef struct VIDCOMPRESSORINFO
{
char szName[128];
} VidCompressorInfo;
// 音频压缩引擎的信息
// 用于函数:HxnDVR_EnumAudCompressor()
typedef struct AUDCOMPRESSORINFO
{
char szName[128];
} AudCompressorInfo;
//定义用户消息
#define WM_ECHOBIRD_WINMSG WM_USER + 0x300
// 系统函数 - 对所有DVR设备全局堆进行初始化
DWORD WINAPI HxnDVR_Init ( HWND hWnd );
// 系统函数 - 对所有DVR设备全局堆占用资源进行释放
void WINAPI HxnDVR_UnInit ( void );
// 系统函数 - 获取DVR设备的实际总数量
DWORD WINAPI HxnDVR_GetDeviceAmount ( void );
// 系统函数 - 启动指定卡号的音视频设备, 可多次调用选择视频输入端口号
BOOL WINAPI HxnDVR_ConnectDevice ( DWORD dwCardID, VInput m_Insel = VInput_AV1 );
// 系统函数 - 关闭指定卡号的音视频设备
void WINAPI HxnDVR_DisconnectDevice ( DWORD dwCardID );
// 系统函数 - 判断当前设备是否已经启动
BOOL WINAPI HxnDVR_IsConnected ( DWORD dwCardID );
// 系统函数 - 设置捕捉视频流类型
BOOL WINAPI HxnDVR_SetVSubType ( DWORD dwCardID, VSubType subType );
// 系统函数 - 设置当前设备要显示视频制式
BOOL WINAPI HxnDVR_SetVStandard ( DWORD dwCardID, VStandard vformat );
// 系统函数 - 设置捕捉视频属性(亮度、对比度、色度、饱和度和锐度(清晰度)等)
BOOL WINAPI HxnDVR_SetVPropertyValue ( DWORD dwCardID, VProperty pro, DWORD dwValue );
// 系统函数 - 获取捕捉视频尺寸大小
void WINAPI HxnDVR_GetVidCapSize ( DWORD dwCardID, DWORD * dwCapWidth, DWORD * dwCapHeight );
// 系统函数 - 设置捕捉视频尺寸大小
BOOL WINAPI HxnDVR_SetVidCapSize ( DWORD dwCardID, DWORD dwCapWidth, DWORD dwCapHeight );
// 系统函数 - 获取显示、快照视频尺寸大小
void WINAPI HxnDVR_GetVidPreSize ( DWORD dwCardID, DWORD * dwCapWidth, DWORD * dwCapHeight );
// 系统函数 - 设置显示、快照视频尺寸大小
BOOL WINAPI HxnDVR_SetVidPreSize ( DWORD dwCardID, DWORD dwCapWidth, DWORD dwCapHeight );
// 系统函数 - 获取当前使用视频压缩卡的ID号, 必须先调用 HxnDVR_Init
BOOL WINAPI HxnDVR_GetCurrentCardID ( BYTE RegID[32] );
// 系统函数 - 将YUY2数据转换成RGB24数据
BOOL WINAPI HxnDVR_YUY2RGB24 ( void * dstBuf, void * srcBuf, DWORD dwWidth, DWORD dwHigh );
// 显示函数 - 是否显示指定卡号的视频图像
BOOL WINAPI HxnDVR_ShowWindow ( DWORD dwCardID, BOOL isShow );
// 显示函数 - 当只需要显示单路尺寸高度大于288请使用此函数
BOOL WINAPI HxnDVR_SetOneScreenAnomaly ( DWORD dwCardID, HWND hWnd, RECT *rc );
// 显示函数 - 当只需按网格方式显示四路每路视频尺寸高度大于288请使用此函数
BOOL WINAPI HxnDVR_SetFourScreenAnomaly ( DWORD dwCardID1, DWORD dwCardID2, DWORD dwCardID3, DWORD dwCardID4, HWND hWnd, RECT *rc );
// 显示函数 - 设定指定卡号的视频图像位置,并由 HxnDVR_ShowWindow 决定是否显示
BOOL WINAPI HxnDVR_SetWindowPos ( DWORD dwCardID, HWND hWnd, RECT *rc );
// 显示函数 - 全屏显示或恢复正常显示指定卡号的视频设备
BOOL WINAPI HxnDVR_SetFullScreen ( DWORD dwCardID, BOOL isFull );
// 显示函数 - 设置不规则窗口函数
BOOL WINAPI HxnDVR_SetScreenAnomaly ( RECT * rcLogic,
RECT * rcWndPos,
CAP_WND_POS * pCardPos,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -