Example #1
0
        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;
                }
            }
        }
Example #2
0
 private static void EmitFileWarnings(CaptureRequest request)
 {
     if (!request.File.Exists)
     {
         Log.Error(m => m("Video file '{0}' not found", request.File.FullName));
     }
 }
Example #3
0
        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);
        }