C# 视频监控系列(7):服务器端——封装API(下) [DS40xxSDK.dll] (中)
2009-04-08 08:23:50 来源:WEB开发网#region 3.2视频预览
#region 3.2.1 Overlay预览模式
// 释 义: overlay预览模式
//Overlay通常被称为重叠页面或者是覆盖层,是一种需要特定的硬件支持的页面,通常
//被用于显示实时视频于主页面之上,而不需要Blit操作到主页面或用任何方法改变主页面的
//内容。使用该方式进行预览可以提高预览的画质和降低CPU利用率。
/// <summary>
/// 3.2.1.1设置视频预览模式SetPreviewOverlayMode
/// 说 明: SDK自3.2版本起在部分显卡中实现了HC卡以overlay方式预览的功能(此功
/// 能不支持与H卡混插的状态下),可以提高预览的画质和降低CPU利用率。当预览画面小
/// 于704*576时,需要调用该函数来启动overlay模式,如不设置则自动切换到offscreen模式
/// 进行预览显示,当预览画面大于704*576时,SDK自动切换到overlay模式
///
/// int __stdcall SetPreviewOverlayMode(BOOL bTrue)
/// </summary>
/// <param name="bTrue">是否设置overlay预览方式,也适用于MD卡</param>
/// <returns>0表示显卡支持板卡的overlay预览方式;其他值表示显卡不支持 </returns>
[DllImport("DS40xxSDK.dll")]
public static extern int SetPreviewOverlayMode(bool bTrue);
/// <summary>
/// 3.2.1.2设置overlay关键色SetOverlayColorKey
/// 注意:需要在StartVideoPreview前调用该函数。
/// 说 明: 板卡在显示范围小于704*576时,调用SetPreviewOverlayMode可以开启overlay
/// 预览模式,需调用SetOverlayColorKey设置overlay关键色;当显示范围大于704*576时,
/// 板卡自动切换到overlay预览模式,关键色默认设置为RGB(10,10,10),也可调用
/// SetOverlayColorKey修改关键色。在这两种情况下,都需要将显示窗口的底色设置为和关键
/// 色相一致。否则图像将难以显示。
///
///
/// int __stdcall SetOverlayColorKey(COLORREF DestColorKey)
/// </summary>
/// <param name="DestColorKey">overlay关键色参数(RGB(*,*,*))</param>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int SetOverlayColorKey(int DestColorKey);
//public static extern int SetOverlayColorKey(Color DestColorKey);
/// <summary>
/// 3.2.1.3恢复当前丢失的表面RestoreOverlay
/// 说 明: 恢复当前丢失的表面,例如:当系统按下CTRL+ALT+DEL时系统的OVERLAY
/// 表面会被强制关闭,调用该函数可以恢复OVERLAY表面
///
/// int __stdcall RestoreOverlay()
/// </summary>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int RestoreOverlay();
#endregion
#region 3.2.2 开启及停止视频预览
/// <summary>
/// 3.2.2.1开启视频预览StartVideoPreview
/// 说 明: 启动视频预览,调用SetPreviewOverlayMode后,可进行overlay模式预览,否则,
/// 将默认采用offscreen模式预览。当画面大于704*576时,SDK自动切换到overlay预览模式。
///
/// int __stdcall StartVideoPreview(HANDLE hChannelHandle,HWND WndHandle, RECT *rect,BOOLEAN bOverlay, int VideoFormat, int FrameRate)
/// </summary>
/// <param name="hChannelHandle">通道句柄</param>
/// <param name="WndHandle">显示窗口句柄</param>
/// <param name="rect">
/// 显示窗口内的矩形区域
/// Rect.right 必须为8的倍数
/// Rect.bottom必须为16的倍数
/// </param>
/// <param name="bOverlay">是否启用Overlay预览模式</param>
/// <param name="VideoFormat">视频预览格式(目前无效)</param>
/// <param name="FrameRate">视频预览帧率(PAL:1-25,NTSC:1-30)</param>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int StartVideoPreview(IntPtr hChannelHandle, IntPtr WndHandle, ref Rectangle rect, bool bOverlay, int VideoFormat, int FrameRate);
//public static extern int StartVideoPreview(IntPtr hChannelHandle, IntPtr WndHandle, ref RECT rect, bool bOverlay, int VideoFormat, int FrameRate);
/// <summary>
/// 3.2.2.2停止视频预览StopVideoPreview
/// 说 明: 停止视频预览
///
/// int __stdcall StopVideoPreview(HANDLE hChannelHandle)
/// </summary>
/// <param name="hChannelHandle">通道句柄</param>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int StopVideoPreview(IntPtr hChannelHandle);
#endregion
#region 3.2.3 视频参数的设置及获取
/// <summary>
/// 3.2.3.1设置视频参数SetVideoPara
/// 说 明: 设置视频参数
///
/// int __stdcall SetVideoPara(HANDLE hChannelHandle, int Brightness, int Contrast, int Saturation, int Hue)
/// </summary>
/// <param name="hChannelHandle">通道句柄</param>
/// <param name="Brightness">亮度值(0-255)</param>
/// <param name="Contrast">对比度(0-127)</param>
/// <param name="Saturation">饱和度(0-127)</param>
/// <param name="Hue">色调(0-255)</param>
/// <returns>成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int SetVideoPara(IntPtr hChannelHandle, int Brightness, int Contrast, int Saturation, int Hue);
/// <summary>
/// 3.2.3.2获取视频参数GetVideoPara
/// 说 明: 获取视频参数
///
/// int __stdcall GetVideoPara(HANDLE hChannelHandle, VideoStandard_t *VideoStandard, int*Brightness, int *Contrast, int *Saturation, int *Hue)
/// </summary>
/// <param name="hChannelHandle">通道句柄</param>
/// <param name="VideoStandard">视频制式</param>
/// <param name="Brightness">亮度指针值(0-255)</param>
/// <param name="Contrast">对比度指针值(0-127)</param>
/// <param name="Saturation">饱和度指针值(0-127)</param>
/// <param name="Hue">色调指针值(0-255)</param>
/// <returns> 成功返回0;失败返回错误号</returns>
[DllImport("DS40xxSDK.dll")]
public static extern int GetVideoPara(IntPtr hChannelHandle, VideoStandard_t VideoStandard, out int Brightness, out int Contrast, out int Saturation, out int Hue);
#endregion
#endregion
更多精彩
赞助商链接