From 24ec74a441524df8ce1aec42e861d1178467f467 Mon Sep 17 00:00:00 2001 From: Siyuan Date: Fri, 21 Nov 2025 09:53:39 +0000 Subject: [PATCH] fix: stop video stream before enabling sleep mode --- internal/native/cgo/video.c | 1 + internal/native/video.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/internal/native/cgo/video.c b/internal/native/cgo/video.c index 857acbbb..090f2bab 100644 --- a/internal/native/cgo/video.c +++ b/internal/native/cgo/video.c @@ -539,6 +539,7 @@ void *run_video_stream(void *arg) if (r == 0) { log_info("select timeout"); + ensure_sleep_mode_disabled(); break; } if (r == -1) diff --git a/internal/native/video.go b/internal/native/video.go index c556a938..29a36173 100644 --- a/internal/native/video.go +++ b/internal/native/video.go @@ -35,7 +35,13 @@ func (n *Native) setSleepMode(enabled bool) error { bEnabled := "0" if enabled { bEnabled = "1" + if err := n.VideoStop(); err != nil { + return fmt.Errorf("video stop failed, won't enable sleep mode: %w", err) + } + // wait few seconds to ensure the video stream is stopped + time.Sleep(3 * time.Second) } + return os.WriteFile(sleepModeFile, []byte(bEnabled), 0644) }