Files
EF3-Interface/PcDmis/Base/Interfac/Msi/Hsi/Videocard/SV4000E/dataAcq.h
T
2013-06-26 17:01:39 +08:00

307 lines
8.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef __DATA_ACQ_2011__
#define __DATA_ACQ_2011__
#include <mmreg.h>
#include "DXMediaCap.h"
/*
描述:
获取指定区域的原始视频帧数据到缓冲区
参数:
device - [in] 设备句柄
buffer - [in] 指向缓冲区。NULL - 后续参数返回相应的数据,比如,所需缓冲区的大小、颜色空间、视频尺寸
bufferLen - [in] 指向的缓冲区的大小(单位:字节)
gotBufferLen - [out] 实际获取的数据的大小(单位:字节)
colorSpace - [out] 获取的原始数据的色彩空间类型
width - [out] 获取的原始数据的像素宽度
height - [out] 获取的原始数据的像素高度
bytesWidth - [out] 获取的原始数据的字节宽度
rect - [in] 指定获取数据的区域
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXGetFrameBuffer(device_handle device, unsigned char* buffer, unsigned bufferLen, unsigned* gotBufferLen = NULL,
unsigned* colorSpace = NULL, unsigned* width = NULL, unsigned* height = NULL, unsigned* bytesWidth = NULL,
PRECT rect = NULL);
/*
描述:
保存原始视频帧数据到 BMP文件
参数:
szFileName - [in] BMP文件路径
buffer - [in] 指向缓冲区
bufferLen - [in] 指向的缓冲区的大小(单位:字节)
colorSpace - [in] 获取的原始数据的色彩空间类型
width - [in] 获取的原始数据的像素宽度
height - [in] 获取的原始数据的像素高度
bytesWidth - [in] 获取的原始数据的字节宽度
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSaveBMPFile(TCHAR* szFileName, unsigned char* buffer, unsigned bufferLen,
unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth);
/*
描述:
保存原始视频帧数据到 JPG文件
参数:
szFileName - [in] JPG文件路径
buffer - [in] 指向缓冲区
bufferLen - [in] 指向的缓冲区的大小(单位:字节)
colorSpace - [in] 获取的原始数据的色彩空间类型
width - [in] 获取的原始数据的像素宽度
height - [in] 获取的原始数据的像素高度
bytesWidth - [in] 获取的原始数据的字节宽度
quality - [in] JPG文件的画面质量
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSaveJPGFile(TCHAR* szFileName, unsigned char* buffer, unsigned bufferLen,
unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, unsigned quality);
/*
描述:
直接抓取原始视频帧数据到 BMP文件
参数:
device - [in] 设备句柄
szFileName - [in] BMP文件路径
rect - [in] 指定获取数据的区域
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSnapToBMPFile(device_handle device, TCHAR* szFileName, PRECT rect = NULL);
/*
描述:
直接抓取原始视频帧数据到 BMP文件
参数:
device - [in] 设备句柄
szFileName - [in] BMP文件路径
buffer - [in] 指向缓冲区
bufferLen - [in] 指向的缓冲区的大小(单位:字节)
colorSpace - [in] 获取的原始数据的色彩空间类型
width - [in] 获取的原始数据的像素宽度
height - [in] 获取的原始数据的像素高度
bytesWidth - [in] 获取的原始数据的字节宽度
rect - [in] 指定获取数据的区域
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSnapToJPGFile(device_handle device, TCHAR* szFileName, unsigned quality, PRECT rect = NULL);
/*
描述:
原始视频数据回调的函数原型
参数:
buffer - [in] 缓冲区指针
colorSpace - [in] 获取的原始数据的色彩空间类型
width - [in] 获取的原始数据的像素宽度
height - [in] 获取的原始数据的像素高度
bytesWidth - [in] 获取的原始数据的字节宽度
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnRawVideoCallback)(unsigned char* buffer, unsigned colorSpace,
unsigned width, unsigned height, unsigned bytesWidth, void* context);
/*
描述:
设置原始视频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetRawVideoCallback(device_handle device, fnRawVideoCallback fn, void* context);
/*
描述:
开始原始视频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStartRawVideoCallback(device_handle device, fnRawVideoCallback fn, void* context);
/*
描述:
停止原始视频数据回调的函数
参数:
device - [in] 设备句柄
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXStopRawVideoCallback(device_handle device);
/*
描述:
原始音频数据回调的函数原型
参数:
buffer - [in] 缓冲区指针
bufferLen - [in] 指向的缓冲区的大小(单位:字节)
wfx - [in] 音频数据格式
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnRawAudioCallback)(unsigned char* buffer, unsigned bufferLen, WAVEFORMATEX* wfx, void* context);
/*
描述:
设置原始音频数据回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetRawAudioCallback(device_handle device, fnRawAudioCallback fn, void* context);
/*
描述:
原始视频数据叠加回调的函数原型
参数:
hdc - [in] 视频叠加的HDC
width - [in] 能够叠加的宽度(单位:像素)
height - [in] 能够叠加的高度(单位:像素)
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
typedef unsigned (__stdcall *fnOSDCallback)(HDC hdc, unsigned width, unsigned height, void* context);
/*
描述:
设置视频数据叠加回调的函数
参数:
device - [in] 设备句柄
fn - [in] 回调函数指针,NULL - 停止回调
context - [in] 回调函数的上下文
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetOSDCallback(device_handle device, fnOSDCallback fn, void* context);
enum {osd_text, osd_time, osd_image};
#define MAX_OSD_TEXT_LEN 16
/*
描述:
设置原始视频帧数据的OSD
参数:
device - [in] 设备句柄
osdType - [in] OSD的类型
x - [in] 指定OSD的左上角横坐标
x - [in] 指定OSD的左上角竖坐标
osdData - [in] OSD的数据,NULL - 取消OSD
osdType = osd_text,最大MAX_OSD_TEXT_LEN个字符
osdType = osd_time,指定时间格式
osdType = osd_image,指定图片路径
pointSize - [in] 字体大小
faceName - [in] 字体名称
color - [in] 针对 osd_text, osd_time 两种类型的OSD的前景色,默认值:白色(RGB(255, 255, 255)
bgcolor - [in] OSD的背景色,默认值:黑色(RGB(0, 0, 0)
opaque - [in] OSD的背景色是否不透明,默认值:是。当选择透明时,则以 bgcolor 进行透明处理
alpha - [in] alpha运算值。取值[0 ~ 255]0 - OSD透明,255 - OSD不透明,中间值 - OSD与视频数据进行alpha运算
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXSetOSD(device_handle device, unsigned osdType, int x, int y, char* osdData, int pointSize = 120, LPCTSTR faceName = TEXT("Arial"),
COLORREF color = RGB(255, 255, 255), COLORREF bgcolor = RGB(0, 0, 0), BOOL opaque = TRUE,
unsigned char alpha = 255);
/*
描述:
启用/禁用原始视频帧数据的OSD
参数:
device - [in] 设备句柄
osdType - [in] OSD的类型
enable - [in] TRUE - 启用OSDFALSE - 禁用OSD
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXEnableOSD(device_handle device, unsigned osdType, BOOL enable);
/*
描述:
由图片缓冲创建预览对象
参数:
imgbuffer - [in] 图片缓冲区
buffersize - [in] 图片缓冲区的大小(单位:字节)
colorspace - [in] 图片缓冲的数据的色彩空间
width - [in] 图片的宽度(单位:像素)
height - [in] 图片的高度(单位:像素)
err - [out] 返回错误代码
返回值:
成功则返回图像句柄,否则返回 NULL。可通过 err 获得错误代码
// */
image_handle __stdcall DXCreateBufferImg(unsigned char* imgbuffer, unsigned buffersize,
unsigned colorspace, unsigned width, unsigned height,
unsigned* err);
/*
描述:
由图片文件创建预览对象
参数:
szImgFile - [in] 图片文件全路径
err - [out] 返回错误代码
返回值:
成功则返回图像句柄,否则返回 NULL。可通过 err 获得错误代码
// */
image_handle __stdcall DXCreateFileImg(TCHAR* szImgFile, unsigned* err);
/*
描述:
由更新预览对象到指定的窗体的相应区域
参数:
img - [in] 预览对象
hPrevWnd - [in] 预览的窗体
rect - [in] 预览的区域
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXUpdateImg(image_handle img, HWND hPrevWnd, RECT* rect);
/*
描述:
删除预览对象
参数:
img - [in] 预览对象
返回值:
// */
void __stdcall DXDestroyImg(image_handle img);
/*
描述:
翻转视频
参数:
device - [in] 设备句柄
flip - [in] TRUE - 启用翻转,FALSE - 禁用翻转
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXFlipVideo(device_handle device, BOOL flip);
/*
描述:
镜像视频
参数:
device - [in] 设备句柄
mirror - [in] TRUE - 启用镜像,FALSE - 禁用镜像
返回值:
0 - 成功;失败则返回错误代码
// */
unsigned __stdcall DXMirrorVideo(device_handle device, BOOL mirror);
#endif // __DATA_ACQ_2011__