alexei.dolgolyov
fbf597dc29
Optimize streaming pipeline and capture hot paths
- Replace asyncio.to_thread with dedicated ThreadPoolExecutor (skip
per-frame context copy overhead)
- Move brightness scaling into _process_frame thread (avoid extra
numpy array copies on event loop)
- Remove PIL intermediate in MSS capture (direct bytes→numpy)
- Unify median/dominant pixel mapping to numpy arrays (eliminate
Python list-of-tuples path and duplicate Phase 2/3 code)
- Cache CalibrationConfig.segments property (avoid ~240 rebuilds/sec)
- Make KC WebSocket broadcasts concurrent via asyncio.gather
- Fix fps_samples list.pop(0) → deque(maxlen=10) in both processors
- Cache time.time() calls to reduce redundant syscalls per frame
- Log event queue drops instead of silently discarding
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:55:21 +03:00
..
2026-02-19 22:55:21 +03:00
2026-02-19 22:55:21 +03:00
2026-02-19 14:23:47 +03:00
2026-02-18 12:03:29 +03:00
2026-02-19 22:55:21 +03:00
2026-02-19 22:30:22 +03:00
2026-02-18 12:03:29 +03:00