Aurora v1.0 — Release notes
Overview
This is the first stable release of Aurora, a fork of Moonlight TV focused on 4K 120fps HDR streaming on LG webOS TVs (C1–C5 and compatible), with Vibepollo/Apollo as host.
Decode time and latency adjustments
-
HEVC with 1 reference frame (maxNumReferenceFrames=1)
On webOS, the hardware video decoder struggles with multiple reference frames (up to 16). We disabled the Reference Frame Invalidation capability for HEVC on the client so the host is forced to send only 1 reference frame. This brought decode time down from ~13 ms to around 8 ms. The tradeoff is that on packet loss the host must request a full IDR instead of invalidating references; on a stable home network this is acceptable. -
1 slice per frame
Kept at 1 slice per frame to reduce load on the webOS hardware decoder. -
4 MB buffers (Starfish + decode)
Increased buffers to handle large IDRs at 4K 120fps HDR and avoid BufferFull → IDR request loops that congest the control channel and increase perceived input latency. -
IDR throttle (1500 ms)
Limit of one IDR request every 1500 ms to avoid flooding the control channel (same TCP as gamepad input) and keep controller delay stable even with P1 preset on the host. -
Client-side frame pacing (pauseAtDecodeTime + PTS)
The Starfish pipeline now uses monotonically increasing PTS andpauseAtDecodeTimeenabled so frames are displayed at the target rate instead of in bursts. This reduces stutters when the host encodes very fast (e.g. 1 ms encode time).
AV1 removed
AV1 is disabled by default on the webOS client. In testing, AV1 decode time on webOS hardware was ~8–12 ms versus ~1 ms for H.265 in the same conditions. For interactive 4K 120fps streaming, that extra AV1 latency made the experience unworkable. Aurora therefore does not add AV1 to the negotiated video format with the host; H.265 (HEVC) remains the recommended codec for quality and latency.
HLG HDR and HDR10+
-
HLG (HDR HLG)
Experimental option to signal HLG (transfer 18) instead of HDR10/PQ (16) when the host sends REC_2020. HLG is common in broadcast and on some LG TVs. The host (Vibepollo/Sunshine) typically sends HDR10 (PQ); for “true” HLG the host would need to send HLG. The client option keeps the path ready for when the host supports it. -
HDR10+
Option to signal HDR10+ to Starfish when the host sends HDR10 (PQ). On some LG TVs this may improve display or mapping (including HLG-like content). It is an attempt to improve HDR compatibility on the client when the host only sends HDR10.
LFR and Tight VSync (Artemis-style)
Inspired by the Artemis (moonlight-android) client:
-
LFR (Low Frame Rate / drop late frames)
Experimental option that drops frames that arrived too late (presentation age beyond a threshold). It reduces delay by not processing frames that would no longer be shown on time, favouring the latest ones. May increase dropped frames on unstable networks. -
Tight VSync
Experimental option that advances the PTS slightly (presentation offset of -2 ms) so frames are displayed a bit earlier and perceived latency is lower. May increase frame drops in exchange for snappier feel.
Both options are under Settings → Video and marked experimental; the user can enable them according to preference (latency vs smoothness).
Other changes
-
Default bitrate: 80 Mbps
Default bitrate is set to 80 Mbps; the user can raise it up to 300 Mbps in settings if the network and device allow. -
Soft Keyboard renamed to Full Keyboard in the UI.
-
App ID for dev-manager/Homebrew installation:
com.aurora.gamestream.
Technical summary
| Item | Description |
|---|---|
| Base | Moonlight TV (mariotaku/moonlight-tv) |
| Target | LG webOS (C1–C5 and similar), 4K 120fps HDR |
| Recommended codec | H.265 (HEVC); AV1 disabled due to decode latency |
| Decode time | Reduced via maxNumRef=1, 1 slice, 4 MB buffers |
| Frame pacing | PTS + pauseAtDecodeTime in Starfish |
| Experimental options | HLG, HDR10+, LFR, Tight VSync |


