public void Command_OutputManager_Verify() { var command = CommandHelper.CreateCommand(); Assert.Throws <ArgumentNullException>(() => command.OutputManager.Add(null)); Assert.Throws <ArgumentException>(() => command.OutputManager.AddRange(null)); Assert.DoesNotThrow(() => command.OutputManager.Add(CommandOutput.Create(Resource.From(AssetPath)))); var assetsList = new List <IContainer> { Resource.From(AssetPath), Resource.From(AssetPath) }; var commandList = new List <CommandOutput> { CommandOutput.Create(assetsList[0]), CommandOutput.Create(assetsList[1]) }; Assert.DoesNotThrow(() => command.OutputManager.AddRange(commandList)); Assert.True(command.Outputs.Count == 3); }
public static CommandOutput SetupCommandOutputMaps <TOutputType>(CommandStage stage, SettingsCollection settings, string fileName) where TOutputType : class, IContainer, new() { var settingsCopy = settings.Copy(); var commandOutput = CommandOutput.Create(Resource.CreateOutput <TOutputType>(), settingsCopy); stage.StreamIdentifiers.ForEach(streamId => { var theStream = StreamFromStreamIdentifier(stage.Command, streamId); var theResource = CommandInputFromStreamIdentifier(stage.Command, streamId); if (theResource == null) { commandOutput.Settings.Merge(new Map(streamId), FFmpegMergeOptionType.NewWins); } else { var resourceIndex = IndexOfResource(stage.Command, streamId); commandOutput.Settings.Merge(new Map(string.Format("{0}:{1}", resourceIndex, theStream.ResourceIndicator)), FFmpegMergeOptionType.NewWins); } commandOutput.Resource.Streams.Add(theStream.Copy()); }); if (!string.IsNullOrWhiteSpace(fileName)) { commandOutput.Resource.Name = fileName; } return(commandOutput); }
public static CommandOutput SetupCommandOutput <TOutputType>(FFmpegCommand command, SettingsCollection settings, string fileName) where TOutputType : class, IContainer, new() { var settingsCopy = settings.Copy(); var commandOutput = CommandOutput.Create(Resource.CreateOutput <TOutputType>(), settingsCopy); commandOutput.Resource.Streams.AddRange(command.Inputs.SelectMany(i => i.Resource.Streams.Select(s => s.Copy()))); if (!string.IsNullOrWhiteSpace(fileName)) { commandOutput.Resource.Name = fileName; } return(commandOutput); }
public void CommandOutputManager_Verify() { var factory = CommandFactory.Create(); var command = factory.CreateOutputCommand() .WithInput <VideoStream>(Assets.Utilities.GetVideoFile()) .WithInput <VideoStream>(Assets.Utilities.GetVideoFile()); var commandOutputManager = CommandOutputManager.Create(command.Command); var commandOutput = CommandOutput.Create(new Mp4()); Assert.DoesNotThrow(() => commandOutputManager.Add(commandOutput)); Assert.Throws <ArgumentException>(() => commandOutputManager.Add(commandOutput)); Assert.True(command.Command.Outputs.Count == 1); }