Skip to content

WLED TV v1.3.4

Choose a tag to compare

@leonida92 leonida92 released this 07 Nov 09:08
· 3 commits to main since this release

WLED TV v1.3.4 - Optical Color Pipeline Consolidation & Zero-Allocation UI Loops

Optical Color Science Consolidation

  • ScreenColorProcessor: Deepened into the single consolidated optical color processing engine:
    • Absorbed ColorSmoothingFilter as an internal component; encapsulated temporal EMA smoothing and per-device state tracking.
    • Added high-performance wire encoding (encodeWireFrame) supporting all 6 channel orders (RGB, GRB, BGR, BRG, RBG, GBR) with fast integer enum decoding and zero GC allocations.
    • Implemented SK6812 4-channel RGBW gamut mapping (AUTO_SUBTRACT, AUTO_ADD, OFF), protected by device.wireBytesPerLed to restrict 4-channel encoding to DDP-compatible devices while safely clamping DRGB and WARLS to 3 channels.

Pure Byte Transport & Zero-Allocation Streaming

  • WledControllerClient & WledUdpSender:
    • Completely stripped of optical math and channel reordering logic, acting as pure byte transports.
    • Replaced per-pixel loops in sendDdpFrame and sendDrgbFrame with chunked System.arraycopy memory transfers directly into UDP packet buffers.
    • Dynamically sized flashDevice and blackoutFleet payloads based on device.wireBytesPerLed.
  • Three-Stage Decoupled Pipeline (AmbientStreamingEngine):
    • Stage 1: Spatial box sampling into pre-allocated rawTargetBuffers upon video frame arrival.
    • Stage 2: Temporal smoothing on 60Hz ticker into canonical RGB deviceBuffers, ensuring liveFrameListener and getOverlayData() always receive undistorted canonical colors.
    • Stage 3: Wire encoding into pre-allocated wireBuffers immediately before UDP transmission.
    • Strict zero GC allocations on the 60 FPS hot path.
  • Zero-Allocation UI Test Loops:
    • Rainbow test pattern in MainActivity and real-time color balance preview in CalibrationActivity pre-allocate buffers prior to loop entry, eliminating heap churn during diagnostic tests.

Architecture & Standards

  • Recorded ADR 0003: Optical Color Pipeline Consolidation and Wire Encoding.
  • Updated GLOSSARY.md and CODING_STANDARDS.md with protocol-safe channel sizing and zero-allocation cadence loop rules.
  • 128 JVM unit tests passing 100% green in ~7s.