Fixed autoenc getting stuck with new code

This commit is contained in:
N00MKRAD
2021-05-06 01:38:56 +02:00
parent 27749ad405
commit 58e3f3e4f0

View File

@@ -23,8 +23,8 @@ namespace Flowframes.Main
public static List<int> encodedFrameLines = new List<int>(); public static List<int> encodedFrameLines = new List<int>();
public static List<int> unencodedFrameLines = new List<int>(); public static List<int> unencodedFrameLines = new List<int>();
public static bool debug;
public static bool busy; public static bool busy;
public static bool paused; public static bool paused;
public static void UpdateChunkAndBufferSizes () public static void UpdateChunkAndBufferSizes ()
@@ -45,6 +45,8 @@ namespace Flowframes.Main
public static async Task MainLoop(string interpFramesPath) public static async Task MainLoop(string interpFramesPath)
{ {
debug = Config.GetBool("autoEncDebug", false);
try try
{ {
UpdateChunkAndBufferSizes(); UpdateChunkAndBufferSizes();
@@ -82,16 +84,16 @@ namespace Flowframes.Main
//for (int frameLineNum = lastEncodedFrameNum; frameLineNum < interpFramesLines.Length; frameLineNum++) //for (int frameLineNum = lastEncodedFrameNum; frameLineNum < interpFramesLines.Length; frameLineNum++)
// unencodedFrameLines.Add(frameLineNum); // unencodedFrameLines.Add(frameLineNum);
bool aiRunning = !AiProcess.lastAiProcess.HasExited;
for (int frameLineNum = lastEncodedFrameNum; frameLineNum < interpFramesLines.Length; frameLineNum++) for (int frameLineNum = lastEncodedFrameNum; frameLineNum < interpFramesLines.Length; frameLineNum++)
{ {
if (interpFramesLines[frameLineNum].Contains(InterpolationProgress.lastFrame.ToString().PadLeft(Padding.interpFrames, '0'))) if (aiRunning && interpFramesLines[frameLineNum].Contains(InterpolationProgress.lastFrame.ToString().PadLeft(Padding.interpFrames, '0')))
break; break;
unencodedFrameLines.Add(frameLineNum); unencodedFrameLines.Add(frameLineNum);
} }
bool aiRunning = !AiProcess.lastAiProcess.HasExited;
if (unencodedFrameLines.Count > 0 && (unencodedFrameLines.Count >= (chunkSize + safetyBufferFrames) || !aiRunning)) // Encode every n frames, or after process has exited if (unencodedFrameLines.Count > 0 && (unencodedFrameLines.Count >= (chunkSize + safetyBufferFrames) || !aiRunning)) // Encode every n frames, or after process has exited
{ {
try try
@@ -176,7 +178,10 @@ namespace Flowframes.Main
public static bool HasWorkToDo () public static bool HasWorkToDo ()
{ {
if (Interpolate.canceled || interpFramesFolder == null) return false; if (Interpolate.canceled || interpFramesFolder == null) return false;
// Logger.Log($"HasWorkToDo - Process Running: {(AiProcess.currentAiProcess != null && !AiProcess.currentAiProcess.HasExited)} - encodedFrameLines.Count: {encodedFrameLines.Count} - interpFramesLines.Length: {interpFramesLines.Length}");
if(debug)
Logger.Log($"HasWorkToDo - Process Running: {(AiProcess.lastAiProcess != null && !AiProcess.lastAiProcess.HasExited)} - encodedFrameLines.Count: {encodedFrameLines.Count} - interpFramesLines.Length: {interpFramesLines.Length}");
return ((AiProcess.lastAiProcess != null && !AiProcess.lastAiProcess.HasExited) || encodedFrameLines.Count < interpFramesLines.Length); return ((AiProcess.lastAiProcess != null && !AiProcess.lastAiProcess.HasExited) || encodedFrameLines.Count < interpFramesLines.Length);
} }