Experimental full-chroma HEVC/AV1 streaming with Rubylight 2.5.12.
- The new packed 4:4:4 option is off by default on both endpoints. Requires Android 10 or newer. Enable New streaming engine (beta) and Experimental full chroma under Advanced settings. A compatible hardware decoder must pass the raw YUV sampling check; unsupported requests stop with a concrete reason.
- Adds 8-bit SDR and 10-bit HDR reconstruction while keeping display dimensions separate from the coded picture. HDR requires a compatible 10-bit HDR output.
- Odd-dimension packing fix: the shared packing layout preserves odd source dimensions and extends edge samples into the padding. Hardware encoder and decoder size limits still apply.
- Desktop HDR and full chroma: the Windows/Linux client source adds GPU reconstruction and HDR output for both ordinary and packed streams when the display and compositor support it. HDR presentation stops if output support is lost. Windows retains D3D11VA decoding; Linux retains VAAPI decoding and readback. Restart Nightjar after changing the full-chroma setting on Linux. This release attaches Android packages; desktop changes are available in the tagged source.
- Reserves bandwidth for encryption, packet headers and FEC: a 200 Mbps packed-stream budget requests at most 140 Mbps of encoded video.
- Fixes Android API compatibility when clearing decoder HDR metadata, translates the new settings in 14 locale variants, adds the full-chroma option to the generated settings guide, and repairs the native patch preparation step. Packed streaming still requires Android 10 or newer.
Validation limits: All four packed modes reached approximately 1440p120 in bounded host tests on an AMD Radeon 780M, with at most 192.8 Mbps calculated peak transport bandwidth including FEC/headers and 3.58 ms added host p95 latency. Each mode had 10 measured seconds. These figures exclude network and client presentation latency. Physical HDR output remains unverified, and an earlier workstation crash remains unexplained; keep this feature experimental.
The standard and root APKs and the Android App Bundle are signed with the existing Nightjar release key. SHA-256 hashes are provided in SHA256SUMS-0.7.18.txt.
Build, unit tests, Linux desktop checks and native sanitizer tests passed. The local signed release build passed both Android lint checks and 3,821 unit tests, with four skipped.
Included commits
All 10 commits since v0.7.17 are included in v0.7.18:
- a182c3e6 feat(protocol): define reversible packed 4:4:4 v1 layout
- d25c4d4d fix(protocol): preserve odd dimensions in packed chroma geometry
- 53c35659 feat(video): reconstruct packed full chroma with HDR output
- 56fa2d80 fix(desktop): isolate D3D11 reconstruction state on Windows
- 254b47d4 fix(protocol): reserve transport overhead for packed video
- 4f8c1abd fix(android): repair native network grace patch header
- 288d02e1 fix(settings): include experimental full chroma in generated guide
- 9f41d1b5 chore(release): prepare Nightjar 0.7.18
- 094e039b fix(android): clear packed HDR metadata before API 29
- 6f575909 fix(android): localize experimental full chroma preferences