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
CPU, RAM & Disk Telemetry: When the floating sampling HUD overlay is enabled, a secondary minimalist glass mini-pill displays live TV CPU utilization (/proc/stat delta), RAM usage (ActivityManager.MemoryInfo), and internal storage free space (StatFs).
Throttled Sampling: System statistics are sampled at 1 Hz on the background capture thread with cached string formatting, having 0% impact on 60 FPS ambient capture.
Comprehensive Codebase Audit Fixes & Hardening
Critical Bug Fixes
Resilient Hardware Teardown: Fixed a race condition where stopping the capture service cancelled the coroutine scope before blackout frames and HTTP power-off commands reached WLED controllers. Teardown now runs in an asynchronous non-cancellable job before closing the UDP socket.
Widevine L1 DRM Detection & Throttling: Bypassed bilinear zone scanning and letterbox cropping during 100% black frames. When DRM is detected (>5s black frame with active audio), UDP streaming throttles from 60 PPS down to a 1.5s keepalive packet, eliminating network congestion during DRM playback.
Live Calibration Slider Refresh: Fixed an issue in CalibrationActivity where adjusting RGB gain or brightness sliders did not update solid calibration colors on physical LEDs until the color was clicked again.
State Synchronization: Added missing config reload in MainActivity.toggleDeviceEnabled() and fixed stale config overwrite when returning to SystemSettingsActivity.
Test Mode Overrides: CornerFinderActivity and EditDeviceActivity.identifyDevice() now properly set isTestingOverride = true, preventing 60Hz ambient frames from overwriting test LEDs.
Protocol Limits & Accurate Telemetry: Clamped DRGB to WLED's MTU limit of 490 LEDs (1472 bytes) and made frame dispatchers return the exact number of datagrams transmitted for 100% accurate PPS statistics.
Performance & Zero-Allocation Hot Path
Integer Color Ordering: Hoisted color order decoding outside loops in WledUdpSender, eliminating up to 24,000 per-LED string allocations per second.
Zero-Allocation Canvas Rendering: Cached LED zone layouts in ZoneCanvasView and pre-allocated HSV/RectF buffers in TvPerimeterPreviewView.
Shared OkHttpClient Pool: Consolidated all HTTP calls across Activities and the Service onto a single singleton OkHttpClient instance.
Security & Concurrency
Coroutines: Upgraded serviceScope to SupervisorJob() + Dispatchers.IO.
Thread Safety: Made mDNS device discovery thread-safe using CopyOnWriteArrayList in DeviceManagerActivity.
Android 13+ Hardening: Restricted system broadcast receivers to Context.RECEIVER_NOT_EXPORTED.
Build Security: Externalized keystore credentials in app/build.gradle.kts.