From 0371d8a41af3859fb536431176003fa4cf2965a2 Mon Sep 17 00:00:00 2001 From: N00MKRAD Date: Fri, 21 May 2021 15:51:45 +0200 Subject: [PATCH] Refresh import frame extensions before extracting --- Code/Data/InterpSettings.cs | 20 ++++++++++++++------ Code/Main/Interpolate.cs | 1 + 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Code/Data/InterpSettings.cs b/Code/Data/InterpSettings.cs index b3dab37..d3829a6 100644 --- a/Code/Data/InterpSettings.cs +++ b/Code/Data/InterpSettings.cs @@ -196,7 +196,9 @@ namespace Flowframes } } - public void RefreshExtensions() + public enum FrameType { Import, Interp, Both }; + + public void RefreshExtensions(FrameType type = FrameType.Both) { bool pngOutput = outMode == Interpolate.OutMode.ImgPng; bool aviHqChroma = outMode == Interpolate.OutMode.VidAvi && Config.Get(Config.Key.aviColors) != "yuv420p"; @@ -206,16 +208,22 @@ namespace Flowframes if (alpha || forceHqChroma) // Force PNG if alpha is enabled, or output is not 4:2:0 subsampled { - framesExt = ".png"; - interpExt = ".png"; + if(type == FrameType.Both || type == FrameType.Import) + framesExt = ".png"; + + if (type == FrameType.Both || type == FrameType.Interp) + interpExt = ".png"; } else { - framesExt = (Config.GetBool(Config.Key.jpegFrames) ? ".jpg" : ".png"); - interpExt = (Config.GetBool(Config.Key.jpegInterp) ? ".jpg" : ".png"); + if (type == FrameType.Both || type == FrameType.Import) + framesExt = (Config.GetBool(Config.Key.jpegFrames) ? ".jpg" : ".png"); + + if (type == FrameType.Both || type == FrameType.Interp) + interpExt = (Config.GetBool(Config.Key.jpegInterp) ? ".jpg" : ".png"); } - Logger.Log($"RefreshExtensions - Using '{framesExt}' for imported frames, using '{interpExt}' for interpolated frames", true); + Logger.Log($"RefreshExtensions({type}) - Using '{framesExt}' for imported frames, using '{interpExt}' for interpolated frames", true); } public string Serialize () diff --git a/Code/Main/Interpolate.cs b/Code/Main/Interpolate.cs index cfb996e..4bfb059 100644 --- a/Code/Main/Interpolate.cs +++ b/Code/Main/Interpolate.cs @@ -101,6 +101,7 @@ namespace Flowframes { if (canceled) return; Program.mainForm.SetStatus("Extracting frames from video..."); + current.RefreshExtensions(InterpSettings.FrameType.Import); bool mpdecimate = Config.GetInt(Config.Key.dedupMode) == 2; Size res = await Utils.GetOutputResolution(inPath, true, true); await FfmpegExtract.VideoToFrames(inPath, outPath, alpha, current.inFpsDetected, mpdecimate, false, res, current.framesExt);