You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Interpolated playback is now paced on a queued vsync-driven timeline, producing more even output cadence and reducing visible stutter.
The camera publishes as soon as the first valid frame passes validation, shortening time-to-first-image. Frame brightness validation is now bounded to two seconds and only warns on timeout instead of stalling startup.
Remote frame interpolation is now off by default. Enable it via frameInterpolation.enabled or setFrameInterpolationEnabled(true) at runtime; unsupported devices and processing failures still fall back to the original video.
The X-Lab example removes the interpolation toggle and model picker and pins x2-fast-1080p. The statistics panel is grouped, and frame validation time is reported separately in launch timing.
API Changes
RealtimeConfiguration interpolation defaults changed from on to off: both frameInterpolation.enabled and isFrameInterpolationEnabled now default to false. Integrations that relied on the previous default must set frameInterpolation: { enabled: true } explicitly.
createLocalCameraStream adds an enableFrameValidation option (default true); set it to false to skip the startup brightness check and its wait.
RealtimeLaunchTiming adds frameValidationMs, reported separately from session and room connection timing; the field is absent when validation is skipped.
Requirements and Known Limitations
Camera and microphone require an HTTPS or localhost secure context and user permission. Audio playback remains subject to browser autoplay policies.
Interpolation requires WebGPU, shader-f16, and requestVideoFrameCallback; at most one frame is inserted per source pair with a 60fps ceiling, and the target rate is not guaranteed on all devices and resolutions.
The remote frame rate depends on server send pacing and network jitter; interpolation cannot compensate for burst-delivered source frames, so overall smoothness relies on server-side pacing.
The frame rate in RTC statistics reflects the raw received stream, and E2E is an RTC-provided estimate; neither represents full end-to-end latency including generation and client-side interpolation.