Fix progress event output when using the convert(ArgumentContainer) function

This commit is contained in:
Cry dsch 2020-02-08 20:29:30 +01:00
parent de5c55c028
commit 16a70ebd72
2 changed files with 12 additions and 1 deletions

View file

@ -40,5 +40,9 @@ public override string GetStringValue()
{
return string.Join(" ", Value.Select(v => ArgumentStringifier.Input(v)));
}
public VideoInfo[] GetAsVideoInfo()
{
return Value.Select(v => new VideoInfo(v)).ToArray();
}
}
}

View file

@ -436,14 +436,21 @@ public VideoInfo ReplaceAudio(VideoInfo source, FileInfo audio, FileInfo output,
public VideoInfo Convert(ArgumentContainer arguments)
{
var args = ArgumentBuilder.BuildArguments(arguments);
var output = ((OutputArgument)arguments[typeof(OutputArgument)]).GetAsFileInfo();
var sources = ((InputArgument)arguments[typeof(InputArgument)]).GetAsVideoInfo();
// Sum duration of all sources
_totalTime = TimeSpan.Zero;
foreach (var source in sources)
_totalTime += source.Duration;
if (!RunProcess(arguments, output))
{
throw new FFMpegException(FFMpegExceptionType.Operation, "Could not replace the video audio.");
}
_totalTime = TimeSpan.MinValue;
return new VideoInfo(output);
}