What's Changed
Performance improvements for large calls
This release focuses on performance, with two main areas of improvement:
Reduced browser resource usage. Several changes lower CPU and memory consumption when rendering many video tiles, making large calls noticeably smoother.
Fewer to-device messages for encryption key sharing. In encrypted calls, media encryption keys are rotated whenever someone joins or leaves, and each new key must be sent to every participant device via to-device messages. In large calls this traffic grows rapidly and has been one of the main limiting factors for call size.
🛠 Breaking Changes
- Remove MatrixRTC legacy mode by @robintown in #4208
✨ Features
🙌 Improvements
- Performance: Avoid re-rendering context menus so often by @robintown in #4150
- Performance: Disable animations when there are a large number of tiles by @robintown in #4152
- Performance: Fit video to frame without polling RTP stats by @robintown in #4151
- Performance: Isolate tile store debug info in its own component by @robintown in #4178
- Performance: Ignore redundant layout updates by @robintown in #4177
- Performance: Use PNGs for the background gradients by @robintown in #4180
📄 Documentation
- Remove feature_use_device_session_member_events by @robintown in #4207
🐛 Bugfixes
- Fix: error screen cannot be closed in embedded mode. by @toger5 in #4171
- Room joining: if join_rule is absent, assume public by @alexmaras in #4160
- Fix lobby video preview losing its rounded corners in Firefox by @robintown in #4181
- Hide reactions interface in PiP mode by @robintown in #4185
💾 Developer Experience
👒 Dependencies
- Update ghcr.io/element-hq/element-web:develop Docker digest to a614392 by @renovate[bot] in #4163
- Update ghcr.io/element-hq/element-web:develop Docker digest to af44e1e by @renovate[bot] in #4165
- Update LiveKit components by @renovate[bot] in #4168
- Update dependency @vector-im/compound-web to v10 by @renovate[bot] in #4169
- Update ghcr.io/element-hq/element-web:develop Docker digest to 073e6a4 by @renovate[bot] in #4176
- Update ghcr.io/element-hq/element-web:develop Docker digest to 9ac7cde by @renovate[bot] in #4182
- Update ghcr.io/element-hq/element-web:develop Docker digest to a416986 by @renovate[bot] in #4186
- Update ghcr.io/element-hq/element-web:develop Docker digest to ee5b90c by @renovate[bot] in #4193
- Update dependency livekit-client to v2.22.0 by @renovate[bot] in #4197
- Update ghcr.io/element-hq/element-web:develop Docker digest to 07aa9a3 by @renovate[bot] in #4195
- Update dependency @vector-im/compound-design-tokens to v10.2.4 by @renovate[bot] in #4196
- Update ghcr.io/element-hq/element-web:develop Docker digest to 0332028 by @renovate[bot] in #4204
- Update ghcr.io/element-hq/element-web:develop Docker digest to f163e7a by @renovate[bot] in #4211
- Update ghcr.io/element-hq/element-web:develop Docker digest to 133160c by @renovate[bot] in #4213
New Contributors
- @alexmaras made their first contribution in #4160
Full Changelog: v0.24.0...v0.25.0
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:v0.25.0
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/element-call-embedded@0.25.0
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.25.0'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.25.0")