ソースを参照

Fixed ffmpeg renderer not finding exe for steam config

flabbet 8 ヶ月 前
コミット
d6f3a4661f

+ 12 - 17
src/PixiEditor.AnimationRenderer.FFmpeg/FFMpegRenderer.cs

@@ -7,6 +7,7 @@ using FFMpegCore.Pipes;
 using PixiEditor.AnimationRenderer.Core;
 using Drawie.Backend.Core.Surfaces.ImageData;
 using Drawie.Numerics;
+using PixiEditor.OperatingSystem;
 
 namespace PixiEditor.AnimationRenderer.FFmpeg;
 
@@ -16,16 +17,10 @@ public class FFMpegRenderer : IAnimationRenderer
     public string OutputFormat { get; set; } = "mp4";
     public VecI Size { get; set; }
 
-    public async Task<bool> RenderAsync(List<Image> rawFrames, string outputPath, CancellationToken cancellationToken, Action<double>? progressCallback = null)
+    public async Task<bool> RenderAsync(List<Image> rawFrames, string outputPath, CancellationToken cancellationToken,
+        Action<double>? progressCallback = null)
     {
-        string path = "ThirdParty/{0}/ffmpeg";
-#if WINDOWS
-        path = string.Format(path, "Windows");
-#elif MACOS
-        path = string.Format(path, "MacOS");
-#elif LINUX
-        path = string.Format(path, "Linux");
-#endif
+        string path = $"ThirdParty/{IOperatingSystem.Current.Name}/ffmpeg";
 
         GlobalFFOptions.Configure(new FFOptions()
         {
@@ -35,26 +30,26 @@ public class FFMpegRenderer : IAnimationRenderer
         try
         {
             List<ImgFrame> frames = new();
-            
+
             foreach (var frame in rawFrames)
             {
                 frames.Add(new ImgFrame(frame));
             }
 
             RawVideoPipeSource streamPipeSource = new(frames) { FrameRate = FrameRate, };
-            
+
             string paletteTempPath = Path.Combine(Path.GetDirectoryName(outputPath), "RenderTemp", "palette.png");
-            
+
             if (!Directory.Exists(Path.GetDirectoryName(paletteTempPath)))
             {
                 Directory.CreateDirectory(Path.GetDirectoryName(paletteTempPath));
             }
-            
+
             if (RequiresPaletteGeneration())
             {
                 GeneratePalette(streamPipeSource, paletteTempPath);
             }
-            
+
             streamPipeSource = new(frames) { FrameRate = FrameRate, };
 
             var args = FFMpegArguments
@@ -67,15 +62,15 @@ public class FFMpegRenderer : IAnimationRenderer
             TimeSpan totalTimeSpan = TimeSpan.FromSeconds(frames.Count / (float)FrameRate);
             var result = await outputArgs.CancellableThrough(cancellationToken)
                 .NotifyOnProgress(progressCallback, totalTimeSpan).ProcessAsynchronously();
-            
+
             if (RequiresPaletteGeneration())
             {
                 File.Delete(paletteTempPath);
                 Directory.Delete(Path.GetDirectoryName(paletteTempPath));
             }
-            
+
             DisposeStream(frames);
-            
+
             return result;
         }
         catch (Exception e)

+ 1 - 0
src/PixiEditor.AnimationRenderer.FFmpeg/PixiEditor.AnimationRenderer.FFmpeg.csproj

@@ -10,6 +10,7 @@
 
     <ItemGroup>
       <ProjectReference Include="..\PixiEditor.AnimationRenderer.Core\PixiEditor.AnimationRenderer.Core.csproj" />
+      <ProjectReference Include="..\PixiEditor.OperatingSystem\PixiEditor.OperatingSystem.csproj" />
     </ItemGroup>
 
     <ItemGroup>

+ 19 - 0
src/PixiEditor.sln

@@ -198,6 +198,8 @@ Global
 		{6A9DA760-1E47-414C-B8E8-3B4927F18131}.Debug|ARM64.Build.0 = Debug|Any CPU
 		{6A9DA760-1E47-414C-B8E8-3B4927F18131}.DevRelease|x64.ActiveCfg = Debug|Any CPU
 		{6A9DA760-1E47-414C-B8E8-3B4927F18131}.DevRelease|x64.Build.0 = Debug|Any CPU
+		{6A9DA760-1E47-414C-B8E8-3B4927F18131}.DevSteam|x64.ActiveCfg = Release|Any CPU
+		{6A9DA760-1E47-414C-B8E8-3B4927F18131}.DevSteam|x64.Build.0 = Release|Any CPU
 		{510ED47C-2455-4DCE-A561-1074725E1236}.Debug|x64.ActiveCfg = Debug|x64
 		{510ED47C-2455-4DCE-A561-1074725E1236}.Debug|x64.Build.0 = Debug|x64
 		{510ED47C-2455-4DCE-A561-1074725E1236}.DevRelease|x64.ActiveCfg = DevRelease|x64
@@ -240,6 +242,8 @@ Global
 		{758DF7DF-A8B1-4409-B79A-018E542B7251}.Steam|x64.Build.0 = Steam|Any CPU
 		{758DF7DF-A8B1-4409-B79A-018E542B7251}.Debug|ARM64.ActiveCfg = Debug|Any CPU
 		{758DF7DF-A8B1-4409-B79A-018E542B7251}.Debug|ARM64.Build.0 = Debug|Any CPU
+		{758DF7DF-A8B1-4409-B79A-018E542B7251}.DevSteam|x64.ActiveCfg = DevRelease|Any CPU
+		{758DF7DF-A8B1-4409-B79A-018E542B7251}.DevSteam|x64.Build.0 = DevRelease|Any CPU
 		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.Debug|x64.Build.0 = Debug|Any CPU
 		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.MSIX Debug|x64.ActiveCfg = Debug|Any CPU
@@ -254,6 +258,8 @@ Global
 		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.Debug|ARM64.Build.0 = Debug|Any CPU
 		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.DevRelease|x64.ActiveCfg = Debug|Any CPU
 		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.DevRelease|x64.Build.0 = Debug|Any CPU
+		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.DevSteam|x64.ActiveCfg = Release|Any CPU
+		{69DD5830-C682-49FB-B1A5-D2A506EEA06B}.DevSteam|x64.Build.0 = Release|Any CPU
 		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.Debug|x64.Build.0 = Debug|Any CPU
 		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.MSIX Debug|x64.ActiveCfg = Debug|Any CPU
@@ -268,6 +274,8 @@ Global
 		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.Debug|ARM64.Build.0 = Debug|Any CPU
 		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.DevRelease|x64.ActiveCfg = Debug|Any CPU
 		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.DevRelease|x64.Build.0 = Debug|Any CPU
+		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.DevSteam|x64.ActiveCfg = Release|Any CPU
+		{1DC5B4C4-6902-4659-AE7E-17FDA0403DEB}.DevSteam|x64.Build.0 = Release|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Debug|x64.Build.0 = Debug|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.DevRelease|x64.ActiveCfg = Debug|Any CPU
@@ -282,6 +290,8 @@ Global
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Steam|x64.Build.0 = Release|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Debug|ARM64.ActiveCfg = Debug|Any CPU
 		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.Debug|ARM64.Build.0 = Debug|Any CPU
+		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.DevSteam|x64.ActiveCfg = Release|Any CPU
+		{9BCD0764-9C16-4A2A-B153-C676FEF38887}.DevSteam|x64.Build.0 = Release|Any CPU
 		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.Debug|x64.Build.0 = Debug|Any CPU
 		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.DevRelease|x64.ActiveCfg = Debug|Any CPU
@@ -296,6 +306,8 @@ Global
 		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.Steam|x64.Build.0 = Release|Any CPU
 		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.Debug|ARM64.ActiveCfg = Debug|Any CPU
 		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.Debug|ARM64.Build.0 = Debug|Any CPU
+		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.DevSteam|x64.ActiveCfg = Release|Any CPU
+		{2BDEB8C6-F22D-43EA-A309-B3387A803689}.DevSteam|x64.Build.0 = Release|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|x64.Build.0 = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.DevRelease|x64.ActiveCfg = Debug|Any CPU
@@ -309,6 +321,7 @@ Global
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Steam|x64.ActiveCfg = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
 		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.Debug|ARM64.Build.0 = Debug|Any CPU
+		{8EF48E6C-8219-4EE2-87C6-5176D8D092E6}.DevSteam|x64.ActiveCfg = Release|Any CPU
 		{7A12C96B-8B5C-45E1-9EF6-0B1DA7F270DE}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{7A12C96B-8B5C-45E1-9EF6-0B1DA7F270DE}.Debug|x64.Build.0 = Debug|Any CPU
 		{7A12C96B-8B5C-45E1-9EF6-0B1DA7F270DE}.DevRelease|x64.ActiveCfg = Debug|Any CPU
@@ -336,6 +349,8 @@ Global
 		{1249EE2B-EB0D-411C-B311-53A7A22B7743}.Steam|x64.Build.0 = Release|Any CPU
 		{1249EE2B-EB0D-411C-B311-53A7A22B7743}.Debug|ARM64.ActiveCfg = Debug|Any CPU
 		{1249EE2B-EB0D-411C-B311-53A7A22B7743}.Debug|ARM64.Build.0 = Debug|Any CPU
+		{1249EE2B-EB0D-411C-B311-53A7A22B7743}.DevSteam|x64.ActiveCfg = Release|Any CPU
+		{1249EE2B-EB0D-411C-B311-53A7A22B7743}.DevSteam|x64.Build.0 = Release|Any CPU
 		{FA98BFA6-2E83-41C6-9102-76875B261F51}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{FA98BFA6-2E83-41C6-9102-76875B261F51}.Debug|x64.Build.0 = Debug|Any CPU
 		{FA98BFA6-2E83-41C6-9102-76875B261F51}.DevRelease|x64.ActiveCfg = Debug|Any CPU
@@ -568,6 +583,8 @@ Global
 		{F2E992CA-12E3-49F3-B16F-2CEF5B191493}.Release|x64.Build.0 = Release|x64
 		{F2E992CA-12E3-49F3-B16F-2CEF5B191493}.DevRelease|x64.ActiveCfg = DevRelease|x64
 		{F2E992CA-12E3-49F3-B16F-2CEF5B191493}.DevRelease|x64.Build.0 = DevRelease|x64
+		{F2E992CA-12E3-49F3-B16F-2CEF5B191493}.DevSteam|x64.ActiveCfg = DevSteam|x64
+		{F2E992CA-12E3-49F3-B16F-2CEF5B191493}.DevSteam|x64.Build.0 = DevSteam|x64
 		{D72E70F3-BF37-432F-B78B-5B247C873852}.Debug|ARM64.ActiveCfg = Debug|Any CPU
 		{D72E70F3-BF37-432F-B78B-5B247C873852}.Debug|ARM64.Build.0 = Debug|Any CPU
 		{D72E70F3-BF37-432F-B78B-5B247C873852}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -860,6 +877,8 @@ Global
 		{CD863C88-72E3-40F4-9AAE-5696BBB4460C}.Steam|ARM64.Build.0 = Release|arm64
 		{CD863C88-72E3-40F4-9AAE-5696BBB4460C}.Steam|x64.ActiveCfg = Release|x64
 		{CD863C88-72E3-40F4-9AAE-5696BBB4460C}.Steam|x64.Build.0 = Release|x64
+		{CD863C88-72E3-40F4-9AAE-5696BBB4460C}.DevSteam|x64.ActiveCfg = Release|x64
+		{CD863C88-72E3-40F4-9AAE-5696BBB4460C}.DevSteam|x64.Build.0 = Release|x64
 		{8064811C-6A34-456E-A3F2-D77395009A29}.Debug|x64.ActiveCfg = Debug|Any CPU
 		{8064811C-6A34-456E-A3F2-D77395009A29}.Debug|x64.Build.0 = Debug|Any CPU
 		{8064811C-6A34-456E-A3F2-D77395009A29}.Debug|ARM64.ActiveCfg = Debug|Any CPU

+ 1 - 1
src/PixiEditor/Initialization/ClassicDesktopEntry.cs

@@ -104,7 +104,7 @@ internal class ClassicDesktopEntry
 
     private IPlatform GetActivePlatform()
     {
-#if STEAM
+#if STEAM || DEV_STEAM
         return new PixiEditor.Platform.Steam.SteamPlatform();
 #elif MSIX || MSIX_DEBUG
         return new PixiEditor.Platform.MSStore.MicrosoftStorePlatform();

+ 1 - 0
src/PixiEditor/Models/IO/Exporter.cs

@@ -125,6 +125,7 @@ internal class Exporter
         {
             job?.Finish();
             Console.WriteLine(e);
+            CrashHelper.SendExceptionInfoToWebhook(e);
             return SaveResult.UnknownError;
         }
     }