What's new in v1.5.0
Fixes
- Same-machine NDI loopback now works. The receiver was silently dropping every frame from any source whose pixel format was UYVA (UYVY + alpha) — which is what NDI internally transmits when the sender is fed BGRA. Connect would hang on "Connecting…" forever. UYVA is now decoded as UYVY with the alpha plane ignored. (NDIReceiver.mm)
- Receiver auto-picks the first live source if your saved selection doesn't match anything on the network (very common — NDI prepends the hostname, so a saved
Mac Camerawon't match a liveHOSTNAME (Mac Camera)). Previously this left the UI stuck showing "(offline)" with Connect disabled. Only fires once per session, so a deliberate later pick is respected. (ReceiverModel.swift)
UI
- Sender window now fits a 14" MacBook Pro. Quality / Frame rate / Format / Smooth pacing / Lowest latency are tucked under a collapsible Advanced disclosure. Default-collapsed; window animates to fit when toggled. Window drops from 880px tall to ~700px. (NDIStreamApp.swift)
Repo housekeeping
- README rewritten with badges, the film-set origin story, and a "Looking for…" section for discoverability.
- MIT LICENSE file added (so GitHub recognizes the license).
- Sender screenshot embedded in the README.
Universal binary (arm64 + x86_64). Signed with Developer ID and notarized — no right-click-Open dance required.