public bool SetKernelFrame(Bitmap frame, bool autoFree) { if (frame != null) { if (IsKernelInit) { IntPtr hBmp = IntPtr.Zero; if (autoFree) { hBmp = frame.GetHbitmap(); frame.Dispose(); frame = null; } if (hBmp == IntPtr.Zero) { Bitmap bmp = new Bitmap(frame); hBmp = bmp.GetHbitmap(); bmp.Dispose(); } return(VideoSourceSDKWrap.SetVideoSourceFrame(Name, hBmp)); } else if (autoFree) { frame.Dispose(); frame = null; } } return(false); }
public bool KernelInit() { if (IsOpen && !IsKernelInit) { if (mGetFrameFun == null) { mGetFrameFun = new GetFrameFunPtr(OnGetFrameFun); } if (VideoSourceSDKWrap.CreateVideoSource(Name, mGetFrameFun)) { IsKernelInit = true; if (mVideoSourceKernelStateChanged == null) { mVideoSourceKernelStateChanged = new VideoSourceKernelStateChanged(DoVideoSourceKernelStateChanged); } VideoSourceSDKWrap.SetVideoSourceStateChangedCallback(Name, mVideoSourceKernelStateChanged); VideoSourceSDKWrap.SetVideoSourceParams(Name, mConfig.FPS, (int)mConfig.RunMode, mConfig.IsAutoTune, mConfig.CPU); } } return(IsKernelInit); }
public bool KernelStop() { if (IsKernelInit) { return(VideoSourceSDKWrap.StopVideoSource(Name)); } return(false); }
public bool KernelRefresh() { if (IsKernelInit) { return(VideoSourceSDKWrap.SetVideoSourceParams(Name, mConfig.FPS, (int)mConfig.RunMode, mConfig.IsAutoTune, mConfig.CPU)); } return(false); }
public bool KernelCleanup() { if (IsKernelInit) { KernelStop(); SystemContext.MonitorManager.ClearFromVSName(Name); if (VideoSourceSDKWrap.FreeVideoSource(Name)) { IsKernelInit = false; } } return(!IsKernelInit); }