Verify specific path

This commit is contained in:
Malte Rosenbjerg 2024-12-04 22:07:22 +02:00
parent f31dc2b1cd
commit a3e5042d78

View file

@ -5,7 +5,7 @@ namespace FFMpegCore.Helpers
{ {
public static class FFMpegHelper public static class FFMpegHelper
{ {
private static bool _ffmpegVerified; private static string? _ffmpegPathVerified;
public static void ConversionSizeExceptionCheck(IMediaAnalysis info) public static void ConversionSizeExceptionCheck(IMediaAnalysis info)
=> ConversionSizeExceptionCheck(info.PrimaryVideoStream!.Width, info.PrimaryVideoStream.Height); => ConversionSizeExceptionCheck(info.PrimaryVideoStream!.Width, info.PrimaryVideoStream.Height);
@ -37,22 +37,23 @@ namespace FFMpegCore.Helpers
public static void VerifyFFMpegExists(FFOptions ffMpegOptions) public static void VerifyFFMpegExists(FFOptions ffMpegOptions)
{ {
if (_ffmpegVerified) var binaryPath = GlobalFFOptions.GetFFMpegBinaryPath(ffMpegOptions);
if (_ffmpegPathVerified != null && _ffmpegPathVerified == binaryPath)
{ {
return; return;
} }
try try
{ {
var result = Instance.Finish(GlobalFFOptions.GetFFMpegBinaryPath(ffMpegOptions), "-version"); var result = Instance.Finish(binaryPath, "-version");
_ffmpegVerified = result.ExitCode == 0; _ffmpegPathVerified = result.ExitCode == 0 ? binaryPath : null;
} }
catch (Exception e) catch (Exception e)
{ {
throw new FFMpegException(FFMpegExceptionType.Operation, "ffmpeg was not found on your system", e); throw new FFMpegException(FFMpegExceptionType.Operation, "ffmpeg was not found on your system", e);
} }
if (!_ffmpegVerified) if (_ffmpegPathVerified == null)
{ {
throw new FFMpegException(FFMpegExceptionType.Operation, "ffmpeg was not found on your system"); throw new FFMpegException(FFMpegExceptionType.Operation, "ffmpeg was not found on your system");
} }