Пример #1
0
        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();
        }
Пример #2
0
        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()
                );
        }
Пример #3
0
 // 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));
 }