Machine Interface Utility:VER1.0
This commit is contained in:
@@ -0,0 +1,284 @@
|
||||
// sdk3000_7130.h : main header file for the SDK3000_7130 DLL
|
||||
//
|
||||
|
||||
#if !defined(AFX_SDK3000_7130_H__37FDA63D_0A84_4797_9E52_320E37C41382__INCLUDED_)
|
||||
#define AFX_SDK3000_7130_H__37FDA63D_0A84_4797_9E52_320E37C41382__INCLUDED_
|
||||
|
||||
|
||||
static const ULONG BrightnessDefault = 0x80;
|
||||
static const ULONG ContrastDefault = 0x44;
|
||||
static const ULONG SaturationDefault = 0x40;
|
||||
static const ULONG HueDefault = 0x00;
|
||||
static const ULONG SharpnessDefault = 0x00;
|
||||
|
||||
#define MIN_VAMP_BRIGHTNESS_UNITS 0
|
||||
#define MAX_VAMP_BRIGHTNESS_UNITS 255
|
||||
|
||||
#define MIN_VAMP_CONTRAST_UNITS -128
|
||||
#define MAX_VAMP_CONTRAST_UNITS 127
|
||||
|
||||
#define MIN_VAMP_HUE_UNITS -128
|
||||
#define MAX_VAMP_HUE_UNITS 127
|
||||
|
||||
#define MIN_VAMP_SATURATION_UNITS -128
|
||||
#define MAX_VAMP_SATURATION_UNITS 127
|
||||
|
||||
#define MIN_VAMP_SHARPNESS_UNITS -8
|
||||
#define MAX_VAMP_SHARPNESS_UNITS 7
|
||||
|
||||
//图像格式
|
||||
typedef enum
|
||||
{
|
||||
IMAGE_BMP = 1, //BMP文件格式
|
||||
IMAGE_JPG = 2 //JPG文件格式
|
||||
}enImageType;
|
||||
|
||||
//输入视频源端口
|
||||
typedef enum
|
||||
{
|
||||
VIDEO_IN_1 = 0, //AV视频源1
|
||||
VIDEO_IN_2 = 1, //AV视频源2
|
||||
VIDEO_IN_3 = 2, //AV视频源3
|
||||
VIDEO_IN_4 = 3, //AV视频源4
|
||||
SVIDEO_IN = 4 //SVIDEO视频源
|
||||
}VIDEOSOURCE;
|
||||
|
||||
//视频处理属性
|
||||
typedef enum tagVideoProcAmpProperty
|
||||
{
|
||||
VideoProcAmp_Brightness = 0,
|
||||
VideoProcAmp_Contrast = VideoProcAmp_Brightness + 1,
|
||||
VideoProcAmp_Hue = VideoProcAmp_Contrast + 1,
|
||||
VideoProcAmp_Saturation = VideoProcAmp_Hue + 1,
|
||||
VideoProcAmp_Sharpness = VideoProcAmp_Saturation + 1,
|
||||
VideoProcAmp_Gamma = VideoProcAmp_Sharpness + 1,
|
||||
VideoProcAmp_ColorEnable = VideoProcAmp_Gamma + 1,
|
||||
VideoProcAmp_WhiteBalance = VideoProcAmp_ColorEnable + 1,
|
||||
VideoProcAmp_BacklightCompensation = VideoProcAmp_WhiteBalance + 1,
|
||||
VideoProcAmp_Gain = VideoProcAmp_BacklightCompensation + 1
|
||||
}VideoProcAmpProperty;
|
||||
|
||||
//视频属性
|
||||
typedef enum
|
||||
{
|
||||
VideoProperty_Brightness = VideoProcAmp_Brightness, //亮度
|
||||
VideoProperty_Contrast = VideoProcAmp_Contrast, //对比度
|
||||
VideoProperty_Hue = VideoProcAmp_Hue, //色度
|
||||
VideoProperty_Saturation = VideoProcAmp_Saturation, //饱和度
|
||||
VideoProperty_Gamma = VideoProcAmp_Gamma, //Gamma校验
|
||||
VideoProperty_ColorEnable = VideoProcAmp_ColorEnable,
|
||||
VideoProperty_WhiteBalance = VideoProcAmp_WhiteBalance, //白平衡
|
||||
VideoProperty_BacklightCompensation = VideoProcAmp_BacklightCompensation,
|
||||
VideoProperty_Sharpness = VideoProcAmp_Sharpness,
|
||||
VideoProperty_Gain = VideoProcAmp_Gain,
|
||||
} VideoProperty;
|
||||
|
||||
//SDK3000属性页
|
||||
typedef enum
|
||||
{
|
||||
PropertyDlg_VideoCaptureFilter = 0,//SDK3000视频设备属性页
|
||||
PropertyDlg_VideoCapturePin, //SDK3000视频设备输出引脚属性页
|
||||
PropertyDlg_VideoCrossbar, //Video Crossbar属性页
|
||||
PropertyDlg_DeinterlaceFilter, //Deinterlace设备属性页
|
||||
PropertyDlg_DeinterlaceCapturePin, //Deinterlace设备捕获引脚属性页
|
||||
PropertyDlg_DeinterlacePreviewPin //Deinterlace设备预览引脚属性页
|
||||
} PropertyDialog;
|
||||
|
||||
//视频运行状态
|
||||
typedef enum{
|
||||
STATE_STOP = 0,
|
||||
STATE_RUN,
|
||||
STATE_PAUSE
|
||||
}GRAPH_STATE;
|
||||
|
||||
//视频格式
|
||||
//VideoSubType_YUY2格式支持SDK3000所有功能。
|
||||
//视频制式除VideoSubType_YUY2外,只能支持视频原始回调方式。
|
||||
typedef enum
|
||||
{
|
||||
VideoSubType_None = -1,
|
||||
VideoSubType_RGB555 = 0,
|
||||
VideoSubType_RGB24,
|
||||
VideoSubType_YUY2,
|
||||
VideoSubType_RGB8,
|
||||
VideoSubType_RGB32
|
||||
} VideoSubType;
|
||||
|
||||
//视频制式
|
||||
typedef enum
|
||||
{
|
||||
VideoStandard_None = 0x00000000,
|
||||
VideoStandard_NTSC_M = 0x00000001,
|
||||
VideoStandard_NTSC_M_J = 0x00000002,
|
||||
VideoStandard_NTSC_433 = 0x00000004,
|
||||
VideoStandard_PAL_B = 0x00000010,
|
||||
VideoStandard_PAL_D = 0x00000020,
|
||||
VideoStandard_PAL_H = 0x00000080,
|
||||
VideoStandard_PAL_I = 0x00000100,
|
||||
VideoStandard_PAL_M = 0x00000200,
|
||||
VideoStandard_PAL_N = 0x00000400,
|
||||
VideoStandard_PAL_60 = 0x00000800,
|
||||
VideoStandard_SECAM_B = 0x00001000,
|
||||
VideoStandard_SECAM_D = 0x00002000,
|
||||
VideoStandard_SECAM_G = 0x00004000,
|
||||
VideoStandard_SECAM_H = 0x00008000,
|
||||
VideoStandard_SECAM_K = 0x00010000,
|
||||
VideoStandard_SECAM_K1 = 0x00020000,
|
||||
VideoStandard_SECAM_L = 0x00040000,
|
||||
VideoStandard_SECAM_L1 = 0x00080000,
|
||||
} VideoStandard;
|
||||
|
||||
//场类型
|
||||
typedef enum
|
||||
{
|
||||
Even_Field = 0, //偶场
|
||||
Odd_Field, //奇场
|
||||
Odd_Even_Field, //奇场、偶场
|
||||
Interlaced_Field//复合场
|
||||
}VideoFieldType;
|
||||
|
||||
//视频叠加参数
|
||||
typedef struct
|
||||
{
|
||||
LONG cfHeight; //字符高度
|
||||
LONG cfWidth; //字符宽度
|
||||
LONG cfWeight; //字符粗细
|
||||
LONG cfSpacing; //字符间距
|
||||
BOOL cfItalic; //斜体
|
||||
BOOL cfUnderline; //下划线
|
||||
BOOL cfStrikeOut; //删除线
|
||||
COLORREF cfBkColor; //背景色
|
||||
COLORREF cfTextColor; //前景色
|
||||
TCHAR cfFaceName[32]; //字体名
|
||||
}OSDPARAM;
|
||||
|
||||
//视频属性范围
|
||||
typedef struct
|
||||
{
|
||||
long nValue; //当前值
|
||||
long nMin; //最小值
|
||||
long nMax; //最大值
|
||||
long nStepDelta; //最小步进值
|
||||
long nDefault; //默认值
|
||||
long nCapsFlags; //风格
|
||||
} VIDEOPROPERTYRANGE;
|
||||
|
||||
//视频流信息
|
||||
typedef struct
|
||||
{
|
||||
VideoSubType subtype; //视频格式
|
||||
RECT rcSource; //视频源范围
|
||||
RECT rcTarget; //目标视频范围
|
||||
DWORD dwBitRate; //比特率
|
||||
DWORD dwBitErrorRate; //比特错误率
|
||||
LONGLONG AvgTimePerFrame;//帧率
|
||||
BITMAPINFOHEADER bmiHeader; //宽、高、颜色位率等
|
||||
} VIDEOSTREAMINFO;
|
||||
|
||||
//视频源输入频率
|
||||
typedef enum
|
||||
{ //@enum Field frequency
|
||||
FIELD_FREQ_50HZ = 0, //@emem source is 50 Hz (PAL)
|
||||
FIELD_FREQ_60HZ = 1, //@emem source is 60 Hz (NTSC)
|
||||
FIELD_FREQ_0HZ = 2 //@emem source is 0 Hz (NO SIGNL)
|
||||
}eFieldFrequency;
|
||||
|
||||
|
||||
//动态检测回调
|
||||
typedef void (CALLBACK *PrcCbMotionDetect)( long lnCardID, BOOL bMove, LPVOID lpContext );
|
||||
//捕获原始流回调
|
||||
typedef void (CALLBACK *PrcCapSourceStream)( long lnCardID, long pBuf, long lnWidth, long lnHeight, long lnBiCount );
|
||||
//IO报警回调
|
||||
typedef void (CALLBACK *PrcIoAlertCallBack)( long lnCardID );
|
||||
typedef void (CALLBACK *PrcPicMessage)( long lnCardID, long pBuf, long lnWidth, long lnHeight);
|
||||
//初始化SDK
|
||||
HRESULT WINAPI VCAInitSdk();
|
||||
//释放SDK资源
|
||||
void WINAPI VCAUnInitSdk();
|
||||
//得到SDK3000设备总数
|
||||
HRESULT WINAPI VCAGetDevNum(int *pDevNum);
|
||||
//连接设备
|
||||
HRESULT WINAPI VCAConnectDevice(int nCards, BOOL bOverlay, HWND hParentWnd, SIZE& szVidSize, VIDEOSOURCE enVideoSource, int nFrameRate = 25, VideoSubType enVideoSubType = VideoSubType_YUY2);
|
||||
//断开设备
|
||||
HRESULT WINAPI VCADisConnectDevice(int nCards);
|
||||
//设置捕获文件名
|
||||
HRESULT WINAPI VCASetCaptureFile(int nCards, LPCTSTR szFileName);
|
||||
//开始捕获
|
||||
HRESULT WINAPI VCAStartCapture(int nCards);
|
||||
//停止捕获
|
||||
HRESULT WINAPI VCAStopCapture(int nCards);
|
||||
//是否正在捕获
|
||||
HRESULT WINAPI VCAIsCapturing(int nCards, BOOL* bIsCapturing);
|
||||
//设置视频在显示窗口中的区域
|
||||
HRESULT WINAPI VCASetWindowPos(int nCards, RECT rc);
|
||||
//设置动态检测
|
||||
HRESULT WINAPI VCAEnableMotionDetect(int nCards, BOOL bEnaDetect, BYTE *pAreaMap, LONG nSizeOfMap, LONG nPersistTime, LPVOID lpContext, PrcCbMotionDetect OnObjectMove);
|
||||
//抓图
|
||||
HRESULT WINAPI VCACapturePicture(int nCards, LPCTSTR szFileName, enImageType enImgType, RECT* rcImg, long nQuality, long nCapCount, BOOL bCapFast );
|
||||
//切换视频源
|
||||
HRESULT WINAPI VCASwitchVideoSource(int nCards, VIDEOSOURCE enVideoSource, BOOL bFast = TRUE );
|
||||
//设置视频属性
|
||||
HRESULT WINAPI VCASetVideoPropertyValue(int nCards, VideoProperty eVideoProperty, long value);
|
||||
//得到视频属性
|
||||
HRESULT WINAPI VCAGetVideoPropertyValue(int nCards, VideoProperty eVideoProperty, VIDEOPROPERTYRANGE* pVPR);
|
||||
//IO输出
|
||||
HRESULT WINAPI VCAIOAlertOut(int nCards, BOOL bHighLevel);
|
||||
//初始化IO输入
|
||||
HRESULT WINAPI VCAInitIOAlertIn(int nCards, PrcIoAlertCallBack ppCall);
|
||||
//开始等待IO输入
|
||||
HRESULT WINAPI VCAStartIOAlertIn(int nCards, BOOL bHigh);
|
||||
//停止等待IO输入
|
||||
HRESULT WINAPI VCAStopIOAlertIn(int nCards);
|
||||
//设置文本叠加
|
||||
HRESULT WINAPI VCASetTextOSD(int nCards, BOOL bEnableOSD, TCHAR* pText, POINT ptTopLeft, BOOL bTransparent, OSDPARAM* pOSD, HWND nWndMain);
|
||||
//设置时间叠加
|
||||
HRESULT WINAPI VCASetDateTimeOSD(int nCards, BOOL bEnableOSD, POINT ptTopLeft, BOOL bTransparent, OSDPARAM* pOSD, HWND nWndMain);
|
||||
//显示属性页对话框
|
||||
HRESULT WINAPI VCADisplayPropertyDialogs(int nCards, PropertyDialog id, HWND hParentWnd, LPCTSTR szCaption);
|
||||
//运行视频流
|
||||
HRESULT WINAPI VCARun(int nCards);
|
||||
//暂停视频流
|
||||
HRESULT WINAPI VCAPause(int nCards);
|
||||
//停止视频流
|
||||
HRESULT WINAPI VCAStop(int nCards);
|
||||
//得到视频流状况
|
||||
HRESULT WINAPI VCAGetStreamStatus(int nCards, GRAPH_STATE* pStatus);
|
||||
//设置视频帧率
|
||||
HRESULT WINAPI VCASetFrameRate(int nCards, int nFrameRate);
|
||||
//得到视频信息
|
||||
HRESULT WINAPI VCAGetVideoInfo(int nCards, VIDEOSTREAMINFO * pVSI);
|
||||
//设置视频信息
|
||||
HRESULT WINAPI VCASetVideoInfo(int nCards, VIDEOSTREAMINFO * pVSI);
|
||||
//设置视频大小为全屏
|
||||
HRESULT WINAPI VCASetFullScreen(int nCards, BOOL bFullSrc);
|
||||
//是否视频为全屏模式
|
||||
HRESULT WINAPI VCAIsFullSrcMode(int nCards, BOOL* pFullSrc);
|
||||
//得到视频制式
|
||||
HRESULT WINAPI VCAGetVideoStandard(int nCards, VideoStandard* pVideoStandard, long* pAvailable);
|
||||
//设置视频制式
|
||||
HRESULT WINAPI VCASetVideoStandard(int nCards, VideoStandard vs);
|
||||
//枚举视频压缩格式
|
||||
HRESULT WINAPI VCAEnumVideoCompressor(int nCards, char* arrCompDevName,int * pCompDevCount);
|
||||
//得到视频当前压缩格式
|
||||
HRESULT WINAPI VCAGetCurrentVideoCompressor(int nCards, LPSTR pCompDevName);
|
||||
//枚举视频当前压缩格式
|
||||
HRESULT WINAPI VCASetCurrentVideoCompressor(int nCards, LPCTSTR pCompDevName);
|
||||
//设置视频原始回调格式
|
||||
HRESULT WINAPI VCAEnableCapSourceStream(int nCards, BOOL bCapStream, VideoFieldType enVideoFieldType, PrcCapSourceStream pCapStream);
|
||||
//
|
||||
HRESULT WINAPI VCAEnablePicMessage(int nCards, BOOL bPicMessage, PrcPicMessage pPicMessage);
|
||||
//读E2C
|
||||
HRESULT WINAPI VCAReadE2C(int nCards, int iSubAddr, BYTE* pucData);
|
||||
//写E2C
|
||||
HRESULT WINAPI VCAWriteE2C(int nCards, int iSubAddr, BYTE ucData);
|
||||
//得到视频源输入频率( 0HZ / 50HZ / 60HZ )对应( 无信号 / PAL制 / NTSC制 ), 参考枚举变量eFieldFrequency
|
||||
HRESULT WINAPI VCAGetVideoFieldFrq(int nCards, eFieldFrequency* pFieldFrequency);
|
||||
//枚举音频设备
|
||||
HRESULT WINAPI VCAEnumAudioCaptureDev(int nCards, char* arrAudDevName,int * pAudDevCount);
|
||||
//通过音频设备名设置音频采集,一个音频设备(声卡)仅供一路卡, strAudDevName 为"",表示取消音频采集
|
||||
HRESULT WINAPI VCASetCurrentAudioCompressorName(int nCards, LPCTSTR strAudDevName);
|
||||
//通过音频设备序号设置音频采集,一个音频设备(声卡)仅供一路卡, nCurrentAudDevice 为-1,表示取消音频采集
|
||||
HRESULT WINAPI VCASetCurrentAudioCompressorNum(int nCards, int nCurrentAudDevice);
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif // !defined(AFX_SDK3000_7130_H__37FDA63D_0A84_4797_9E52_320E37C41382__INCLUDED_)
|
||||
Binary file not shown.
@@ -0,0 +1,328 @@
|
||||
// sdk3000_7130.h : main header file for the SDK3000_7130 DLL
|
||||
//
|
||||
|
||||
#if !defined(AFX_SDK3000_7130_H__37FDA63D_0A84_4797_9E52_320E37C41382__INCLUDED_)
|
||||
#define AFX_SDK3000_7130_H__37FDA63D_0A84_4797_9E52_320E37C41382__INCLUDED_
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef SDK3000_7130_EXPORTS
|
||||
#define SDK_API extern "C" __declspec(dllexport)
|
||||
#else
|
||||
#define SDK_API extern "C" __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
static const ULONG BrightnessDefault = 0x87;
|
||||
static const ULONG ContrastDefault = 0x44;
|
||||
static const ULONG SaturationDefault = 0x00;
|
||||
static const ULONG HueDefault = 0x40;
|
||||
static const ULONG SharpnessDefault = 0x00;
|
||||
|
||||
#define MIN_VAMP_BRIGHTNESS_UNITS 0
|
||||
#define MAX_VAMP_BRIGHTNESS_UNITS 255
|
||||
|
||||
#define MIN_VAMP_CONTRAST_UNITS -128
|
||||
#define MAX_VAMP_CONTRAST_UNITS 127
|
||||
|
||||
#define MIN_VAMP_HUE_UNITS -128
|
||||
#define MAX_VAMP_HUE_UNITS 127
|
||||
|
||||
#define MIN_VAMP_SATURATION_UNITS -128
|
||||
#define MAX_VAMP_SATURATION_UNITS 127
|
||||
|
||||
#define MIN_VAMP_SHARPNESS_UNITS -8
|
||||
#define MAX_VAMP_SHARPNESS_UNITS 7
|
||||
|
||||
//图像格式
|
||||
typedef enum
|
||||
{
|
||||
IMAGE_BMP = 1, //BMP文件格式
|
||||
IMAGE_JPG = 2 //JPG文件格式
|
||||
}enImageType;
|
||||
|
||||
//输入视频源端口
|
||||
typedef enum
|
||||
{
|
||||
VIDEO_IN_1 = 0, //AV视频源1
|
||||
VIDEO_IN_2 = 1, //AV视频源2
|
||||
VIDEO_IN_3 = 2, //AV视频源3
|
||||
VIDEO_IN_4 = 3, //AV视频源4
|
||||
SVIDEO_IN = 4 //SVIDEO视频源
|
||||
}VIDEOSOURCE;
|
||||
|
||||
//视频处理属性
|
||||
typedef enum tagVideoProcAmpProperty
|
||||
{
|
||||
VideoProcAmp_Brightness = 0,
|
||||
VideoProcAmp_Contrast = VideoProcAmp_Brightness + 1,
|
||||
VideoProcAmp_Hue = VideoProcAmp_Contrast + 1,
|
||||
VideoProcAmp_Saturation = VideoProcAmp_Hue + 1,
|
||||
VideoProcAmp_Sharpness = VideoProcAmp_Saturation + 1,
|
||||
VideoProcAmp_Gamma = VideoProcAmp_Sharpness + 1,
|
||||
VideoProcAmp_ColorEnable = VideoProcAmp_Gamma + 1,
|
||||
VideoProcAmp_WhiteBalance = VideoProcAmp_ColorEnable + 1,
|
||||
VideoProcAmp_BacklightCompensation = VideoProcAmp_WhiteBalance + 1,
|
||||
VideoProcAmp_Gain = VideoProcAmp_BacklightCompensation + 1
|
||||
}VideoProcAmpProperty;
|
||||
|
||||
//视频属性
|
||||
typedef enum
|
||||
{
|
||||
VideoProperty_Brightness = VideoProcAmp_Brightness, //亮度
|
||||
VideoProperty_Contrast = VideoProcAmp_Contrast, //对比度
|
||||
VideoProperty_Hue = VideoProcAmp_Hue, //色度
|
||||
VideoProperty_Saturation = VideoProcAmp_Saturation, //饱和度
|
||||
VideoProperty_Gamma = VideoProcAmp_Gamma, //Gamma校验
|
||||
VideoProperty_ColorEnable = VideoProcAmp_ColorEnable,
|
||||
VideoProperty_WhiteBalance = VideoProcAmp_WhiteBalance, //白平衡
|
||||
VideoProperty_BacklightCompensation = VideoProcAmp_BacklightCompensation,
|
||||
VideoProperty_Sharpness = VideoProcAmp_Sharpness,
|
||||
VideoProperty_Gain = VideoProcAmp_Gain,
|
||||
} VideoProperty;
|
||||
|
||||
//SDK3000属性页
|
||||
typedef enum
|
||||
{
|
||||
PropertyDlg_VideoCaptureFilter = 0,//SDK3000视频设备属性页
|
||||
PropertyDlg_VideoCapturePin, //SDK3000视频设备输出引脚属性页
|
||||
PropertyDlg_VideoCrossbar, //Video Crossbar属性页
|
||||
PropertyDlg_DeinterlaceFilter, //Deinterlace设备属性页
|
||||
PropertyDlg_DeinterlaceCapturePin, //Deinterlace设备捕获引脚属性页
|
||||
PropertyDlg_DeinterlacePreviewPin //Deinterlace设备预览引脚属性页
|
||||
} PropertyDialog;
|
||||
|
||||
//视频运行状态
|
||||
typedef enum{
|
||||
STATE_STOP = 0,
|
||||
STATE_RUN,
|
||||
STATE_PAUSE
|
||||
}GRAPH_STATE;
|
||||
|
||||
//视频格式
|
||||
//VideoSubType_YUY2格式支持SDK3000所有功能。
|
||||
//视频制式除VideoSubType_YUY2外,只能支持视频原始回调方式。
|
||||
typedef enum
|
||||
{
|
||||
VideoSubType_None = -1,
|
||||
VideoSubType_RGB555 = 0,
|
||||
VideoSubType_RGB24,
|
||||
VideoSubType_YUY2,
|
||||
VideoSubType_RGB8,
|
||||
VideoSubType_RGB32
|
||||
} VideoSubType;
|
||||
|
||||
//视频制式
|
||||
typedef enum
|
||||
{
|
||||
VideoStandard_None = 0x00000000,
|
||||
VideoStandard_NTSC_M = 0x00000001,
|
||||
VideoStandard_NTSC_M_J = 0x00000002,
|
||||
VideoStandard_NTSC_433 = 0x00000004,
|
||||
VideoStandard_PAL_B = 0x00000010,
|
||||
VideoStandard_PAL_D = 0x00000020,
|
||||
VideoStandard_PAL_H = 0x00000080,
|
||||
VideoStandard_PAL_I = 0x00000100,
|
||||
VideoStandard_PAL_M = 0x00000200,
|
||||
VideoStandard_PAL_N = 0x00000400,
|
||||
VideoStandard_PAL_60 = 0x00000800,
|
||||
VideoStandard_SECAM_B = 0x00001000,
|
||||
VideoStandard_SECAM_D = 0x00002000,
|
||||
VideoStandard_SECAM_G = 0x00004000,
|
||||
VideoStandard_SECAM_H = 0x00008000,
|
||||
VideoStandard_SECAM_K = 0x00010000,
|
||||
VideoStandard_SECAM_K1 = 0x00020000,
|
||||
VideoStandard_SECAM_L = 0x00040000,
|
||||
VideoStandard_SECAM_L1 = 0x00080000,
|
||||
} VideoStandard;
|
||||
|
||||
//场类型
|
||||
typedef enum
|
||||
{
|
||||
Even_Field = 0, //偶场
|
||||
Odd_Field, //奇场
|
||||
Odd_Even_Field, //奇场、偶场
|
||||
Interlaced_Field//复合场
|
||||
}VideoFieldType;
|
||||
|
||||
|
||||
#define MAX_FACENAME 32
|
||||
//视频叠加参数
|
||||
typedef struct
|
||||
{
|
||||
LONG cfHeight; //字符高度
|
||||
LONG cfWidth; //字符宽度
|
||||
LONG cfWeight; //字符粗细
|
||||
LONG cfSpacing; //字符间距
|
||||
BOOL cfItalic; //斜体
|
||||
BOOL cfUnderline; //下划线
|
||||
BOOL cfStrikeOut; //删除线
|
||||
COLORREF cfBkColor; //背景色
|
||||
COLORREF cfTextColor; //前景色
|
||||
TCHAR cfFaceName[MAX_FACENAME]; //字体名
|
||||
}OSDPARAM;
|
||||
|
||||
//视频属性范围
|
||||
typedef struct
|
||||
{
|
||||
long nValue; //当前值
|
||||
long nMin; //最小值
|
||||
long nMax; //最大值
|
||||
long nStepDelta; //最小步进值
|
||||
long nDefault; //默认值
|
||||
long nCapsFlags; //风格
|
||||
} VIDEOPROPERTYRANGE;
|
||||
|
||||
//视频流信息
|
||||
typedef struct
|
||||
{
|
||||
VideoSubType subtype; //视频格式
|
||||
RECT rcSource; //视频源范围
|
||||
RECT rcTarget; //目标视频范围
|
||||
DWORD dwBitRate; //比特率
|
||||
DWORD dwBitErrorRate; //比特错误率
|
||||
LONGLONG AvgTimePerFrame;//帧率
|
||||
BITMAPINFOHEADER bmiHeader; //宽、高、颜色位率等
|
||||
} VIDEOSTREAMINFO;
|
||||
|
||||
//视频源输入频率
|
||||
typedef enum
|
||||
{ //@enum Field frequency
|
||||
FIELD_FREQ_50HZ = 0, //@emem source is 50 Hz (PAL)
|
||||
FIELD_FREQ_60HZ = 1, //@emem source is 60 Hz (NTSC)
|
||||
FIELD_FREQ_0HZ = 2 //@emem source is 0 Hz (NO SIGNL)
|
||||
}eFieldFrequency;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
E_MPEG_MPEG1 = 0, // generic ISO/IEC 11172-1/2
|
||||
E_MPEG_VCD, // MPEG-1 VideoCD
|
||||
E_MPEG_MPEG2, // generic ISO/IEC 13818-1/2
|
||||
E_MPEG_SVCD, // MPEG-2 SuperVCD
|
||||
E_MPEG_DVD // MPEG-2 DVD-Video
|
||||
}eVideoMpegType;
|
||||
|
||||
enum TVRecordFormat
|
||||
{
|
||||
TVRF_AVI = 0,
|
||||
TVRF_MPEG1 = 1,
|
||||
TVRF_MPEG2 = 2,
|
||||
TVRF_MPEG4 = 3,
|
||||
TVRF_VCD = 4,
|
||||
TVRF_SVCD = 5,
|
||||
TVRF_DVD = 6,
|
||||
TVRF_HIDVD = 7,
|
||||
TVRF_CUSTOM
|
||||
};
|
||||
|
||||
|
||||
//动态检测回调
|
||||
typedef void (CALLBACK *PrcCbMotionDetect)( long lnCardID, BOOL bMove, LPVOID lpContext );
|
||||
//捕获原始流回调
|
||||
typedef void (CALLBACK *PrcCapSourceStream)( long lnCardID, long pBuf, long lnWidth, long lnHeight, long lnBiCount );
|
||||
//IO报警回调
|
||||
typedef void (CALLBACK *PrcIoAlertCallBack)( long lnCardID );
|
||||
typedef void (CALLBACK *PrcPicMessage)( long lnCardID, long pBuf, long lnWidth, long lnHeight);
|
||||
//初始化SDK
|
||||
SDK_API HRESULT __stdcall VCAInitSdk();
|
||||
//释放SDK资源
|
||||
SDK_API void __stdcall VCAUnInitSdk();
|
||||
//得到SDK3000设备总数
|
||||
SDK_API HRESULT __stdcall VCAGetDevNum(int *pDevNum);
|
||||
//连接设备
|
||||
SDK_API HRESULT __stdcall VCAConnectDevice(int nCards, BOOL bOverlay, HWND hParentWnd, SIZE& szVidSize, VIDEOSOURCE enVideoSource, int nFrameRate = 25, VideoSubType enVideoSubType = VideoSubType_YUY2);
|
||||
//断开设备
|
||||
SDK_API HRESULT __stdcall VCADisConnectDevice(int nCards);
|
||||
//设置捕获文件名
|
||||
SDK_API HRESULT __stdcall VCASetCaptureFile(int nCards, char* szFileName);
|
||||
//开始捕获
|
||||
SDK_API HRESULT __stdcall VCAStartCapture(int nCards);
|
||||
//停止捕获
|
||||
SDK_API HRESULT __stdcall VCAStopCapture(int nCards);
|
||||
//是否正在捕获
|
||||
SDK_API HRESULT __stdcall VCAIsCapturing(int nCards, BOOL* bIsCapturing);
|
||||
//设置视频在显示窗口中的区域
|
||||
SDK_API HRESULT __stdcall VCASetWindowPos(int nCards, RECT rc);
|
||||
//设置动态检测
|
||||
SDK_API HRESULT __stdcall VCAEnableMotionDetect(int nCards, BOOL bEnaDetect, BYTE *pAreaMap, LONG nSizeOfMap, LONG nPersistTime, LPVOID lpContext, PrcCbMotionDetect OnObjectMove);
|
||||
//抓图
|
||||
SDK_API HRESULT __stdcall VCACapturePicture(int nCards, char* szFileName, enImageType enImgType, RECT* rcImg, long nQuality, long nCapCount, BOOL bCapFast );
|
||||
//切换视频源
|
||||
SDK_API HRESULT __stdcall VCASwitchVideoSource(int nCards, VIDEOSOURCE enVideoSource, BOOL bFast = TRUE );
|
||||
//设置视频属性
|
||||
SDK_API HRESULT __stdcall VCASetVideoPropertyValue(int nCards, VideoProperty eVideoProperty, long value);
|
||||
//得到视频属性
|
||||
SDK_API HRESULT __stdcall VCAGetVideoPropertyValue(int nCards, VideoProperty eVideoProperty, VIDEOPROPERTYRANGE* pVPR);
|
||||
//IO输出
|
||||
SDK_API HRESULT __stdcall VCAIOAlertOut(int nCards, BOOL bHighLevel);
|
||||
//初始化IO输入
|
||||
SDK_API HRESULT __stdcall VCAInitIOAlertIn(int nCards, PrcIoAlertCallBack ppCall);
|
||||
//开始等待IO输入
|
||||
SDK_API HRESULT __stdcall VCAStartIOAlertIn(int nCards, BOOL bHigh);
|
||||
//停止等待IO输入
|
||||
SDK_API HRESULT __stdcall VCAStopIOAlertIn(int nCards);
|
||||
//设置文本叠加
|
||||
SDK_API HRESULT __stdcall VCASetTextOSD(int nCards, BOOL bEnableOSD, TCHAR* pText, POINT ptTopLeft, BOOL bTransparent, OSDPARAM* pOSD, HWND nWndMain);
|
||||
//设置时间叠加
|
||||
SDK_API HRESULT __stdcall VCASetDateTimeOSD(int nCards, BOOL bEnableOSD, POINT ptTopLeft, BOOL bTransparent, OSDPARAM* pOSD, HWND nWndMain);
|
||||
//显示属性页对话框
|
||||
SDK_API HRESULT __stdcall VCADisplayPropertyDialogs(int nCards, PropertyDialog id, HWND hParentWnd, char* szCaption);
|
||||
//运行视频流
|
||||
SDK_API HRESULT __stdcall VCARun(int nCards);
|
||||
//暂停视频流
|
||||
SDK_API HRESULT __stdcall VCAPause(int nCards);
|
||||
//停止视频流
|
||||
SDK_API HRESULT __stdcall VCAStop(int nCards);
|
||||
//得到视频流状况
|
||||
SDK_API HRESULT __stdcall VCAGetStreamStatus(int nCards, GRAPH_STATE* pStatus);
|
||||
//设置视频帧率
|
||||
SDK_API HRESULT __stdcall VCASetFrameRate(int nCards, int nFrameRate);
|
||||
//得到视频信息
|
||||
SDK_API HRESULT __stdcall VCAGetVideoInfo(int nCards, VIDEOSTREAMINFO * pVSI);
|
||||
//设置视频信息
|
||||
SDK_API HRESULT __stdcall VCASetVideoInfo(int nCards, VIDEOSTREAMINFO * pVSI);
|
||||
//设置视频大小为全屏
|
||||
SDK_API HRESULT __stdcall VCASetFullScreen(int nCards, BOOL bFullSrc);
|
||||
//是否视频为全屏模式
|
||||
SDK_API HRESULT __stdcall VCAIsFullSrcMode(int nCards, BOOL* pFullSrc);
|
||||
//得到视频制式
|
||||
SDK_API HRESULT __stdcall VCAGetVideoStandard(int nCards, VideoStandard* pVideoStandard, long* pAvailable);
|
||||
//设置视频制式
|
||||
SDK_API HRESULT __stdcall VCASetVideoStandard(int nCards, VideoStandard vs);
|
||||
//枚举视频压缩格式
|
||||
SDK_API HRESULT __stdcall VCAEnumVideoCompressor(int nCards, char* arrCompDevName,int * pCompDevCount);
|
||||
//得到视频当前压缩格式
|
||||
SDK_API HRESULT __stdcall VCAGetCurrentVideoCompressor(int nCards, char* pCompDevName);
|
||||
//枚举视频当前压缩格式
|
||||
SDK_API HRESULT __stdcall VCASetCurrentVideoCompressor(int nCards, char* pCompDevName);
|
||||
//设置视频原始回调格式
|
||||
SDK_API HRESULT __stdcall VCAEnableCapSourceStream(int nCards, BOOL bCapStream, VideoFieldType enVideoFieldType, PrcCapSourceStream pCapStream);
|
||||
//
|
||||
SDK_API HRESULT __stdcall VCAEnablePicMessage(int nCards, BOOL bPicMessage, PrcPicMessage pPicMessage);
|
||||
//读E2C
|
||||
SDK_API HRESULT __stdcall VCAReadE2C(int nCards, int iSubAddr, BYTE* pucData);
|
||||
//写E2C
|
||||
SDK_API HRESULT __stdcall VCAWriteE2C(int nCards, int iSubAddr, BYTE ucData);
|
||||
//得到视频源输入频率( 0HZ / 50HZ / 60HZ )对应( 无信号 / PAL制 / NTSC制 ), 参考枚举变量eFieldFrequency
|
||||
SDK_API HRESULT __stdcall VCAGetVideoFieldFrq(int nCards, eFieldFrequency* pFieldFrequency);
|
||||
//枚举音频设备
|
||||
SDK_API HRESULT __stdcall VCAEnumAudioCaptureDev(int nCards, char* arrAudDevName,int * pAudDevCount);
|
||||
//通过音频设备名设置音频采集,一个音频设备(声卡)仅供一路卡, strAudDevName 为"",表示取消音频采集
|
||||
SDK_API HRESULT __stdcall VCASetCurrentAudioCompressorName(int nCards, char* strAudDevName);
|
||||
//通过音频设备序号设置音频采集,一个音频设备(声卡)仅供一路卡, nCurrentAudDevice 为-1,表示取消音频采集
|
||||
SDK_API HRESULT __stdcall VCASetCurrentAudioCompressorNum(int nCards, int nCurrentAudDevice);
|
||||
//
|
||||
SDK_API HRESULT __stdcall VCASetRecordMode(int nCards, TVRecordFormat tvRF);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 拷贝图像数据到剪贴板
|
||||
SDK_API HRESULT __stdcall VCACopyToClipBoard(int nCards);
|
||||
// 检测是否按Overlay方式显示
|
||||
SDK_API HRESULT __stdcall VCAIsOverlay(int nCards, BOOL* bIsOverlay);
|
||||
|
||||
|
||||
SDK_API HRESULT __stdcall VCASetVideoMpegType(int nCards, eVideoMpegType eType);
|
||||
|
||||
#endif
|
||||
Binary file not shown.
Reference in New Issue
Block a user