天敏VC4000 视频SDK帮助文档文档格式.docx
《天敏VC4000 视频SDK帮助文档文档格式.docx》由会员分享,可在线阅读,更多相关《天敏VC4000 视频SDK帮助文档文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
#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范围:
0x40
HUE为色度,value范围:
0x0
只有当COLORDEVICETYPE等于COLOR_DECODER时HUE才有效。
SHARPNESS为锐度,value范围:
-8~7最佳:
只有当COLORDEVICETYPE等于COLOR_DECODER时SHARPNESS才有效。
typedefenum{
COLOR_DECODER=0,
COLOR_PREVIEW=1,
COLOR_CAPTURE=2
}COLORDEVICETYPE;
显示设备的显示属性,其中:
COLOR_DECODER为解码器的显示属性,它会影响视频预览和视频捕获的显示属性
COLOR_PREVIEW为视频预览的显示属性
COLOR_CAPTURE为视频捕获的显示属性
CAP_NULL_STREAM=0,
CAP_ORIGIN_STREAM=1,
CAP_MPEG4_STREAM=2
}CAPMODEL;
音视频捕获方式,其中:
CAP_NULL_STREAM捕获无效
CAP_ORIGIN_STREAM捕获为原始流回调
CAP_MPEG4_STREAM捕获为MPEG4
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文件并回调
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)
视频捕获原始数据回调.
Pbuff:
视频原始数据的指针
dwSize:
视频原始数据缓冲区大小,单位字节
3、typedefvoid(CALLBACK*PrcVidMpegCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize,BOOLisKeyFrm)
视频MPEG压缩数据回调.
视频MPEG数据的指针
视频MPEG数据缓冲区大小,单位字节
isKeyFrm:
是否使用关键帧
4、typedefvoid(CALLBACK*PrcAudCapCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize)
音频捕获原始数据回调.
音频原始数据的指针
音频原始数据缓冲区大小,单位字节
5、typedefvoid(CALLBACK*PrcAudMpegCallBack)(DWORDdwCard,BYTE*pbuff,DWORDdwSize)
音频MPEG压缩数据回调.
音频MPEG数据的指针
音频MPEG数据缓冲区大小,单位字节
6、typedefvoid(CALLBACK*PrcIoAlertCallBack)(DWORDdwCard)
IO报警回调.
返回的卡号.
7、typedefvoid(CALLBACK*PrcVidMpegPorCallBack)(DWORDdwCard,BOOL*pPorcess)
视频Mpeg处理回调.
dwCard:
pPorcess:
设置为TRUE表示当前帧压缩;
返回为FALSE表示丢掉当前帧.
8、typedefvoid(CALLBACK*PrcAudMpegPorCallBack)(DWORDdwCard,BOOL*pPorcess)
音频Mpeg处理回调.
设置为TRUE表示当前音频包压缩;
返回为FALSE表示丢掉当前音频包.
9、BOOLWINAPIVCARegVidCapCallBack(DWORDdwCard,PrcVidCapCallBackppCall)
注册视频捕获原始数据回调.
卡号.
ppCall:
需要注册的回调函数指针
TRUE:
成功FALSE:
失败.
10、BOOLWINAPIVCARegVidMpegCallBack(DWORDdwCard,PrcVidMpegCallBackppCall)
注册视频MPEG压缩数据回调.
11、BOOLWINAPIVCARegAudCapCallBack(DWORDdwCard,PrcAudCapCallBackppCall)
注册音频捕获原始数据回调.
12、BOOLWINAPIVCARegAudMpegCallBack(DWORDdwCard,PrcAudMpegCallBackppCall)
注册音频MPEG压缩数据回调.
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含义)
bInitVidDev
初始化视频设备
FALSE:
不初始化视频设备此时视频设备可以进行视频数据回调但是不能视频预览
bInitAudDev
初始化音频设备FALSE:
不初始化音频设备
17、voidWINAPIVCAUnInitSdk()
释放系统资源.
无.
18、LONGWINAPIVCAGetDevNum()
返回系统当中卡号数量,即为SAA7134硬件数目,为0时表示没有设备存在.
无
系统中已经安装好的SAA7134数量.
19、BOOLWINAPIVCAOpenDevice(DWORDdwCard,HWNDhPreviewWnd)
打开指定卡号的设备,分配相应系统资源
卡号.
HPreviewWnd:
指定卡号将要视频预览的窗口句柄.
备注:
系统将自动给定传入子窗口的大小来显示视频.
20、BOOLWINAPIVCACloseDevice(DWORDdwCard)
关闭指定卡号的设备,释放相应系统资源.
成功FALSE:
21、BOOLWINAPIVCAStartVideoPreview(DWORDdwCard)
开始视频预览.
22、BOOLWINAPIVCAStopVideoPreview(DWORDdwCard)
停止视频预览.
23、BOOLWINAPIVCAUpdateVideoPreview(DWORDdwCard,HWNDhPreviewWnd)
更新视频预览。
hPreviewWnd:
新的预览窗口句柄.
TRUE:
成功.FALSE:
用户改变该窗口的大小或这路视频希望显示到其它窗口的情况下,一般先调用VCAUpdateOverlayWnd()函数,然后再调用本函数。
24、BOOLWINAPIVCAUpdateOverlayWnd(HWNDhOverlayWnd);
更新overlay窗口,当overlay窗口句柄改变或尺寸、位置改变时调用,overlay窗口就是包含多路
显示小窗口的大窗口。
overlay窗口必须有一个,多路显示小窗口必须包含在其内部。
hOverlayWnd:
包含多路显示小窗口的大窗口
成功.FALSE:
失败.
25、BOOLWINAPIVCASaveBitsToBuf(DWORDdwCard,PVOIDpDestBuf,DWORD&
dwWidth,DWORD&
dwHeight)
保存快照数据到相应的缓冲区.
pDestBuf:
缓冲区的指针.
dwWidth:
返回图像的宽度.
dwHeight:
返回图像的高度.
成功FALSE:
26、BOOLWINAPIVCASaveAsJpegFile(DWORDdwCard,LPCTSTRlpFileName,DWORDdwQuality=100)
保存快照为JPEG文件.
lpFileName:
所需的文件名称及路径.
DwQuality:
JPEG文件质量,范围:
1~100
27、BOOLWINAPIVCASaveAsBmpFile(DWORDdwCard,LPCTSTRlpFileName)
保存快照为BMP文件.
28、BOOLWINAPIVCAStartVideoCapture(DWORDdwCard,CAPMODELenCapMode,MP4MODELenMp4Mode,
LPCTSTRlpFileName)
开始视频捕获.
lpFileName:
enCapMode:
选择流捕捉模式.
enMp4Mode:
MPEG压缩模式,只有enCapMode等于CAP_MPEG4_STREAM时enMp4Mode才有效.
TRUE成功,FALSE失败
29、BOOLWINAPIVCAStopVideoCapture(DWORDdwCard)
停止视频捕获.
TRUE成功FALSE.失败
30、BOOLWINAPIVCASetVidCapSize(DWORDdwCard,DWORDdwWidth,DWORDdwHeight)
设置视频捕获尺寸.dwWidth和dwHeight最好为16的倍数,否则,动态检测为16*16一个检测小块,
检测将会不准确。
dwWidth:
捕获宽度.
DwHeight:
捕获高度.
TRUE成功FALSE失败
31、BOOLWINAPIVCAGetVidCapSize(DWORDdwCard,DWORD&
dwWidth,DWORD&
dwHeight)
得到视频捕获尺寸.
32、BOOLWINAPIVCASetVidCapFrameRate(DWORDdwCard,DWORDdwFrameRate,BOOLbFrameRateReduction=FALSE)
设置视频捕获帧率PAL显示帧率始终为25,NTSC显示帧率始终为30
PAL捕获帧率最大为25,NTSC捕获帧率最大为30
dwFrameRate:
捕获帧率.
bFrameRateReduction:
保留
返回值:
TRUE成功FALSE失败
PAL最大帧率为25,NTSC最大帧率为30
33、BOOLWINAPIVCASetBitRate(DWORDdwCard,DWORDdwBitRate)
设置MPEG压缩的位率.
dwBitRate:
MPEG压缩的位率.范围56KBPS~10MBPS
34、BOOLWINAPIVCASetKeyFrmInterval(DWORDdwCard,DWORDdwKeyFrmInterval)
设置MPEG压缩的关键帧间隔,必须大于等于帧率.
当前操作的卡号.
dwKeyFrmInterval:
MPEG压缩的关键帧间隔.
35、BOOLWINAPIVCASetXVIDQuality(DWORDdwCard,DWORDdwQuantizer,DWORDdwMotionPrecision)
设置MPEG4_XVID压缩的质量
dwQuantizer:
1~31(1为最小量度,压缩质量最好);
dwMotionPrecision:
0~6(0最小运动精度)
TRUE成功FALSE失败
36、BOOLWINAPIVCASetXVIDCompressMode(DWORDdwCard,COMPRESSMODEenCompessMode)
设置MPEG4_XVID压缩的模式
enCompessMode:
压缩模式;
37、BOOLWINAPIVCASetVidDeviceColor(DWORDdwCard,COLORCONTROLenCtlType,DWORDdwValue)
设置视频颜色属性,它将影响视频预览和视频捕获的显示属性.
EnCtlType:
颜色类型.
DwValue:
颜色属性的值.