public void RawVideoConvert() { TestHelper.BeginTest("RawVideoConvert"); TestHelper.SetConfigurationDefaults(); AsyncContext.Run(async() => { TestHelper.CleanDirectory("/home/pi/videos/tests"); using (var ffCaptureHandler = FFmpegCaptureHandler.RawVideoToAvi("/home/pi/videos/tests", "testing1234")) using (var vidEncoder = new MMALVideoEncoder(ffCaptureHandler)) using (var renderer = new MMALVideoRenderer()) { _fixture.MMALCamera.ConfigureCameraSettings(); vidEncoder.ConfigureOutputPort(0, MMALEncoding.H264, MMALEncoding.I420, 0, 25000000); _fixture.MMALCamera.Camera.VideoPort.ConnectTo(vidEncoder); _fixture.MMALCamera.Camera.PreviewPort.ConnectTo(renderer); // Camera warm up time await Task.Delay(2000); var cts = new CancellationTokenSource(TimeSpan.FromMinutes(1)); // Take video for 1 minute. await _fixture.MMALCamera.ProcessAsync(_fixture.MMALCamera.Camera.VideoPort, cts.Token); _fixture.CheckAndAssertFilepath("/home/pi/videos/tests/testing1234.avi"); } }); }
public void ChangeEncodingType() { TestHelper.BeginTest("Image - ChangeEncodingType"); TestHelper.SetConfigurationDefaults(); AsyncContext.Run(async() => { TestHelper.CleanDirectory("/home/pi/images/tests"); using (var imgCaptureHandler = new ImageStreamCaptureHandler("/home/pi/images/tests", "jpg")) using (var preview = new MMALNullSinkComponent()) using (var imgEncoder = new MMALImageEncoder(imgCaptureHandler)) { _fixture.MMALCamera.ConfigureCameraSettings(); imgEncoder.ConfigureOutputPort(MMALEncoding.JPEG, MMALEncoding.I420, 90); // Create our component pipeline. _fixture.MMALCamera.Camera.StillPort .ConnectTo(imgEncoder); _fixture.MMALCamera.Camera.PreviewPort .ConnectTo(preview); // Camera warm up time await Task.Delay(2000); await _fixture.MMALCamera.ProcessAsync(_fixture.MMALCamera.Camera.StillPort); _fixture.CheckAndAssertFilepath(imgCaptureHandler.GetFilepath()); } using (var imgCaptureHandler = new ImageStreamCaptureHandler("/home/pi/images/tests", "bmp")) using (var preview = new MMALNullSinkComponent()) using (var imgEncoder = new MMALImageEncoder(imgCaptureHandler)) { imgEncoder.ConfigureOutputPort(MMALEncoding.BMP, MMALEncoding.I420, 90); // Create our component pipeline. _fixture.MMALCamera.Camera.StillPort .ConnectTo(imgEncoder); _fixture.MMALCamera.Camera.PreviewPort .ConnectTo(preview); await _fixture.MMALCamera.ProcessAsync(_fixture.MMALCamera.Camera.StillPort); _fixture.CheckAndAssertFilepath(imgCaptureHandler.GetFilepath()); } }); }
public void TakeVideo(string extension, MMALEncoding encodingType, MMALEncoding pixelFormat) { TestHelper.BeginTest("TakeVideo", encodingType.EncodingName, pixelFormat.EncodingName); TestHelper.SetConfigurationDefaults(); AsyncContext.Run(async() => { TestHelper.CleanDirectory("/home/pi/videos/tests"); using (var vidCaptureHandler = new VideoStreamCaptureHandler("/home/pi/videos/tests", extension)) using (var preview = new MMALVideoRenderer()) using (var vidEncoder = new MMALVideoEncoder(vidCaptureHandler)) { _fixture.MMALCamera.ConfigureCameraSettings(); vidEncoder.ConfigureOutputPort(encodingType, pixelFormat, 10, 25000000); // Create our component pipeline. _fixture.MMALCamera.Camera.VideoPort .ConnectTo(vidEncoder); _fixture.MMALCamera.Camera.PreviewPort .ConnectTo(preview); // Camera warm up time await Task.Delay(2000); CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(15)); // Record video for 20 seconds await _fixture.MMALCamera.ProcessAsync(_fixture.MMALCamera.Camera.VideoPort, cts.Token); _fixture.CheckAndAssertFilepath(vidCaptureHandler.GetFilepath()); } }); }