You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: notify Go when SCStream stops unexpectedly and auto-restart speaker source (#5)
When macOS stops the ScreenCaptureKit stream (screen lock, display change,
system error), didStopWithError: was only logging — the Go channel stayed
open but received no data, causing silent hang and the menu-bar indicator
to disappear.
Changes:
- speaker_darwin.m: call tacitSpeakerStoppedCallback from didStopWithError:
when the stream is not already in a deliberate-stop path (self.stopped)
- speaker_darwin.h: declare tacitSpeakerStoppedCallback
- speaker_darwin.go: replace bare chan[]int16 cgo handle with speakerChan
(data channel + sync.Once + self-referencing handle) so both the
unexpected-stop callback and the ctx.Done() goroutine can safely close
the channel exactly once; add tacitSpeakerStoppedCallback export
- pipeline.go: split runSource into runSource (retry loop) + runSourceOnce
so that an unexpected stream closure triggers automatic restart after 5s
instead of silently stopping the pipeline
https://claude.ai/code/session_01LRhvpcLHSUZT1fz9XvbPny
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments