public bool OpenDevice() { if (IsOpen) { return(IsOpen); } IsOpen = OpenVideoDevice(); if (IsOpen) { int width = 0, height = 0, format = 0; VsNetCameraSdk.Camera_GetInfo(_handle, ref width, ref height, ref format); Width = width; Height = height; Format = (VideoDeviceDataFormat)format; if (_buffer == null) { _buffer = new byte[GetBufferSize()]; } //TODO 应使用配置 _frameRate = FrameRateSetting.GetCameraFrameRate(width + height); StartPullDeviceData(); } return(IsOpen); }
internal VideoDevice(string videoDeviceName, int id, ILoggerFacade logger) { ID = id; Name = videoDeviceName; _logger = logger; _handle = VsNetCameraSdk.Camera_AllocInstance(); SetDeviceAvailableStatus(); }
public bool CloseDevice() { if (!IsOpen) { return(true); } StopPullDeviceData(); IsOpen = false; VsNetCameraSdk.Camera_CloseCamera(_handle); return(true); }
protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { CloseDevice(); _buffer = null; } VsNetCameraSdk.Camera_FreeInstance(_handle); disposedValue = true; } }
protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { foreach (var videoDevice in _videoDeviceList) { videoDevice.Dispose(); } } VsNetCameraSdk.Camera_FreeInstance(_handle); disposedValue = true; } }
private int GetVideoDeviceTotal() { return(VsNetCameraSdk.Camera_GetCount(_handle)); }
private string GetVideoDeviceName(int index) { byte[] b = new byte[50]; VsNetCameraSdk.Camera_GetName(_handle, index, ref b[0]); return(b.GetString()); }
public VideoDeviceManager(ILoggerFacade logger) { _logger = logger; _handle = VsNetCameraSdk.Camera_AllocInstance(); _videoDeviceList = GetVideoDeviceList(); }
private bool OpenVideoDevice() { return(VsNetCameraSdk.Camera_OpenCamera(_handle, ID, false, 0, 0)); }
private void CloseVideoDevice() { VsNetCameraSdk.Camera_CloseCamera(_handle); }
private IntPtr GetDeviceBitmapInfoHeader() { return(VsNetCameraSdk.Camera_GetInfoEx(_handle)); }
private void GetDeviceData(ref byte[] b) { VsNetCameraSdk.Camera_QueryFrame(_handle, ref b[0], b.Length); }