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
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.