public void RenderTicksNonReentrant() { var driver = new PipelineDriver(); bool firstInvocationCompleted = false; Node graph1 = new AnonymousNode(() => Assert.True(firstInvocationCompleted)); Task task = null; Node graph0 = new AnonymousNode(() => { task = driver.RenderTicks(new[] { graph1 }, tickCount: 1).ToTask(); Thread.Sleep(1000); firstInvocationCompleted = true; }); driver.RenderTicks(new[] { graph0 }).First(); task.Wait(); }
public void ViewlessPipeline() { var input = new VideoInputNode { FileName = new FilePath(@"..\..\..\..\resources\americanFootball_352x240_125.yuv") }; Node graph = new BrightnessContrastSaturationNode { Contrast = 10 }; //new BlurNode { Radius = 3 }; graph.Inputs[0].Source = input.Outputs[0]; IObservable <Frame> frames = new PipelineDriver().RenderTicks(new[] { graph }, tickCount: input.TickCount) .Select(dic => dic[graph.Outputs[0]]); YuvEncoder.Encode( @"..\..\..\..\output\ViewlessPipeline_sif.yuv", frames.ToEnumerable() ); }
// Render a graph of anonymous int-returning nodes IObservable <int> RenderTicksAnonIntNodes(PipelineDriver driver, AnonIntNode startNode, int tick = 0, CancellationToken?token = null) { return(driver.RenderTicks(new[] { startNode }, token: token).Select(dic => dic[startNode.Outputs[0]].Size.Width)); }