From 7f87cc258fd7159604cc8c2e73a684ecc9de83b7 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Tue, 31 May 2022 01:42:40 +1000 Subject: [PATCH] Honour `$BIZHAWK_DATA_HOME` when downloading FFmpeg also stop looking for `/ffmpeg.exe` in DiscoHawk when it's always downloaded to `/dll/ffmpeg.exe` --- src/BizHawk.Client.DiscoHawk/Program.cs | 6 ++---- src/BizHawk.Client.EmuHawk/AVOut/FFmpegDownloaderForm.cs | 2 ++ src/BizHawk.Client.EmuHawk/Program.cs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/BizHawk.Client.DiscoHawk/Program.cs b/src/BizHawk.Client.DiscoHawk/Program.cs index 3d446e5336..d4d481e42d 100644 --- a/src/BizHawk.Client.DiscoHawk/Program.cs +++ b/src/BizHawk.Client.DiscoHawk/Program.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.IO; using BizHawk.Common; +using BizHawk.Common.PathExtensions; using BizHawk.Emulation.DiscSystem; using OSTC = EXE_PROJECT.OSTailoredCode; @@ -73,10 +74,7 @@ namespace BizHawk.Client.DiscoHawk OSTC.LinkedLibManager.FreeByPtr(lib); } - var ffmpegPath = Path.Combine(GetExeDirectoryAbsolute(), "ffmpeg.exe"); - if (!File.Exists(ffmpegPath)) - ffmpegPath = Path.Combine(Path.Combine(GetExeDirectoryAbsolute(), "dll"), "ffmpeg.exe"); - FFmpegService.FFmpegPath = ffmpegPath; + FFmpegService.FFmpegPath = Path.Combine(PathUtils.DataDirectoryPath, "dll", OSTC.IsUnixHost ? "ffmpeg" : "ffmpeg.exe"); if (args.Length == 0) { diff --git a/src/BizHawk.Client.EmuHawk/AVOut/FFmpegDownloaderForm.cs b/src/BizHawk.Client.EmuHawk/AVOut/FFmpegDownloaderForm.cs index a30f25a641..c08b8e2495 100644 --- a/src/BizHawk.Client.EmuHawk/AVOut/FFmpegDownloaderForm.cs +++ b/src/BizHawk.Client.EmuHawk/AVOut/FFmpegDownloaderForm.cs @@ -89,6 +89,8 @@ namespace BizHawk.Client.EmuHawk if (exiting) return; + DirectoryInfo parentDir = new(Path.GetDirectoryName(FFmpegService.FFmpegPath)!); + if (!parentDir.Exists) parentDir.Create(); File.WriteAllBytes(FFmpegService.FFmpegPath, data); if (OSTailoredCode.IsUnixHost) { diff --git a/src/BizHawk.Client.EmuHawk/Program.cs b/src/BizHawk.Client.EmuHawk/Program.cs index 7c6697fcbb..571af660ce 100644 --- a/src/BizHawk.Client.EmuHawk/Program.cs +++ b/src/BizHawk.Client.EmuHawk/Program.cs @@ -155,7 +155,7 @@ namespace BizHawk.Client.EmuHawk initialConfig.ResolveDefaults(); // initialConfig should really be globalConfig as it's mutable - FFmpegService.FFmpegPath = Path.Combine(PathUtils.DllDirectoryPath, OSTC.IsUnixHost ? "ffmpeg" : "ffmpeg.exe"); + FFmpegService.FFmpegPath = Path.Combine(PathUtils.DataDirectoryPath, "dll", OSTC.IsUnixHost ? "ffmpeg" : "ffmpeg.exe"); StringLogUtil.DefaultToDisk = initialConfig.Movies.MoviesOnDisk;