public unsafe MmalCameraComponent() : base(MmalParameters.MmalComponentDefaultCamera) { Outputs.Add(new OutputPort((IntPtr)(&(*Ptr->Output[0])), this, Guid.NewGuid())); Outputs.Add(new VideoPort((IntPtr)(&(*Ptr->Output[1])), this, Guid.NewGuid())); Outputs.Add(new StillPort((IntPtr)(&(*Ptr->Output[2])), this, Guid.NewGuid())); CameraInfo = new MmalCameraInfoComponent(); PreviewPort = Outputs[MmalCameraPreviewPort]; VideoPort = Outputs[MmalCameraVideoPort]; StillPort = Outputs[MmalCameraStillPort]; PreviewPort.SetStereoMode(CameraConfig.StereoMode); VideoPort.SetStereoMode(CameraConfig.StereoMode); StillPort.SetStereoMode(CameraConfig.StereoMode); Control.SetParameter(MmalParametersCamera.MmalParameterCameraNum, 0); }
void InitialisePreview() { var portConfig = new MmalPortConfig( CameraConfig.Encoding, CameraConfig.EncodingSubFormat, width: CameraConfig.Resolution.Width, height: CameraConfig.Resolution.Height, framerate: CameraConfig.Framerate); MmalLog.Logger.LogDebug("Commit preview"); PreviewPort.Configure(portConfig, null, null); // Use Raspistill values. if (CameraConfig.ShutterSpeed > 6000000) { PreviewPort.SetFramerateRange(new MmalRational(5, 1000), new MmalRational(166, 1000)); } else if (CameraConfig.ShutterSpeed > 1000000) { PreviewPort.SetFramerateRange(new MmalRational(166, 1000), new MmalRational(999, 1000)); } }