src.nth.io/

summaryrefslogtreecommitdiff
path: root/main/mdns_service.h
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-06-30 20:26:14 -0500
committerLuke Hoersten <[email protected]>2026-06-30 20:26:14 -0500
commit24d6e90c742d1a8ced30b713f41637c630c270b1 (patch)
tree96c1785f0a7de9fb773ab963dfb91680ad64c95e /main/mdns_service.h
parentf945e158573688763b5abfa65cf50b082e4cc075 (diff)
scrypted: fix event wake, teardown, triggers; cut stream cold-start ~6s→~0.7s
Event/lifecycle fixes: - attachListener now self-heals: it's idempotent (tracks the bound camera per viewport) and re-runs on registerViewport success, so the camera subscription survives the reload/add storage-attach race that previously left a bound viewport with no listener until a manual re-save. - stop() always drains the global cleaner array (never gates on this.running) and also cancels bindingDebounce timers + clears the stream idle timeout on abort, so StartStop.stop()+start() == a fresh load with no orphaned ffmpeg, sockets, listeners, or intervals. - ignore all camera events while a stream is live or starting (guard moved to the top of handleCameraEvent) — the wake window is anchored to the first event; later events don't queue, relaunch, or extend it. - prune stale childIds whose storage container is gone (deleted device). Triggers: - default to person + doorbell (motion opt-in; doorbell cameras are chatty); doorbell only offered for doorbell-capable cameras. Reconcile stored triggers + re-render settings live when the camera binding changes. Cold-start (wake -> first live frame): ~6s -> ~0.7s. - Root cause: Unifi GOP is ~5s and the rebroadcast RTSP serves live-edge, so ffmpeg waited for the next keyframe. - Fix: select the prebuffered substream by id (smallest that covers the panel, not the 5MP High), request prebuffer >= GOP, and drop -avioflags direct / -fflags nobuffer on the prebuffer path so ffmpeg gulps the buffered-keyframe burst instead of trickling it. Live-edge fallback keeps the low-latency flags. Steady-state g2g unchanged (~50-100ms). Includes temporary diagnostics (evtscan, attach/trace/streamopt/src logs, ffmpeg -loglevel info) to be stripped in the follow-up commit.
Diffstat (limited to 'main/mdns_service.h')
0 files changed, 0 insertions, 0 deletions