天敏VC4000 视频SDK帮助文档.docx
《天敏VC4000 视频SDK帮助文档.docx》由会员分享,可在线阅读,更多相关《天敏VC4000 视频SDK帮助文档.docx(26页珍藏版)》请在冰豆网上搜索。
![天敏VC4000 视频SDK帮助文档.docx](https://file1.bdocx.com/fileroot1/2022-11/21/d0b61b78-ea74-4287-99c2-de606af24717/d0b61b78-ea74-4287-99c2-de606af247171.gif)
天敏VC4000视频SDK帮助文档
版本2.0.0.2
发行日期:
2005.11
深圳天敏视讯科技版权所有
Sa7134Capture.DLL及Sa7130Capture.DLL动态库使用说明(forVC++6.0)
操作系统:
Windows2000/winxp
注:
10MOONSVC401P/404P产品对应动态库Sa7134Capture.DLL(相应头文件及lib文件为Sa7134Capture.h及Sa7134Capture.lib),10MOONSVC4000/8000产品对应动态库Sa7130Capture.DLL(相应头文件及lib文件为Sa7130Capture.h及Sa7130Capture.lib),以下仅以VC401P/404P为例说明。
一、编译环境:
1、将SDK安装目录下的Inc和Lib目录路径分别加入VC++工程设置的“C/C++-Preprocressor–Additionalincludedirectories”和“Link–Input–Additionallibrarypath”中。
2、将Lib\Sa7134Capture.lib文件加入工程设置的“Link–General–Object/librarymodule”中。
3、将Inc\Sa7134Capture.h文件加入工程,并#include“DSStream.h”。
4、将Exe\Sa7134Capture.DLL文件拷入系统目录或其他系统能找到的目录中。
5、开始编写代码。
该SDK文件即Sa7124Capture.DLL,输出功能在头文件Sa7134Capture.H文件中定义
二、函数说明:
函数修改:
BOOLWINAPIVCAInitSdk(HWNDhWndMain,BOOLbInitVidDev=TRUE,BOOLbInitAudDev=FALSE);
说明:
初始化SDK。
hWndMain:
overlay窗口句柄,overlay窗口就是包含多路显示小窗口的大窗口。
overlay窗口必须有一个,多路显示小窗口必须包含再其内部。
bInitVidDev:
是否初始化视频设备用于预览,当视频不显示,只需视频录像或音频处理时可以设置为FALSE.
bInitAudDev:
是否初始化音频设备用于声音播放,当不音频不需要播放,只需音频录像或视频处理时、或没有安装声卡,可以设置为FALSE.
新增函数:
//初始化视频
BOOLWINAPIVCAInitVidDev();
//初始化音频
BOOLWINAPIVCAInitAudDev();
2.1数据常量介绍
#defineERR_SUCCESS0
说明:
成功
#defineERR_NODEVICEFOUND1
说明:
系统找不到VC404(SAA7134)设备
#defineERR_UNSUPPORTFUNC2
说明:
不支持的函数
#defineERR_ALLOCRESOURCE3
说明:
分配资源错误
#defineERR_INITDIRECTDRAW4
error
说明:
初始化Directdraw错误
#defineERR_INITDIRECTSOUND5
说明:
初始化Directsound错误
2.2数据结构介绍
typedefenum{
RGB32=0x0,
RGB24=0x1,
RGB16=0x2,
RGB15=0x3,
YUY2=0x4,
BTYUV=0x5,
Y8=0x6,
RGB8=0x7,
PL422=0x8,
PL411=0x9,
YUV12=0xA,
YUV9=0xB,
RAW=0xE
}COLORFORMAT;
说明:
视频预览和视频捕捉数据流格式,系统目前这版本只支持YUY2格式
typedefenum{
BRIGHTNESS=0,
CONTRAST=1,
SATURATION=2,
HUE=3,
SHARPNESS=4,
}COLORCONTROL;
说明:
视频预览及视频捕获的显示属性,其中:
BRIGHTNESS为亮度,value范围:
0~255,最佳:
80
CONTRAST为对比度,value范围:
-128~127最佳:
0x44
SATURATION为饱和度,value范围:
-128~127最佳:
0x40
HUE为色度,value范围:
-128~127最佳:
0x0
只有当COLORDEVICETYPE等于COLOR_DECODER时HUE才有效。
SHARPNESS为锐度,value范围:
-8~7最佳:
0x0
只有当COLORDEVICETYPE等于COLOR_DECODER时SHARPNESS才有效。
typedefenum{
COLOR_DECODER=0,
COLOR_PREVIEW=1,
COLOR_CAPTURE=2
}COLORDEVICETYPE;
说明:
显示设备的显示属性,其中:
COLOR_DECODER为解码器的显示属性,它会影响视频预览和视频捕获的显示属性
COLOR_PREVIEW为视频预览的显示属性
COLOR_CAPTURE为视频捕获的显示属性
typedefenum{
CAP_NULL_STREAM=0,
CAP_ORIGIN_STREAM=1,
CAP_MPEG4_STREAM=2
}CAPMODEL;
说明:
音视频捕获方式,其中:
CAP_NULL_STREAM捕获无效
CAP_ORIGIN_STREAM捕获为原始流回调
CAP_MPEG4_STREAM捕获为MPEG4
typedefenum{
MPEG4_AVIFILE_ONLY=0,
MPEG4_CALLBACK_ONLY=1,
MPEG4_AVIFILE_CALLBACK=2
}MP4MODEL;
说明:
音视频MPEG4捕获方式,只有CAPMODEL等于CAP_MPEG4_STREAM时有效,其中:
MPEG4_AVIFILE_ONLY存为MPEG4文件
MPEG4_CALLBACK_ONLYMPEG数据回调
MPEG4_AVIFILE_CALLBACK存为MPEG文件并回调
typedefenum{
FIELD_FREQ_50HZ=0,
FIELD_FREQ_60HZ=1,
FIELD_FREQ_0HZ=2
}eFieldFrequency;
说明:
视频源的输入频率,其中:
FIELD_FREQ_50HZ50HZ,绝对多数为PAL制式
FIELD_FREQ_60HZ60HZ,绝对多数为NTSC制式
FIELD_FREQ_0HZ无信号
typedefenum{
HIGH_VOLTAGE=0,
LOW_VOLTAGE=1
}eVOLTAGELEVEL;
说明:
电平状态,其中:
HIGH_VOLTAGE高电平
LOW_VOLTAGE低电平
2.3SDK导出函数说明:
VC4000/VC8000/VC404P公有函数:
1、typedefvoid(CALLBACK*PrcCbMotionDetect)(DWORDdwCard,BOOLbMove,BYTE*pbuff,DWORDdwSize,LPVOIDlpContext)
说明:
动态检测回调.
参数:
dwCard:
返回的卡号.
bMove:
TRUE:
检测到物体移动开始,FALSE:
检测到物体移动结束。
pbuff:
原始数据的指针
dwSize:
原始数据缓冲区大小,单位字节
LpContext:
监测上下文
如果VCAEnableMotionDetect参数nPersistTime=-1;则回调运动检测地图。
取消(开始、停止)回调。
bMove将无效。
如果VCAEnableMotionDetect参数nPersistTime!
=-1;则回调开始、停止运动检测;取消回调运动检测地图。
pbuff、dwSize
将无效。
返回值:
无
2、typedefvoid(CALLBACK*PrcVidCapCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize)
说明:
视频捕获原始数据回调.
参数:
dwCard:
返回的卡号.
Pbuff:
视频原始数据的指针
dwSize:
视频原始数据缓冲区大小,单位字节
返回值:
无
3、typedefvoid(CALLBACK*PrcVidMpegCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize,BOOLisKeyFrm)
说明:
视频MPEG压缩数据回调.
参数:
dwCard:
返回的卡号.
Pbuff:
视频MPEG数据的指针
dwSize:
视频MPEG数据缓冲区大小,单位字节
isKeyFrm:
是否使用关键帧
返回值:
无
4、typedefvoid(CALLBACK*PrcAudCapCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize)
说明:
音频捕获原始数据回调.
参数:
dwCard:
返回的卡号.
Pbuff:
音频原始数据的指针
dwSize:
音频原始数据缓冲区大小,单位字节
返回值:
无
5、typedefvoid(CALLBACK*PrcAudMpegCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize)
说明:
音频MPEG压缩数据回调.
参数:
dwCard:
返回的卡号.
Pbuff:
音频MPEG数据的指针
dwSize:
音频MPEG数据缓冲区大小,单位字节
返回值:
无
6、typedefvoid(CALLBACK*PrcIoAlertCallBack)(DWORDdwCard)
说明:
IO报警回调.
参数:
dwCard:
返回的卡号.
返回值:
无
7、typedefvoid(CALLBACK*PrcVidMpegPorCallBack)(DWORDdwCard,BOOL*pPorcess)
说明:
视频Mpeg处理回调.
参数:
dwCard:
返回的卡号.
pPorcess:
设置为TRUE表示当前帧压缩;返回为FALSE表示丢掉当前帧.
返回值:
无
8、typedefvoid(CALLBACK*PrcAudMpegPorCallBack)(DWORDdwCard,BOOL*pPorcess)
说明:
音频Mpeg处理回调.
参数:
dwCard:
返回的卡号.
pPorcess:
设置为TRUE表示当前音频包压缩;返回为FALSE表示丢掉当前音频包.
返回值:
无
9、BOOLWINAPIVCARegVidCapCallBack(DWORDdwCard,PrcVidCapCallBackppCall)
说明:
注册视频捕获原始数据回调.
参数:
dwCard:
卡号.
ppCall:
需要注册的回调函数指针
返回值:
TRUE:
成功FALSE:
失败.
10、BOOLWINAPIVCARegVidMpegCallBack(DWORDdwCard,PrcVidMpegCallBackppCall)
说明:
注册视频MPEG压缩数据回调.
参数:
dwCard:
卡号.
ppCall:
需要注册的回调函数指针
返回值:
TRUE:
成功FALSE:
失败.
11、BOOLWINAPIVCARegAudCapCallBack(DWORDdwCard,PrcAudCapCallBackppCall)
说明:
注册音频捕获原始数据回调.
参数:
dwCard:
卡号.
ppCall:
需要注册的回调函数指针
返回值:
TRUE:
成功FALSE:
失败.
12、BOOLWINAPIVCARegAudMpegCallBack(DWORDdwCard,PrcAudMpegCallBackppCall)
说明:
注册音频MPEG压缩数据回调.
参数:
dwCard:
卡号.
ppCall:
需要注册的回调函数指针
返回值:
TRUE:
成功FALSE:
失败.
13、voidWINAPIVCASetLastError(DWORDdwError)
说明:
设置错误序号.
参数:
dwError:
错误序号.
返回值:
无
14、BOOLWINAPIVCAEnableMotionDetect(DWORDdwCard,BOOLbEnaDetect,BYTE*pAreaMap,LONG
nSizeOfMap,LONGnPersistTime,LPVOIDlpContext,PrcCbMotionDetectOnObjectMove)
说明:
设置错误序号.
参数:
dwCard:
操作卡号.
bEnaDetect:
是否允许动态检测.
pAreaMap:
运动检测地图
nSizeOfMap:
pAreaMap尺寸,以BYTE为单位
nPersistTime:
物体持续nPersistTime秒不动则认为停止1-30s,如果nPersistTime=-1;
则回调运动检测地图。
取消(开始、停止)回调.
lpContext:
监测上下文.
OnObjectMove:
运动/停止回调函数.
返回值:
无
15、DWORDWINAPIVCAGetLastError()
说明:
得到错误序号.
返回值:
错误序号
16、BOOLWINAPIVCAInitSdk(HWNDhWndMain,BOOLbInitVidDev=TRUE,BOOLbInitAudDev=TRUE)
说明:
初始化系统资源.
参数:
hWndMain:
Overlay窗口句柄(参阅VCAUpdateOverlayWnd参数hOverlayWnd含义)
返回值:
TRUE:
成功FALSE:
失败.
参数:
bInitVidDev
返回值:
TRUE:
初始化视频设备
FALSE:
不初始化视频设备此时视频设备可以进行视频数据回调但是不能视频预览
参数:
bInitAudDev
返回值:
TRUE:
初始化音频设备FALSE:
不初始化音频设备
17、voidWINAPIVCAUnInitSdk()
说明:
释放系统资源.
参数:
无.
返回值:
无
18、LONGWINAPIVCAGetDevNum()
说明:
返回系统当中卡号数量,即为SAA7134硬件数目,为0时表示没有设备存在.
参数:
无
返回值:
系统中已经安装好的SAA7134数量.
19、BOOLWINAPIVCAOpenDevice(DWORDdwCard,HWNDhPreviewWnd)
说明:
打开指定卡号的设备,分配相应系统资源
参数:
dwCard:
卡号.
HPreviewWnd:
指定卡号将要视频预览的窗口句柄.
返回值:
TRUE:
成功FALSE:
失败.
备注:
系统将自动给定传入子窗口的大小来显示视频.
20、BOOLWINAPIVCACloseDevice(DWORDdwCard)
说明:
关闭指定卡号的设备,释放相应系统资源.
参数:
dwCard:
卡号.
返回值:
TRUE:
成功FALSE:
失败.
21、BOOLWINAPIVCAStartVideoPreview(DWORDdwCard)
说明:
开始视频预览.
参数:
dwCard:
卡号.
返回值:
TRUE:
成功FALSE:
失败.
22、BOOLWINAPIVCAStopVideoPreview(DWORDdwCard)
说明:
停止视频预览.
参数:
dwCard:
卡号.
返回值:
TRUE:
成功FALSE:
失败.
23、BOOLWINAPIVCAUpdateVideoPreview(DWORDdwCard,HWNDhPreviewWnd)
说明:
更新视频预览。
参数:
dwCard:
卡号.
hPreviewWnd:
新的预览窗口句柄.
返回值:
TRUE:
成功.FALSE:
失败.
备注:
用户改变该窗口的大小或这路视频希望显示到其它窗口的情况下,一般先调用VCAUpdateOverlayWnd()函数,然后再调用本函数。
24、BOOLWINAPIVCAUpdateOverlayWnd(HWNDhOverlayWnd);
说明:
更新overlay窗口,当overlay窗口句柄改变或尺寸、位置改变时调用,overlay窗口就是包含多路
显示小窗口的大窗口。
overlay窗口必须有一个,多路显示小窗口必须包含在其内部。
参数:
hOverlayWnd:
包含多路显示小窗口的大窗口
返回值:
TRUE:
成功.FALSE:
失败.
25、BOOLWINAPIVCASaveBitsToBuf(DWORDdwCard,PVOIDpDestBuf,DWORD&dwWidth,DWORD&dwHeight)
说明:
保存快照数据到相应的缓冲区.
参数:
dwCard:
卡号.
pDestBuf:
缓冲区的指针.
dwWidth:
返回图像的宽度.
dwHeight:
返回图像的高度.
返回值:
TRUE:
成功FALSE:
失败.
26、BOOLWINAPIVCASaveAsJpegFile(DWORDdwCard,LPCTSTRlpFileName,DWORDdwQuality=100)
说明:
保存快照为JPEG文件.
参数:
dwCard:
卡号.
lpFileName:
所需的文件名称及路径.
DwQuality:
JPEG文件质量,范围:
1~100
返回值:
TRUE:
成功FALSE:
失败.
27、BOOLWINAPIVCASaveAsBmpFile(DWORDdwCard,LPCTSTRlpFileName)
说明:
保存快照为BMP文件.
参数:
dwCard:
卡号.
pDestBuf:
所需的文件名称及路径.
返回值:
TRUE:
成功FALSE:
失败.
28、BOOLWINAPIVCAStartVideoCapture(DWORDdwCard,CAPMODELenCapMode,MP4MODELenMp4Mode,
LPCTSTRlpFileName)
说明:
开始视频捕获.
参数:
dwCard:
卡号.
lpFileName:
所需的文件名称及路径.
enCapMode:
选择流捕捉模式.
enMp4Mode:
MPEG压缩模式,只有enCapMode等于CAP_MPEG4_STREAM时enMp4Mode才有效.
返回值:
TRUE成功,FALSE失败
29、BOOLWINAPIVCAStopVideoCapture(DWORDdwCard)
说明:
停止视频捕获.
参数:
dwCard:
卡号.
返回值:
TRUE成功FALSE.失败
30、BOOLWINAPIVCASetVidCapSize(DWORDdwCard,DWORDdwWidth,DWORDdwHeight)
说明:
设置视频捕获尺寸.dwWidth和dwHeight最好为16的倍数,否则,动态检测为16*16一个检测小块,
检测将会不准确。
参数:
dwCard:
卡号.
dwWidth:
捕获宽度.
DwHeight:
捕获高度.
返回值:
TRUE成功FALSE失败
31、BOOLWINAPIVCAGetVidCapSize(DWORDdwCard,DWORD&dwWidth,DWORD&dwHeight)
说明:
得到视频捕获尺寸.
参数:
dwCard:
卡号.
dwWidth:
捕获宽度.
DwHeight:
捕获高度.
返回值:
TRUE成功FALSE失败
32、BOOLWINAPIVCASetVidCapFrameRate(DWORDdwCard,DWORDdwFrameRate,BOOLbFrameRateReduction=FALSE)
说明:
设置视频捕获帧率PAL显示帧率始终为25,NTSC显示帧率始终为30
PAL捕获帧率最大为25,NTSC捕获帧率最大为30
参数:
dwCard:
卡号.
dwFrameRate:
捕获帧率.
bFrameRateReduction:
保留
返回值:
TRUE成功FALSE失败
备注:
PAL最大帧率为25,NTSC最大帧率为30
33、BOOLWINAPIVCASetBitRate(DWORDdwCard,DWORDdwBitRate)
说明:
设置MPEG压缩的位率.
参数:
dwCard:
卡号.
dwBitRate:
MPEG压缩的位率.范围56KBPS~10MBPS
返回值:
TRUE成功FALSE失败
34、BOOLWINAPIVCASetKeyFrmInterval(DWORDdwCard,DWORDdwKeyFrmInterval)
说明:
设置MPEG压缩的关键帧间隔,必须大于等于帧率.
参数:
dwCard:
当前操作的卡号.
dwKeyFrmInterval:
MPEG压缩的关键帧间隔.
返回值:
TRUE成功FALSE失败
35、BOOLWINAPIVCASetXVIDQuality(DWORDdwCard,DWORDdwQuantizer,DWORDdwMotionPrecision)
说明:
设置MPEG4_XVID压缩的质量
参数:
dwCard:
当前操作的卡号.
dwQuantizer:
1~31(1为最小量度,压缩质量最好);
dwMotionPrecision:
0~6(0最小运动精度)
返回值:
TRUE成功FALSE失败
36、BOOLWINAPIVCASetXVIDCompressMode(DWORDdwCard,COMPRESSMODEenCompessMode)
说明:
设置MPEG4_XVID压缩的模式
参数:
dwCard:
当前操作的卡号.
enCompessMode:
压缩模式;
返回值:
TRUE成功FALSE失败
37、BOOLWINAPIVCASetVidDeviceColor(DWORDdwCard,COLORCONTROLenCtlType,DWORDdwValue)
说明:
设置视频颜色属性,它将影响视频预览和视频捕获的显示属性.
参数:
dwCard:
卡号.
EnCtlType:
颜色类型.
DwValue:
颜色属性的值.
返回值: