diff --git a/FFMpegCore.Test/ArgumentBuilderTest.cs b/FFMpegCore.Test/ArgumentBuilderTest.cs index 687c76e..08be2f8 100644 --- a/FFMpegCore.Test/ArgumentBuilderTest.cs +++ b/FFMpegCore.Test/ArgumentBuilderTest.cs @@ -9,10 +9,10 @@ namespace FFMpegCore.Test [TestClass] public class ArgumentBuilderTest : BaseTest { - List concatFiles = new List + private List concatFiles = new List { "1.mp4", "2.mp4", "3.mp4", "4.mp4"}; - FFArgumentBuilder builder; + private FFArgumentBuilder builder; public ArgumentBuilderTest() : base() { @@ -21,7 +21,7 @@ public ArgumentBuilderTest() : base() private string GetArgumentsString(params Argument[] args) { - var container = new ArgumentContainer {new InputArgument("input.mp4")}; + var container = new ArgumentContainer { new InputArgument("input.mp4") }; foreach (var a in args) { container.Add(a); @@ -31,7 +31,6 @@ private string GetArgumentsString(params Argument[] args) return builder.BuildArguments(container); } - [TestMethod] public void Builder_BuildString_IO_1() { @@ -80,8 +79,7 @@ public void Builder_BuildString_BitStream() [TestMethod] public void Builder_BuildString_Concat() { - var container = new ArgumentContainer {new ConcatArgument(concatFiles), new OutputArgument("output.mp4")}; - + var container = new ArgumentContainer { new ConcatArgument(concatFiles), new OutputArgument("output.mp4") }; var str = builder.BuildArguments(container); @@ -96,7 +94,6 @@ public void Builder_BuildString_Copy_Audio() Assert.AreEqual(str, "-i \"input.mp4\" -c:a copy \"output.mp4\""); } - [TestMethod] public void Builder_BuildString_Copy_Video() { @@ -188,7 +185,7 @@ public void Builder_BuildString_Speed() [TestMethod] public void Builder_BuildString_DrawtextFilter() { - var str = GetArgumentsString(new DrawTextArgument("Stack Overflow", "/path/to/font.ttf", + var str = GetArgumentsString(new DrawTextArgument("Stack Overflow", "/path/to/font.ttf", ("fontcolor", "white"), ("fontsize", "24"), ("box", "1"), @@ -212,7 +209,7 @@ public void Builder_BuildString_StartNumber() public void Builder_BuildString_Threads_1() { var str = GetArgumentsString(new ThreadsArgument(50)); - + Assert.AreEqual(str, "-i \"input.mp4\" -threads 50 \"output.mp4\""); } @@ -224,7 +221,6 @@ public void Builder_BuildString_Threads_2() Assert.AreEqual(str, $"-i \"input.mp4\" -threads {Environment.ProcessorCount} \"output.mp4\""); } - [TestMethod] public void Builder_BuildString_Codec() { @@ -242,10 +238,21 @@ public void Builder_BuildString_Codec_Override() } [TestMethod] - public void Builder_BuildString_Duration() { + public void Builder_BuildString_Duration() + { var str = GetArgumentsString(new DurationArgument(TimeSpan.FromSeconds(20))); Assert.AreEqual(str, "-i \"input.mp4\" -t 00:00:20 \"output.mp4\""); } + + [TestMethod] + public void Builder_BuildString_Raw() + { + var str = GetArgumentsString(new CustomArgument(null)); + Assert.AreEqual(str, "-i \"input.mp4\" \"output.mp4\""); + + str = GetArgumentsString(new CustomArgument("-acodec copy")); + Assert.AreEqual(str, "-i \"input.mp4\" -acodec copy \"output.mp4\""); + } } -} +} \ No newline at end of file diff --git a/FFMpegCore/FFMPEG/Argument/Atoms/CustomArgument.cs b/FFMpegCore/FFMPEG/Argument/Atoms/CustomArgument.cs new file mode 100644 index 0000000..6a38b4e --- /dev/null +++ b/FFMpegCore/FFMPEG/Argument/Atoms/CustomArgument.cs @@ -0,0 +1,14 @@ +namespace FFMpegCore.FFMPEG.Argument +{ + public class CustomArgument : Argument + { + public CustomArgument(string argument) : base(argument) + { + } + + public override string GetStringValue() + { + return Value ?? string.Empty; + } + } +} \ No newline at end of file