Skip to main content

Kyber 0.14.0

· 3 min read

Kyber 0.14.0 brings meaningful improvements to connection reliability and visibility on both desktop and web. The connection process is now split into two distinct stages — first establishing the control plane link, then starting the streaming session — making it clearer exactly where a connection stands at any given moment. If either stage fails, you now receive a specific notification explaining what went wrong and why the session ended, rather than a silent timeout. A one-minute timeout guards the control plane connection, so a failed or stalled attempt is detected and surfaced quickly rather than left hanging indefinitely.

On Windows, a long-standing latency issue with H.264 hardware decoding in Chromium-based browsers has been resolved through a fix to how encoder parameters are packaged for the stream, resulting in noticeably snappier video for affected users.

The web client receives all of the same connection-lifecycle improvements alongside several stability fixes. The host cursor shape is now applied correctly only when the pointer is actually inside the video canvas. A new API lets you query which video codecs the browser supports, and notifications — including canvas resize events — are now delivered through a unified notification system. The client will now automatically stop itself on a video decoding error rather than hanging, and audio decoding errors are handled gracefully as well. Gamepad handling no longer panics on unrecognised buttons or axes, and two startup crashes have been fixed.

⚠️ The web client JavaScript API and the server protocol both contain breaking changes in this release. Existing web integrations will need to be updated.

Changelog

  • controller/libclient: Implement connection timeout detection (1 minute) on Control Plane
  • Add client lifecycle notifications (connection failed, disconnected + reason)
  • Connection steps are now splitted (1. Connect to the Control plane, 2. Start streaming session)
  • avserver/win32: Correctly patch NVENC H264 SPS to fix H264 latency issue on Windows Chromium when using hardware decoding
  • (web) ⚠️ This version introduces breaking changes ⚠️
  • (web) The JS has breaking changes
  • (web) The protocol with the controller has breaking changes
  • (web) Implement connection timeout detection (1 minute) on Control Plane
  • (web) cursor: Apply Host cursor shape only when the cursor is inside the canvas
  • (web) Add supported_video_codecs()
  • (web) Add a generic notification API. "canvas_resized" is now passed through this API
  • (web) Add client lifecycle notifications (connection failed, disconnected + reason)
  • (web) Improve callstack decoding in browser console
  • (web) Client is now automatically stopped if a video decoding error is detected
  • (web) Handle audio decoding errors correctly
  • (web) gamepad: Avoid to panic when receiving unknown button/axis
  • (web) Connection steps are now splitted (1. Connect to the Control plane, 2. Start streaming session)
  • (web) Fix a case where cursor was hidden and not send after connection
  • (web) Log client revision at startup
  • (web) Fix a crash when VideoFrame queue is full at startup