public void InputVideoDecodeConfiguration_MultipleFilters_InvalidConfigDetected()
        {
            var parameters = new StackAllOptions
            {
                InputVideoFile      = "a.mp4",
                InputVideoArguments = "-vf scale=-1:1080",
                Filters             = new List <string> {
                    "MaxFilter", "MinFilter"
                },
                OutputVideoFile = "a2.mp4"
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);
            basicEnvironment.ConfigureFilters(parameters.Filters);
            basicEnvironment.ConfigureOuptutMode(parameters);

            basicEnvironment.ThrowMe.Should().BeFalse();
            basicEnvironment.Filters.Should().HaveCount(2);

            basicEnvironment.CheckConstraints();

            basicEnvironment.ThrowMe.Should().BeTrue();
        }
        public void InputConfiguration_NotSpecified_ThrowMeFlagSet()
        {
            var parameters       = new StackAllOptions();
            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);

            basicEnvironment.ThrowMe.Should().BeTrue();
        }
Exemple #3
0
        public void FilterConfiguration_NoConfiguration_SetsThrowMeFlag()
        {
            var parameters = new StackAllOptions {
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureFilters(parameters.Filters);

            basicEnvironment.ThrowMe.Should().BeTrue();
        }
Exemple #4
0
        public void OutputFileConfiguration_EmptyConfiguration_SetFlagThrowMe()
        {
            var parameters = new StackAllOptions
            {
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureOuptutMode(parameters);

            basicEnvironment.ThrowMe.Should().BeTrue();
        }
        public void InputFolderConfiguration_FolderDoesNotExist_ThrowMeFlagSet()
        {
            var parameters = new StackAllOptions
            {
                InputFolder = "test",
            };
            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);

            basicEnvironment.ThrowMe.Should().BeTrue();
        }
Exemple #6
0
        public void FilterConfiguration_AllowsFriendlyInput_InputsParseCorrectly(string input, int expectedFilters)
        {
            var parameters = new StackAllOptions
            {
                Filters = input.Split(' ')
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureFilters(parameters.Filters);

            basicEnvironment.Filters.Cast <IFilter <MutableByteImage> >().Should().HaveCount(expectedFilters);
        }
        public void InputStreamConfiguration_SizeNotSpecified_ThrowMeFlagSet()
        {
            var parameters = new StackAllOptions
            {
                UseInputPipe = true,
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);

            basicEnvironment.ThrowMe.Should().BeTrue();
        }
Exemple #8
0
        public void FilterConfiguration_AttackDecayFilter_CreatesAttackDecayFilter()
        {
            var parameters = new StackAllOptions
            {
                Filters = "--filters AttackDecayFilter Attack=1.0 Decay=0.2".Split(' ')
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureFilters(parameters.Filters);

            basicEnvironment.Filters.Count.Should().Be(1);
            basicEnvironment.ThrowMe.Should().BeFalse();
        }
Exemple #9
0
        public void FilterConfiguration_FilterConfig_CreatesRequestedFilter(string input)
        {
            var parameters = new StackAllOptions
            {
                Filters = input.Split(' ')
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureFilters(parameters.Filters);

            basicEnvironment.Filters.Count.Should().Be(1);
            basicEnvironment.ThrowMe.Should().BeFalse();
        }
Exemple #10
0
        public void OutputStreamConfiguration_StreamWriter_IsCreated()
        {
            var parameters = new StackAllOptions
            {
                UseOutputPipe = true
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureOuptutMode(parameters);

            basicEnvironment.ThrowMe.Should().BeFalse();
            basicEnvironment.OutputMode.Should().NotBeNull();
        }
Exemple #11
0
        public void FilterConfiguration_AttackiDecayFilter_ParametersSetCorrectly(string input, string expectedName)
        {
            var parameters = new StackAllOptions
            {
                Filters = input.Split(' ')
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureFilters(parameters.Filters);

            var createdFilter = basicEnvironment.Filters.Single().As <IFilter <MutableByteImage> >();

            createdFilter.Name.Should().Be(expectedName);
        }
Exemple #12
0
        public void OutputFileConfiguration_FileWriter_IsCreated()
        {
            var parameters = new StackAllOptions
            {
                OutputFolder     = ".",
                OutputFilePrefix = "timelapse"
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureOuptutMode(parameters);

            basicEnvironment.ThrowMe.Should().BeFalse();
            basicEnvironment.OutputMode.Should().NotBeNull();
        }
        public void InputStreamConfiguration_SizeParseable_InputReaderCreated()
        {
            var parameters = new StackAllOptions
            {
                UseInputPipe = true,
                InputSize    = "1x20:1080"
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);

            basicEnvironment.ThrowMe.Should().BeFalse();
            basicEnvironment.InputMode.Should().NotBeNull();
        }
        public void InputFileConfiguration_FileReader_IsCreated()
        {
            var parameters = new StackAllOptions
            {
                InputFiles = new string[] { "a.jpg", "b.jpg", "c.jpg" },
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);

            basicEnvironment.InputMode.Should().NotBeNull();
            basicEnvironment.ThrowMe.Should().BeFalse();
            basicEnvironment.InputMode.Should().BeOfType <ImageMutliFileOrderedReader <MutableByteImage> >();
        }
Exemple #15
0
        public void FilterConfiguration_DefaultFilterName_NameIsSet()
        {
            var parameters = new StackAllOptions
            {
                Filters = "--filters AttackDecayFilter Attack=0.2 Decay=1.0, MaxFilter, MinFilter".Split(' ')
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureFilters(parameters.Filters);

            var createdFilters = basicEnvironment.Filters.Cast <IFilter <MutableByteImage> >().ToList();

            createdFilters.Count.Should().Be(3);
            createdFilters.Select(x => x.Name).Distinct().Count().Should().Be(3);
        }
        public void InputVideoDecodeConfiguration_ValidConfig_InputReaderCreated()
        {
            var parameters = new StackAllOptions
            {
                InputVideoFile      = "a.mp4",
                InputVideoArguments = "-vf scale=-1:1080",
            };

            var basicEnvironment = new StackingEnvironment();

            basicEnvironment.ConfigureInputMode(parameters);

            basicEnvironment.ThrowMe.Should().BeFalse();
            basicEnvironment.InputMode.Should().NotBeNull();
            basicEnvironment.InputMode.Should().BeOfType <ffmpeg.FfmpegVideoReader>();
        }