Skip to content

1.0.6

Choose a tag to compare

@WengYuehTing WengYuehTing released this 10 Oct 12:04
· 28 commits to main since this release

What's New

  • Added independent Agora uplink and downlink adaptive quality with five tiers, fast downgrade and gradual recovery. Downlink adaptation requests server output resolution changes through change_target_size.
  • Remember the last successful target tier per model and direction in localStorage; use L2 when no valid history is available. L4 now uses 512 × 960 at 20 fps for the standard portrait source.
  • Agora camera quality updates now use WebRTC sender scaling, frame-rate caps and maximum bitrate instead of reapplying camera capture constraints. File video and other RTC providers retain their existing configuration paths.
  • Improved Safari frame-timestamp handling and added video-view render frame-rate statistics.
  • X-Lab now defaults to x2.1-preview, with microphone and frame interpolation disabled by default. Frame interpolation can still be toggled during a session; temporary quality-debug buttons have been removed.

API Changes

  • Renamed the realtime manager's updateVideoFormat() to updateUplinkVideoFormat(); callers must update method references.
  • Added updateUplinkFrameRate(fps) and adjustDownlinkQuality("upgrade" | "downgrade").
  • Added VideoRenderStatistics, the video view's renderStatisticsHandler, and the React video's onRenderStatistics callback.
  • Removed the built-in RealtimeModel.x2_0_agora preset. Use RealtimeModel.x2_1_preview, which now defaults to Agora and the production endpoint https://cloud.xmax.22duck.cn/open/api/v1.
  • Unknown model identifiers inherit the updated x2.1-preview defaults while retaining their original server model name; explicit RTC-provider overrides remain supported for custom models.

Requirements and Known Limitations

  • Adaptive quality is currently implemented for Agora. Downlink target changes update resolution only; sending the signal does not confirm server application.
  • Camera sender-only configuration requires browser support for the relevant WebRTC sender parameters. Minimum bitrate is not applied, and initial frames may be published before the target limits are installed.
  • Stored quality history has no expiry or network-identity matching. Actual resolution, frame rate and bitrate still depend on the browser, device, RTC implementation and network conditions.
  • Manual frame-rate switching was verified by the maintainer. Automated release checks do not replace cross-browser live-session testing.