Nightjar 4.2.0 for Android, Android TV, Windows and Linux decodes PyroWave sooner on Android, rebuilds lost packets up to 17 times faster, stops dropping frames that were only late, and decodes with Vulkan video on Linux PCs without VA-API, such as those with NVIDIA graphics. Desktop gets a new launcher, settings page and Help page. On Android TV, Send to PC works with the remote again (Rubylight #56), and the microphone sounds clearer everywhere.
Highlights
- PyroWave decodes sooner on Android: the p95 from a frame's last packet to its picture fell from 6.0 to 3.4 ms on a Retroid Pocket 6.
- Lost packets are rebuilt 12 to 17 times faster, and a packet that was only late no longer costs a frame.
- Vulkan video on Linux: hardware decoding without VA-API, such as on NVIDIA graphics, with no copy through the CPU.
- A new desktop launcher, settings page and Help page.
- Send to PC works with a TV remote, and the microphone sounds clearer everywhere.
Faster video
- PyroWave decodes sooner on Android: with a Rubylight PC, each frame goes to the GPU decoder while it is still arriving, so only the last bit of the frame and the decode are left when it is complete. On a Retroid Pocket 6 at 1080p60 and 400 Mbps, the time from a frame's last packet to its decoded picture fell from about 3.5 to 3.0 ms (p95 from 6.0 to 3.4 ms).
- Lost video packets are rebuilt with the processor's vector instructions, 12 to 17 times faster on a desktop PC, so on lossy Wi-Fi the frames behind them wait less. With 5 % of packets lost (HEVC 1080p60, 150 Mbps), a frame's median time from arrival to the screen fell from 3.66 to 3.39 ms and the desktop client used 17 % less CPU.
- A video packet that arrives late in a block without recovery data no longer drops its frame and asks the PC for a keyframe. On Wi-Fi, one packet overtaken by the next had cost a frame that wasn't lost. A packet that never arrives is still reported when the next frame starts.
- Linux: Nightjar desktop decodes PyroWave on the GPU straight into the renderer's own memory instead of copying each picture through the CPU. On an Intel Iris Plus 655, pictures are ready about a third sooner at 1080p and 4K, and the CPU does 30 to 50% less work.
- Linux: Nightjar desktop decodes H.264, HEVC and AV1 with Vulkan video on graphics cards without a VA-API driver, such as NVIDIA's, and draws each picture without copying it through the CPU. VA-API stays first where it works.
- Linux and Android: video packets that arrive together are received in one system call, up to 32 at a time. On our Linux test PC this halves the receive cost per packet when packets queue up, and while a 1000-packet frame streams in, the median packet is handed on 4.5 µs after it was sent instead of 90 µs.
Android
- Android: Send to PC reacts to the remote and to taps again. Its PC buttons were rebuilt every time Nightjar checked the PCs, so a press often landed on a button that was already gone; a transfer's Cancel and Try again had the same problem while it ran. With a remote, the focus now starts on the first PC, moves on to the screen's buttons once one is picked, and no longer falls back to the Back button, where the next OK closed the screen and cancelled the transfers.
- Android: Report a problem has a Send to PC button that sends the report straight into the PC's file transfer folder. This works on TVs whose share sheet offers no app for files.
- Settings that are rarely needed moved to a new Debug section at the end of Settings. They keep their values, and search still finds them.
Windows and Linux
- Desktop: a new launcher look. Cards lighten under the pointer, the focus is one amber ring, and the top bar marks where you are.
- Desktop: Home has a row per store, and All games filters by store or by what is installed. Games a PC has not installed now show too, dimmed; they cannot be started.
- Desktop: PC and game menus open by the card, from the three dots, a right-click, F2 or the controller's X. In a PC's library, F2 and X open the game's menu instead of its settings.
- Desktop settings are easier to find: sections on the left (chips on a narrow window), every setting visible with the rarely needed ones grouped under Fine-tuning, a search (Ctrl+F) that also works with a controller, Reset next to each changed setting and Reset all settings in App. PC and game settings show a clear For this PC or For this game box on each row.
- Desktop: rarely needed settings moved to a new Debug section at the end of Settings, and Align video to top left the stream menu.
- Nightjar for Windows and Linux has a Help page: getting started, every keyboard shortcut, the controller's buttons drawn in your controller's layout, sharing, and fixes for common problems. F1 or ? opens it from any page.
- In a stream, Ctrl+Alt+Shift+H or Shortcuts & help in the stream controls lists the stream's shortcuts. The stream controls are regrouped with icons, show each action's shortcut, dim the game behind them and set Disconnect apart.
- Windows and Linux: menus, scrolling and hover effects move smoothly at the display's refresh rate instead of stepping a few times a second, and a click shows its result at once.
- Windows: a captured mouse moves the PC's pointer at the mouse's own pace instead of once per screen refresh, so it glides evenly.
- Windows on Wi-Fi: streams switch the Wi-Fi adapter to media streaming mode so power saving doesn't bunch up input.
Everywhere
- The microphone sounds clearer on the PC: it is sent at 64 kb/s instead of 32 kb/s on Android, and on desktop it now gets the same settings, including the error correction that fills in a lost packet.
- Controller triggers respond from the first few percent of travel: the fixed 13% trigger deadzone inherited from Moonlight is gone. Trigger deadzone in Controls sets it (2% by default); on desktop, each controller has a Trigger dead zone next to its stick dead zone.
- "Use device motion sensors" now also works with USB controllers Nightjar drives itself, such as Xbox-style pads, so games get the phone or tablet gyro.
Tested. On a Retroid Pocket 6 at PyroWave 1080p60 and 400 Mbps, the time from a frame's last packet to its decoded picture fell from 3.5-3.8 to 3.0 ms (p95 6.0 to 3.4 ms), alternating four 50 s runs. With 5 % packet loss at HEVC 1080p60 and 150 Mbps, the desktop client's median time from arrival to screen fell from 3.66 to 3.39 ms. On the NUC's Intel Iris Plus 655, Linux PyroWave pictures were ready about a third sooner with 30-50 % less CPU, and Vulkan validation reported no errors. Vulkan video ran on the same Intel GPU (Mesa ANV, H.264 and HEVC): its pictures matched software decoding, 8-bit HEVC within 1/255, and a 45 s stream held 60 fps with no drops. The Android and desktop unit tests, lint and the release builds pass.
The APKs are signed by CI with the Nightjar release key; the desktop packages (Windows installer and zip; Linux .deb, .rpm, AppImage and tar.gz) are not signed. SHA-256 hashes of everything are in SHA256SUMS-4.2.0.txt.