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))); 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) public VideoInfo Convert(ArgumentContainer arguments)
{ {
var args = ArgumentBuilder.BuildArguments(arguments);
var output = ((OutputArgument)arguments[typeof(OutputArgument)]).GetAsFileInfo(); 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)) if (!RunProcess(arguments, output))
{ {
throw new FFMpegException(FFMpegExceptionType.Operation, "Could not replace the video audio."); throw new FFMpegException(FFMpegExceptionType.Operation, "Could not replace the video audio.");
} }
_totalTime = TimeSpan.MinValue;
return new VideoInfo(output); return new VideoInfo(output);
} }