public static ICaptureGrab GetCapture(CaptureRequest request) { Log.Info(m => m("CV Library={0}", CvInvokeRaspiCamCV.CVLibrary)); Log.Info(m => m("Capturing {0}", request)); if (request.File != null) { EmitFileWarnings(request); return new CaptureFile(request.File.FullName); } else { EmitWarnings(request.Device); if (request.Device == CaptureDevice.Pi) { return new CapturePi(request.Config); } else { var usbCapture= new CaptureUsb(request.CameraIndex); usbCapture.SetCaptureProperties(request.Config); return usbCapture; } } }
private static void EmitFileWarnings(CaptureRequest request) { if (!request.File.Exists) { Log.Error(m => m("Video file '{0}' not found", request.File.FullName)); } }
private void SetupCapture() { if (_capture != null) { _capture.Dispose(); } var request = new CaptureRequest { Device = CaptureDevice.Usb ,CameraIndex = (int) spinEditCameraIndex.Value }; request.Config = HarvestFormCaptureConfig(); if (radFile.Checked) { request.File = _videoFileSource; } //var captureDevice = CaptureDevice.Pi; if (EnvironmentService.IsUnix) { request.Device = CaptureDevice.Pi; } CapturePi.DoMatMagic("CreateCapture"); _capture = CaptureFactory.GetCapture(request); AssignCaptureToConsumers(_capture); SetupFramerateTracking(_capture); tabControlMain_SelectedIndexChanged(null, null); }