From bd2e1dc8c0d66f2b3294ef9b21a3f2e4347ad4a4 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 14 Oct 2024 20:34:22 -0500 Subject: [PATCH] fix(video): encode at least one frame before capture reinit (#3300) --- src/video.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/video.cpp b/src/video.cpp index 5f810860..3824c295 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -1857,7 +1857,14 @@ namespace video { } while (true) { - if (shutdown_event->peek() || reinit_event.peek() || !images->running()) { + // Break out of the encoding loop if any of the following are true: + // a) The stream is ending + // b) Sunshine is quitting + // c) The capture side is waiting to reinit and we've encoded at least one frame + // + // If we have to reinit before we have received any captured frames, we will encode + // the blank dummy frame just to let Moonlight know that we're alive. + if (shutdown_event->peek() || !images->running() || (reinit_event.peek() && frame_nr > 1)) { break; }