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
Fixed an issue where dynamically detected letterbox black bar crops were inadvertently applied to secondary fixtures/lamps that had auto-letterbox disabled, ensuring manual edge crop configurations are always respected.
Zero-Allocation Hot Path Performance
Capture Loop Zero Allocations: Decoupled sampleChromaWeightedBox to write directly into output buffers, eliminating ~9,000 temporary array allocations per second at 60 FPS.
Dynamic LED Zone Caching: Cached computed perimeter and ambient sub-zones, avoiding per-frame computeLedZones recomputations.
Letterbox Probe Caching: Cached scan probe coordinates in detectLetterbox to eliminate repetitive IntArray allocations.
UI Render Optimization: Eliminated PointF, RectF, and list allocations inside onDraw() in TvPerimeterPreviewView and ZoneCanvasView for silky smooth live simulation rendering.
Reliability & Resource Leaks
Socket Leak Prevention: Ensured UDP sockets are properly closed in onDestroy() across all UI activities (MainActivity, CalibrationActivity, DeviceManagerActivity, EditDeviceActivity).
Thread-Safe UDP Streaming: Hardened WledUdpSender with ConcurrentHashMap and synchronized socket lifecycles to prevent race conditions during rapid state transitions.
WakeLock Timeout Guard: Added a 6-hour guard timeout to prevent indefinite CPU lock on unexpected service termination.
Test Coverage: Added unit tests for WledUdpSender and ColorSmoothingFilter.