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

📄 dvrsdk.h

📁 影像采集卡开发源程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/*************************************************
**
** 文件名: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 + -