流媒体采集卡

您现在的位置: 九视品牌 >> 流媒体采集卡 >> 正文

九视电子USB视频采集卡SDK函数说明

作者:九视视频网 来源:www.xiangb.com 发表时间: 2011-4-1

USB采集卡体积小巧,流行外观设计,外型小巧美观,功能强劲,携带方便,能够即插即用,支持热插拔,带有先进的USB2.0高速接口,不需要外接电源,性能稳定,兼容性好,可捕捉高品质动态及静态画面,支持内置 USB 2.0 接口的笔记本电脑。并带有一键抓拍功能。

  九视T301 USB视频采集卡是一款专业级的视频采集设备,带有VC二次开发包SDK,并带有完整DEMO源程序,其带有视频抓拍、视频录像、翻转、定时录像等功能。这款专业级USB视频采集卡采用高速USB2.0接口设计,支持四路视频输入,可以通过视频S端子或者Video端子来接入视频。广泛应用于安防、医疗、生产、运输、商业、金融等领域,产品功能完善,性能稳定,采集质量佳。并免费提供二次开发包,以满足不同用户的使用需求。

  USB采集卡体积小巧,流行外观设计,外型小巧美观,功能强劲,携带方便,能够即插即用,支持热插拔,带有先进的USB2.0高速接口,不需要外接电源,性能稳定,兼容性好,可捕捉高品质动态及静态画面,支持内置 USB 2.0 接口的笔记本电脑。并带有一键抓拍功能。

  下面我们详细介绍下T301 USB视频采集卡SDK函数说明

  HYUtil.DLL 使用说明 (for VC++ 6.0)

  操作系统:Windows 2000/WinXp

  一、编译环境

  1、 将 HYUtil.lib Shlwapi.lib(系统文件) 文件加入工程设置的“Link – General – Object/library module”中。

  2、 在工程中包含HYUtil.h头文件。

  3、 将HYUtil.dll、RenderDraw.ax、YuvComplex.dll、yuvConvert.ax、yuvDeinterlace.ax、MediaCodec.dll 文件拷

  入到系统路径或搜索目录中。发布时,请注册yuvConvert.ax、yuvDeinterlace.ax、RenderDraw.ax到用户环境。

  4、 编写代码。

  二、函数说明:

  1 数据常量介绍

  #define ERR_SUCCESS 0 说明:函数成功调用。

  #define ERR_FAILED 1 说明:函数调用过程中出现未知错误。

  #define ERR_NOTAVAILABLE 2 说明:函数调用无效,多发生于执行环境错误的场合。

  #define ERR_NODEVICE 101 说明:没有发现有效的USB采集设备。

  #define ERR_DIRECTX_SETUP 102 说明:在设备操作过程中,出现了DirectX运行错误,通常由DirectX版本太低引起。

  #define ERR_DEV_NOTOPEN 104 说明:设备处于关闭状态,不能对其进行操作。

  #define ERR_NOTSUPPORT 105 说明:功能调用目前不被支持。

  #define ERR_GRAPH_CONNECT 107 说明:Filter连接过程出现错误。

  #define ERR_DEVICE_RUN 108 说明:Graph 不能按要求运行。

  #define ERR_NOT_MEMIMG 109 说明:不是本系统支持的内存印像

  #define ERR_SNAPSHOT_END 200 说明:快照操作已终止的情况下调用HYGetSnapShot返回的错误

  #define ERR_WAIT_TIMEOUT 201 说明:操作等待超时。

  #define ERR_BUFFER_TOOSMALL 202 说明:用户分配的缓冲区太小,不足以完成当前操作。

  #define ERR_DEVICE_STATE 203 说明:当前设备状态不允许对其进行指定操作。

  #define ERR_INSUFFICIENT_RESOURCES 204 说明:系统资源不足,多发生于内存资源不足。

  #define ERR_INVALID_PARAM 205 说明:无效的函数调用参数。

  2.3 SDK 导出函数说明:

  UINT WINAPI HYInitialize()

  说明:初始化SDK,建立系统运行所需要的环境。

  参数:无

  返回:ERR_SUCCESS:成功。

  其他:失败。失败原因由返回值给出。

  void WINAPI HYUninitialize()

  说明:反初始化SDK,释放系统资源。

  参数:无

  返回:无

  int WINAPI HYGetDevCnt()

  说明:获取本系统安装的USB采集设备数量。

  参数:无

  返回:采集设备数量,如小于等于0,则表示没有检测到采集设备。

  4 UINT WINAPI HYOpenDev(UINT unIndex)

  说明:打开USB采集设备,对设备进行各种操作之前都必需先打开设备。

  参数:UINT unIndex:基于0的设备索引,范围0 -(MaxDevCount-1)

  返回:ERR_SUCCESS:成功。

  其他:操作失败。

  可能原因:1、无效的设备索引。

  2、DirectX操作失败。

  其他原因请参照返回代码。

  UINT WINAPI HYCloseDev(UINT unIndex)

  说明:关闭采集设备,释放系统资源。

  参数:UINT unIndex:基于0的设备索引,范围0 -(MaxDevCount-1)

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  6 UINT WINAPI HYPortSpeed(UINT unIndex,BOOL &bHighSpeedPort)

  说明:获取USB端口速度。

  参数:UINT unIndex: 基于0的设备索引,范围0 -(MaxDevCount-1)

  BOOL &bHighSpeedPort: 输出参数,返回用户USB设备所对应端口的操作速度。

  TRUE :端口满足USB 2.0接口规范,为高速端口

  FALSE:端口满足USB 1.1接口规范,为低速端口

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  7 UINT WINAPI HYSetOwnerWnd(UINT unIndex,HWND hWnd)

  说明:设置视频输出窗口。

  参数:UINT unIndex:基于0的设备索引。

  HWND hWnd:视频输出窗口,亦即用户看到视频图像的窗口。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  8 UINT WINAPI HYStartDevice(UINT unIndex)

  说明:运行设备,开始进行数据采集(用于各项采集参数设置完成后)。

  参数:UINT unIndex:基于0的设备索引。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  9 UINT WINAPI HYStopDevice(UINT unIndex)

  说明:停止设备,数据采集过程结束。

  参数:UINT unIndex:基于0的设备索引。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  10 UINT WINAPI HYGetVideoPropRange(UINT unIndex,VIDEOPROP enProp,int &nMax,int &nMin,int &nDefault)

  说明:获取亮度/色度/对比度等属性指标的参数范围。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOPROP enProp:待查询参数范围的视频属性。(VIDEOPROP的说明如前述)

  int & nMax:输出参数,对应于enProp属性所能选取的最大值。

  int & nMin:输出参数,对应于enProp属性所能选取的最小值。

  int & nDefault:输出参数,对应于enProp属性的系统默认值。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  11 UINT WINAPI HYGetVideoProp(UINT unIndex,VIDEOPROP enProp,int &nValue)

  说明:获取视频显示属性的当前设置值,包括亮度/色度/饱和度/对比度/清晰度等。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOPROP enProp :需获取的视频属性。

  int &nValue :输出参数,用于返回当前视频显示属性值

  定义:

  1、视频属性

  typedef enum {

  VIDEO_BRIGHTNESS = 1, //视频亮度, 默认值 128

  VIDEO_CONTRAST, //视频对比度, 默认值 68

  VIDEO_HUE, //视频色度, 默认值 0

  VIDEO_SATURATION, //视频饱和度, 默认值 64

  VIDEO_SHARPNESS //视频锐度, 默认值 0

  }VIDEOPROP;

  返回:ERR_SUCCESS:操作成功,当前视频显示属性值由nValue变量返回。

  其他:操作失败。

  可能原因:1、无效的设备索引

  2、设备没有成功执行Open操作

  其他失败原因请参照返回代码。

  12 UINT WINAPI HYSetVideoProp(UINT unIndex,VIDEOPROP enProp,int nValue)

  说明:设置视频显示属性值,包括亮度/色度/饱和度/对比度/清晰度等。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOPROP enProp :需设定的视频属性,参见前述对VIDEOPROP的说明

  LONG nValue :设定的视频属性值,范围请参见HYGetVideoPropRange的返回值

  返回:ERR_SUCCESS:成功。

  其他:操作失败。

  可能原因:1、无效的设备索引

  2、设备没有成功执行Open操作

  3、视频属性值超过设置范围。

  其他失败原因请参照返回代码。

  13 UINT WINAPI HYGetVideoSize(UINT unIndex,UINT &unSizeX,UINT &unSizeY)

  说明:获取当前视频采集尺寸。

  参数:UINT unIndex:基于0的设备索引。

  UINT &unSizeX:输出参数,用于返回当前视频采集尺寸的宽度。

  UINT &unSizeY:输出参数,用于返回当前视频采集尺寸的高度。

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  14 UINT WINAPI HYSetVideoSize(UINT unIndex,UINT unSizeX,UINT unSizeY)

  说明:设置视频采集尺寸。该操作应该在设备停止状态下进行。

  参数:UINT unIndex:基于0的设备索引。

  UINT unSizeX:视频采集尺寸的宽度。

  UINT unSizeY:视频采集尺寸的高度。

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  15 UINT WINAPI HYGetVideoFmt(UINT unIndex,VIDEOFMT &enFmt)

  说明:获取当前视频采集格式。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOFMT &enFmt:输出参数,返回当前视频采集格式,可能的格式包括YUY2和Y41P。

  定义:

  1、视频格式

  typedef enum {

  FMT_YUY2 = 1, //YUY2包模式

  FMT_Y41P, //Y41P包模式

  FMT_RGB,

  FMT_UNKNOWN

  }VIDEOFMT;

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  16 UINT WINAPI HYSetVideoFmt(UINT unIndex,VIDEOFMT enFmt)

  说明:设置视频采集格式。该操作应该在设备停止状态下进行。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOFMT enFmt:视频采集格式。目前支持选项包括FMT_YUY2和FMT_Y41P。

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  17 UINT WINAPI HYGetVideoStd(UINT unIndex,VIDEOSTD &enStd)

  说明:获取视频信号输入标准。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOSTD &enStd: 输出参数,用于返回当前视频信号输入标准。

  定义:

  1、视频标准

  typedef enum {

  STD_PAL = 1, //PAL 制式, 帧率最大25 fps

  STD_NTSC, //NTSC制式, 帧率最大30 fps

  STD_SECAM, //SECAM制式,帧率最大25 fps

  STD_UNKNOW

  }VIDEOSTD;

  返回:ERR_SUCCESS:操作成功,当前视频标准由enStd变量返回。

  其他:操作失败。失败原因由返回代码给出。

  18 UINT WINAPI HYSetVideoStd(UINT unIndex,VIDEOSTD enStd)

  说明:设置视频信号输入标准。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOSTD enStd: 新的视频信号输入标准,请参见前述对VIDEOSTD的说明

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  19 UINT WINAPI HYGetScanMode(UINT unIndex,SCANMODE &enScanMode)

  说明:获取视频信号的当前采集模式,包括帧和场两种方式。

  参数:UINT unIndex:基于0的设备索引。

  SCANMODE &enScanMode:输出参数,用于返回当前的采集模式,系统通常工作在帧采集模式下。

  定义:

  1、采集模式:

  typedef enum {

  SCAN_FIELD = 1, //单场采集模式,不用做反交错处理

  SCAN_FRAME //帧采集模式,奇偶场信号均被采集,需进行进行反交错处理以消除拉丝现象。

  }SCANMODE;

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  20 UINT WINAPI HYSetScanMode(UINT unIndex,SCANMODE enScanMode)

  说明:设置视频信号的当前采集模式,包括帧和场两种方式。

  参数:UINT unIndex:基于0的设备索引。

  SCANMODE enScanMode:新的视频采集模式,可能的选项包括帧模式和场模式。

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  21 UINT WINAPI HYGetVideoSrc(UINT unIndex,VIDEOSRC &enSrc)

  说明:获取当前视频源设置。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOSRC & enSrc:输出参数,用于返回当前视频源设置。视频源请参见前述VIDEOSRC说明。

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  22 UINT WINAPI HYSetVideoSrc(UINT unIndex,VIDEOSRC enSrc,BOOL bSafeSwitch)

  说明:设置当前视频源。(建议在设备处于停止状态时调用)

  参数:UINT unIndex:基于0的设备索引。

  VIDEOSRC enSrc:待设置的视频源。

  BOOL bSafeSwitch:安全设置开关。

  TRUE:如果设备当前处于运行状态,函数将返回ERR_DEVICE_STATE错误值。

  FALSE:不对设备状态进行检测,直接完成设置视频源操作。

  定义:

  1、视频源:

  typedef enum {

  SRC_AV1 = 1, //AV1,系统默认视频源

  SRC_AV2, //AV2

  SRC_AV3, //AV3

  SRC_AV4, //AV4

  SRC_SV1 //SV1

  }VIDEOSRC;

  返回:ERR_SUCCESS:成功。

  其他:操作失败。失败原因由返回代码给出。

  23 UINT WINAPI HYVideoPresent(UINT unIndex,BOOL &bVideoPresent)

  说明:获取视频信号状态,以确定当前是否有视频信号存在。

  参数:UINT unIndex:基于0的设备索引。

  BOOL &bVideoPresent:输出参数,用于返回当前视频信号状态。为TRUE表示有信号,FALSE表示

  无信号

  返回:ERR_SUCCESS:操作成功,视频信号状态由变量bVideoPresent返回。

  其他:操作失败。失败原因由返回代码给出。

  24 UINT WINAPI HYGetProcMethod(UINT unIndex,PROCMETHOD &enMethod)

  说明:获取设备当前采用的视频处理方法。(视频反交错处理方法)

  参数:UINT unIndex:基于0的设备索引。

  PROCMETHOD &enMethod:输出参数,用于返回当前视频处理方法。

  定义:

  1、视频处理方法

  typedef enum {

  METHOD_SAMPLE = 1, //简单处理方法

  METHOD_NORMAL, //基本处理方法

  METHOD_COMPLEX, //高级处理方法

  METHOD_PASS, //视频数据直通

  METHOD_UNKNOWN

  }PROCMETHOD;

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  25 UINT WINAPI HYSetProcMethod(UINT unIndex,PROCMETHOD enMethod)

  说明:设置设备视频处理方法。(视频反交错处理方法)

  参数:UINT unIndex:基于0的设备索引。

  PROCMETHOD enMethod:待设置的新的视频处理方法。请参见HYGetProcMethod函数说明。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  26 UINT WINAPI HYGetFieldSeq(UINT unIndex,BOOL &bTopFieldFirst)

  说明:获取设备当前采用的场处理顺序。(用于视频反交错处理)

  参数:UINT unIndex:基于0的设备索引。

  BOOL &bTopFieldFirst:输出参数,用于返回当前采用的场处理顺序。

  TRUE:顶场优先

  FALSE:底场优先

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  27 UINT WINAPI HYSetFieldSeq(UINT unIndex,BOOL bTopFieldFirst)

  说明:设置设备当前采用的场处理顺序。(用于视频反交错处理)

  参数:UINT unIndex:基于0的设备索引。

  BOOL bTopFieldFirst:新的场处理顺序。TRUE:顶场优先,FALSE:底场优先

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  28 UINT WINAPI HYReadEprom (UINT unIndex,PBYTE pBuffer,UINT nStartPos,UINT nLen)

  说明:读出Eeprom中特定位置的内容信息。

  参数:UINT unIndex:基于0的设备索引。

  PBYTE pBuffer:用户申请的缓冲区地址,用于保存读出的Eeprom内容。

  UINT nStartPos:待读出内容的Eeprom子地址,取值范围0-127。

  UINT nLen:请求读出的信息长度,以字节为单位。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  29 UINT WINAPI HYWriteEprom(UINT unIndex,PBYTE pBuffer,UINT nStartPos,UINT nLen)

  说明:读出Eeprom中特定位置的内容信息。

  参数:UINT unIndex:基于0的设备索引。

  PBYTE pBuffer:保存有待写入Eeprom信息的用户缓冲区地址。

  UINT nStartPos:待写入Eeprom的子地址偏移,取值范围0-127。

  (建议用户不要随意修改前16字节内容)

  UINT nLen:待写入的信息长度,以字节为单位。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  30 UINT WINAPI HYSetPlayEffect (UINT unIndex,VIDEOEFFECT enEft)

  说明:设置视频播放效果。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOEFFECT enEft:待设置的视频播放效果。

  定义:

  1、视频播放效果

  typedef enum

  {

  EFT_NORMAL = 1, //普通显示效果

  EFT_GOOD //增强显示效果(更流畅、清晰,但会占用更多的CPU资源)

  }VIDEOEFFECT;

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  31 UINT WINAPI HYGetSnapRect(UINT unIndex,long &nLeft,long &nTop,long &nRight,long &nBottom)

  说明:获取当前快照矩形设置。(定义:视频区域左上角坐标为(0,0),从左往右为x正向,由上到下为y正向)

  参数:UINT unIndex:基于0的设备索引。

  long & nLeft:输出参数,用于返回快照矩形相对于坐标原点的左边位置

  long & nTop:输出参数,用于返回快照矩形相对于坐标原点的上边位置

  long & nRight:输出参数,用于返回快照矩形相对于坐标原点的右边位置

  long &nBottom:输出参数,用于返回快照矩形相对于坐标原点的下边位置

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  32 UINT WINAPI HYSetSnapRect(UINT unIndex,long nLeft, long nTop, long nRight, long nBottom)

  说明:设置快照矩形。(定义:视频区域左上角坐标为(0,0),从左往右为x正向,由上到下为y正向)

  参数:UINT unIndex:基于0的设备索引。

  long nLeft:左,详细定义参见函数说明HYGetSnapRect

  long nTop:上,详细定义参见函数说明HYGetSnapRect

  long nRight:右,详细定义参见函数说明HYGetSnapRect

  long nBottom:下,详细定义参见函数说明HYGetSnapRect

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  33 UINT WINAPI HYMirrorHorizon (UINT unIndex,BOOL bMirrorHorizon)

  说明:设置图片快照水平镜象。

  参数:UINT unIndex:基于0的设备索引。

  BOOL bMirrorHorizon:快照图片水平镜象设置。

  TRUE:对快照图片进行水平翻转

  FALSE:不对快照图片进行水平镜象(系统默认)

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  34 UINT WINAPI HYMirrorVertical(UINT unIndex,BOOL bMirrorVertical)

  说明:设置图片快照垂直镜象。

  参数:UINT unIndex:基于0的设备索引。

  BOOL bMirrorHorizon:快照图片垂直镜象设置。

  TRUE:对快照图片进行垂直翻转

  FALSE:不对快照图片进行垂直镜象(系统默认)

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  35 UINT WINAPI HYPreAllocBuf(UINT unIndex,long nPreAllocFrames)

  说明:设置预分配帧缓冲数量。

  参数:UINT unIndex:基于0的设备索引。

  long nPreAllocFrames:预分配帧缓冲数量,取值范围3-100(默认值3)

  系统需要进行帧缓冲的预分配以进行连续抓拍,建议谨慎调整

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  36 UINT WINAPI HYGetAllocBuf(UINT unIndex,long *nAllocFrames)

  说明:获取实际分配的帧缓冲数量。

  参数:UINT unIndex:基于0的设备索引。

  long * nAllocFrames:输出参数,用于返回实际分配的帧缓冲数量。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  37 UINT WINAPI HYRegNotifyWnd(UINT unIndex,HWND hWnd,BOOL bOnlyKeyDown)

  说明:注册用于接收系统消息的通知窗口。

  参数:UINT unIndex:基于0的设备索引。

  BOOL bOnlyKeyDown:是否仅仅接收设备按键消息。

  TRUE:仅接收设备按键消息WM_SNAP_KEYDOWN。

  FALSE:接收所有系统通知消息,包括WM_SNAP_KEYDOWN和WM_VIDEODATA

  (可能消耗更多的系统资源,如无必要请不要选择该种方式)

  HWND hWnd:用于接收系统消息的通知窗口句柄。系统消息主要包括:

  WM_VIDEODATA: 当系统处于快照或回调状态,且采集到完整帧时发出该消息。

  WM_SNAP_KEYDOWN:当设备上的按键被按下时,系统发出该消息。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  38 UINT WINAPI HYStartSnap(UINT unIndex,long nPictures,long nInterval)

  说明:开始图片快照。如果当前系统处于回调状态,函数调用将返回错误ERR_DEVICE_STATE。用户有两

  种方式获取图片快照,两种方式都需要先调用该函数以开始图片快照过程。

  其一:逐次调用HYGetMemSnap,以获取快照图片数据,直到获得需要的快照图片数量。编程形式

  如下:

  HYStartSnap(...)

  while(nPictures--)

  {

  HYGetMemSnap(...);

  if(bNeedPaint)

  PaintMemImg(...);

  if(bNeedSave)

  SnapVideoImage(...);

  }

  其二:通过响应系统消息WM_VIDEODATA来处理快照数据。前提是需要先注册消息通知窗口。

  ON_MESSAGE(WM_VIDEODATA,OnSnapCommit)

  LRESULT afx_msg OnSnapCommit(WPARAM wParam,LPARAM lParam);

  LRESULT OnSnapCommit(WPARAM wParam,LPARAM lParam)

  {

  UINT unState = (UINT)wParam;

  if(unState == OPER_SNAPSHOT) //系统当前处于图片快照状态

  {

  HYGetMemSnap(...);

  if(bNeedPaint)

  PaintMemImg(...);

  if(bNeedSave)

  SnapVideoImage(...);

  }

  else //系统当前处于视频数据回调状态

  {

  }

  }

  参数:UINT unIndex:基于0的设备索引。

  long nPictures:快照图片张数。

  long nInterval:快照时间间隔,单位:帧。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  39 UINT WINAPI HYCancelSanp(UINT unIndex)

  说明:终止当前快照操作过程。

  参数:UINT unIndex:基于0的设备索引。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  40 UINT WINAPI HYGetImgBufsize (UINT unIndex,long *pnSize,VIDEOFMT enFmt)

  说明:获取快照图片所需内存尺寸。

  参数:UINT unIndex:基于0的设备索引。

  VIDEOFMT enFmt:请求快照图片格式,目前支持FMT_YUY2和FMT_RGB两种。

  long *pnSize:输出参数,用于返回快照图片所需内存尺寸,用户可按照这个尺寸进行

  内存空间的分配。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  41 UINT WINAPI HYGetMemSnap(UINT unIndex,BYTE *pImgBuf,long nSize,VIDEOFMT enFmt,DWORD dwTimeout)

  说明:获取快照数据。在超时设置dwTimeout时间范围内,该函数将处于阻塞状态。

  参数:UINT unIndex:基于0的设备索引。

  BYTE * pImgBuf:用于接收快照图片的用户缓冲区地址。

  long nSize:用户缓冲区尺寸,可通过HYGetImgBufsize函数获得。

  VIDEOFMT enFmt:请求快照图片格式,目前支持FMT_YUY2和FMT_RGB两种。

  DWORD dwTimeout:快照超时,单位毫秒。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  42 UINT WINAPI HYPaintMemImg(BYTE *pImgBuf,long nSize,HWND hPaintWnd)

  说明:显示快照图片到指定绘画窗口,系统将接管该窗口的WM_PAINT消息,用户不用处理窗口重绘等消息。

  该函数必须结合HYEndPaint函数使用以结束绘画过程。

  参数:BYTE * pImgBuf:内存快照数据缓冲地址。通常由函数HYGetMemSnap获取快照数据。

  long nSize:缓冲区尺寸。

  HWND hPaintWnd:绘画窗口。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  43 UINT WINAPI HYPaintDiskImg(LPCTSTR szFileName,HWND hPaintWnd)

  说明:显示存盘图片文件到绘画窗口,系统处理方法同HYPaintMemImg,该函数必须结合HYEndPaint函数使

  用以结束绘画过程。

  参数:LPCTSTR szFileName:磁盘文件名,包括全路径。

  HWND hPaintWnd:绘画窗口。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  44 UINT WINAPI HYEndPaint(HWND hPaintWnd)

  说明:结束图片显示过程。

  参数:HWND hPaintWnd:绘画窗口。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  45 UINT WINAPI HYSaveImgAsJpg(BYTE *pImgBuf,long nSize,LPCTSTR szJpgFileName,long nQuality)

  说明:将内存快照存为Jpg文件。

  参数:BYTE * pImgBuf:内存快照数据缓冲地址。通常由函数HYGetMemSnap获取快照数据。

  long nSize:缓冲区尺寸。

  LPCTSTR szJpgFileName:Jpg文件名。包含全路径。

  long nQuality:Jpg文件压缩质量,范围从1-100,100为最好。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  46 UINT WINAPI HYSaveImgAsBmp(BYTE *pImgBuf,long nSize,LPCTSTR szBmpFileName)

  说明:将内存快照存为Bmp文件。

  参数:BYTE * pImgBuf:内存快照数据缓冲地址。通常由函数HYGetMemSnap获取快照数据。

  long nSize:缓冲区尺寸。

  LPCTSTR szBmpFileName:Bmp文件名。包含全路径。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  47 UINT WINAPI HYStartCallback (UINT unIndex)

  说明:开始视频数据回调过程。当系统采集到视频数据时,会通过向用户注册窗口发送WM_VIDEODATA

  消息的方式来通知用户。

  参数:UINT unIndex:基于0的设备索引。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  48 UINT WINAPI HYStopCallback (UINT unIndex)

  说明:停止视频数据回调过程。

  参数:UINT unIndex:基于0的设备索引。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  49 UINT WINAPI HYGetVideoData(UINT unIndex,BYTE **ppStreamBuf,long *pnSize,

  long *pnWidth,long *pnHeight,DWORD dwTimeout)

  说明:获取回调视频数据。该功能调用将导致视频缓冲区引用计数加一,所以必须结合

  HYFreeVideoBuf使用以释放该缓冲区。

  参数:UINT unIndex:基于0的设备索引。

  BYTE **ppStreamBuf:输出参数,返回的缓冲区地址存放在(*ppStreamBuf)中。

  long * pnSize:输出参数,用于返回缓冲区尺寸。

  long * pnWidth:输出参数,用于返回视频宽度。

  long * pnHeight:输出参数,用于返回视频高度。

  DWORD dwTimeout:超时设置。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  50 UINT WINAPI HYFreeVideoBuf(UINT unIndex,BYTE *pStream)

  说明:释放由HYGetVideoData功能调用获取的视频缓冲区。

  参数:UINT unIndex:基于0的设备索引。

  BYTE * pStream:由功能调用HYGetVideoData获取的视频缓冲区指针。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  51 UINT WINAPI HYGetScreenBmp(HWND hWnd,BYTE **ppImgBuf,long *pnSize)

  说明:获取快照显示窗口的屏幕位图。

  参数:HWND hWnd:快照显示窗口句柄。

  BYTE **ppImgBuf:输出参数,用于返回快照显示内容所对应的内存缓冲区。

  long *pnSize:输出参数,内存缓冲区尺寸。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  52 UINT WINAPI HYFullScreen(UINT nIndex,BOOL bFullScreen)

  说明:将显示窗口放大到全屏。在多设备环境下不推荐使用。

  参数:UINT unIndex:基于0的设备索引。

  BOOL bFullScreen: TRUE:全屏显示模式

  FALSE:窗口显示模式

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  OSD 使用函数介绍:

  53 HANDLE WINAPI HYOpenComplexFile(UINT unIndex,LPCTSTR szFileName)

  说明:打开OSD复合文件。

  参数:UINT unIndex: 基于0的设备索引。

  LPCTSTR szFileName:OSD复合文件名称。

  返回:操作成功,返回OSD复合文件句柄。操作失败,返回NULL。

  54 UINT WINAPI HYCloseComplexFile(UINT unIndex,HANDLE hHandle)

  说明:关闭OSD复合文件,释放相关资源。

  参数:UINT unIndex:基于0的设备索引

  HANDLE hHandle:已经打开的OSD复合文件句柄。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  55 UINT WINAPI HYSetComplexEffect(UINT unIndex,HANDLE hHandle,BOOL bTransparence);

  说明:设置叠加方式,包括透明叠加和非透明叠加,该操作允许实时调用。

  参数:UINT unIndex: 基于0的设备索引。

  HANDLE hHandle: 复合文件内存句柄。

  BOOL bTransparence:TRUE:透明叠加,FALSE:非透明叠加。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  56 UINT WINAPI HYSetComplexPos(UINT unIndex,HANDLE hHandle,long nStartX,long nStartY)

  说明:设置OSD叠加位置。

  参数:UINT unIndex:基于0的设备索引。

  HANDLE hHandle:OSD复合文件内存句柄。

  long nStartX:基于原点(0,0)的复合位置X

  long nStartY:基于原点(0,0)的复合位置Y

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  57 UINT WINAPI HYComplexEnable(UINT unIndex,HANDLE hHandle,BOOL bEnable)

  说明:开始/停止OSD叠加。

  参数:UINT unIndex:基于0的设备索引。

  HANDLE hHandle:OSD复合文件内存句柄。

  BOOL bEnable:TRUE:开始复合,FALSE:停止复合。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  58 UINT WINAPI HYGetComplexSize (UINT unIndex,HANDLE hHandle,long *pnSizeX,long *pnSizeY)

  说明:获取复合映像尺寸,以点为单位。

  参数:UINT unIndex:基于0的设备索引。

  HANDLE hHandle:OSD复合文件内存句柄。

  long *pnSizeX:输出参数,用于返回复合映像的宽度。

  long *pnSizeY:输出参数,用于返回复合映像的高度。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败,错误原因由返回代码给出。

  OSD制作函数介绍:

  59 BOOL WINAPI HYStartupOsdMake()

  说明:初始化OSD制作环境。该函数为进行OSD文件制作时需调用的第一个函数。

  参数:无

  返回:TRUE:成功;FALSE:失败。

  60 void WINAPI HYShutdownOsdMake()

  说明:释放OSD制作所需资源,这是OSD制作需调用的最后一个函数。

  参数:无。

  返回:无。

  61 long WINAPI HYGetFontFamilyCount()

  说明:获取系统支持的OSD字体数量。

  参数:无

  返回:系统支持的字体数量。

  62 BOOL WINAPI HYGetFontFamilyName(long nIndex,char szName[256])

  说明:获取系统字体名称。

  参数:long nIndex: 基于0的索引,范围0 -(字体数量-1)

  char szName[256]:用于返回字体名称的缓冲区。

  返回:TRUE:成功。FALSE:失败。

  63 BOOL WINAPI HYCreateImgComplexFile(LPCTSTR szFileName,LPCTSTR szImgName,

  COLORREF clrBack,HWND hPaintWnd)

  说明:创建图片复合文件。

  参数:LPCTSTR szFileName:输出文件名称。

  LPCTSTR szImgName:待复合的图片文件名称。包含全路径。

  COLORREF clrBack:背景色,用于透明叠加时进行色彩过滤。

  HWND hPaintWnd:绘图窗口句柄,该函数要求用户给出一个绘图窗口以实时

  浏览复合文件效果。

  返回:TRUE:创建成功,FALSE:创建失败。

  64 BOOL WINAPI HYCreateTxtComplexFile(LPCTSTR szFileName,

  CPX_FORMAT enComplexFmt,

  LPCTSTR szText,

  LPCTSTR szFontFamily,

  long nFontHeight,

  COLORREF clrText,

  int nSpacings,

  HWND hPaintWnd)

  说明:创建文本复合文件,这里的文本类型包括时间/日期/普通文本三种。

  参数:LPCTSTR szFileName: 输出文件名称。

  CPX_FORMAT enComplexFmt:复合文件类型,包括时间/日期/文本型。

  LPCTSTR szText: 复合文本

  LPCTSTR szFontFamily:文本字体名称。

  Long nFontHeight: 文本字体高度。

  CPX_COLOR clrText: 叠加文本前景色。

  CPX_COLOR clrBack: 叠加文本背景色。

  int nSpacings: 文本间隔。

  HWND hPaintWnd: 绘图窗口句柄,该函数要求用户给出一个绘图窗口

  以实时浏览复合文件效果。

  定义:

  1、复合类型:

  typedef enum{

  FORMAT_DATE = 1, //OSD日期叠加

  FORMAT_TIME, //OSD时间叠加

  FORMAT_STRING, //OSD字符叠加

  FORMAT_PICTURE, //图片叠加

  FORMAT_UNKNOWN

  }CPX_FORMAT;

  返回:TRUE:成功,FALSE:失败。

  65 CPX_FORMAT WINAPI HYGetComplexFileFormat(LPCTSTR szFileName)

  说明:获取复合文件类型。

  参数:LPCTSTR szFileName:复合文件名称。

  返回:复合文件类型。

  66 CPX_FORMAT WINAPI HYGetComplexFileFormatA(HANDLE hHandle)

  说明:获取复合文件类型的另一版本。

  参数:HANDLE hHandle:已经打开的复合文件句柄。

  返回:复合文件类型。

  67 BOOL WINAPI HYPreviewFile(HANDLE hHandle,HWND hPaintWnd)

  说明:预览复合文件效果。

  参数:HANDLE hHandle:已经打开的复合文件句柄。

  HWND hPaintWnd:绘图窗口,用于输出复合文件效果。

  返回:TRUE:成功。FALSE:失败。

  68 BOOL WINAPI HYPreviewFileA(LPCTSTR szFileName, HWND hPaintWnd)

  说明:预览复合文件效果的另一版本。

  参数:LPCTSTR szFileName:复合文件名称

  HWND hPaintWnd:绘图窗口,用于输出复合文件效果。

  返回:TRUE:成功。FALSE:失败。

  69 UINT WINAPI HYGetBusType(UINT unIndex,BUSTYPE &enBusType)

  说明:获取采集设备所使用的USB带宽分配类型。

  参数:UINT unIndex:基于0的设备索引。

  BUSTYPE &enBusType:输出参数,用于返回设备所使用的USB带宽分配类型。

  定义:

  1、总线传输类型

  typedef enum

  {

  BUS_SHARED = 1, //共享总线传输

  BUS_EXCLUSIVE //独占式总线传输(系统默认),兼容性较好,但CPU占用稍高于共享传输

  }BUSTYPE;

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  70 UINT WINAPI HYSetBusType(UINT unIndex,BUSTYPE enBusType)

  说明:设置采集设备所使用的USB带宽分配类型。

  参数:UINT unIndex:基于0的设备索引。

  BUSTYPE enBusType:USB带宽分配类型。参见HYGetBusType说明。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  71 UINT WINAPI HYSignalInterlaced(UINT unIndex,BOOL &bSignalInterlaced)

  说明:判断视频输入信号是隔行或逐行信号。

  参数:UINT unIndex:基于0的设备索引。

  BOOL &bSignalInterlaced:输出参数。TRUE:隔行信号,FALSE:逐行信号

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  72 UINT WINAPI HYDrawClipRect(UINT unIndex,long nLeft,long nTop,

  long nRight,long nBottom,COLORREF clrLine)

  说明:在视频显示窗口画矩形。主要用于设置抓拍区域。

  参数:UINT unIndex:基于0的设备索引。

  long nLeft,nTop:左上窗口客户坐标。

  long nRight,nBottom:右下窗口客户坐标。

  COLORREF clrLine:画笔颜色。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  73 UINT WINAPI HYGetSelectedRect(UINT unIndex,long &nLeft,long &nTop,

  long &nRight,long &nBottom)

  说明:获取设置的实际选择矩形,单位为点。

  参数:UINT unIndex:基于0的设备索引。

  long nLeft,nTop:矩形区域的左上坐标。

  long nRight,nBottom:矩形区域的右下坐标。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

  74 UINT WINAPI HYClearClipDraw(UINT unIndex)

  说明:清除函数HYDrawClipRect绘制的剪裁矩形。

  参数:UINT unIndex:基于0的设备索引。

  返回:ERR_SUCCESS:操作成功。

  其他:操作失败。失败原因由返回代码给出。

 

  相关链接:

  T301USB视频采集卡硬件

  USB视频采集卡专题




深圳九视电子科技有限公司从事九视电子系列视频采集卡图像采集卡高清录制盒HDMI采集卡SDI采集卡USB3.0采集卡高清视频采集卡USB视频采集卡视频信号转换器非编卡HDMI分配器HDMI切换器等视频产品研发,应用推广的专业公司.400-061-8657.


© 2002-2009 深圳九视电子科技有限公司 版权所有 | ICP备11049046号-2

销售热线: 400-061-8657 (总机)

销售地址:广东省深圳市宝安区西乡大道288号宝源华丰总部经济大厦B座529室