diff --git a/.changeset/fix-local-video-publisher-buffer-lifetime.md b/.changeset/fix-local-video-publisher-buffer-lifetime.md deleted file mode 100644 index 0c66ec481..000000000 --- a/.changeset/fix-local-video-publisher-buffer-lifetime.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -webrtc-sys: patch -libwebrtc: patch -livekit: patch ---- - -Fix NVIDIA encoder I420 uploads to copy each plane using its actual source stride, avoiding chroma corruption when source frames use padded YUV planes. Also fix the `local_video` publisher reusing mutable I420 frame storage after handing frames to WebRTC. diff --git a/.changeset/local-video-subscriber-timing.md b/.changeset/local-video-subscriber-timing.md deleted file mode 100644 index e8086278c..000000000 --- a/.changeset/local-video-subscriber-timing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -libwebrtc: patch ---- - -Keep one-frame native video streams as latest-frame queues. Move local video subscriber timing metrics into the example and use the WGPU paint callback as the render boundary. diff --git a/.changeset/video-encoder-backend.md b/.changeset/video-encoder-backend.md deleted file mode 100644 index 1e143d0a5..000000000 --- a/.changeset/video-encoder-backend.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -webrtc-sys: patch -libwebrtc: patch -livekit: patch -livekit-ffi: patch ---- - -Add per-publication video encoder backend selection. Add a video encoder backend availability query. Remove `LIVEKIT_PREFERRED_HW_ENCODER` in favor of per-publication backend selection. diff --git a/Cargo.lock b/Cargo.lock index b85400203..921f35da5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3868,7 +3868,7 @@ dependencies = [ [[package]] name = "libwebrtc" -version = "0.3.35" +version = "0.3.36" dependencies = [ "cxx", "env_logger 0.11.10", @@ -3991,7 +3991,7 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "livekit" -version = "0.7.44" +version = "0.7.45" dependencies = [ "anyhow", "base64 0.22.1", @@ -4077,7 +4077,7 @@ dependencies = [ [[package]] name = "livekit-ffi" -version = "0.12.62" +version = "0.12.63" dependencies = [ "bytes", "console-subscriber", @@ -8662,7 +8662,7 @@ dependencies = [ [[package]] name = "webrtc-sys" -version = "0.3.33" +version = "0.3.34" dependencies = [ "cc", "cxx", diff --git a/Cargo.toml b/Cargo.toml index dc2cea5f7..88797327f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,15 +46,15 @@ license = "Apache-2.0" [workspace.dependencies] device-info = { version = "0.1.1", path = "device-info" } imgproc = { version = "0.3.19", path = "imgproc" } -libwebrtc = { version = "0.3.35", path = "libwebrtc" } -livekit = { version = "0.7.44", path = "livekit" } +libwebrtc = { version = "0.3.36", path = "libwebrtc" } +livekit = { version = "0.7.45", path = "livekit" } livekit-api = { version = "0.5.1", path = "livekit-api" } -livekit-ffi = { version = "0.12.62", path = "livekit-ffi" } +livekit-ffi = { version = "0.12.63", path = "livekit-ffi" } livekit-datatrack = { version = "0.1.8", path = "livekit-datatrack" } livekit-protocol = { version = "0.7.8", path = "livekit-protocol" } livekit-runtime = { version = "0.4.0", path = "livekit-runtime" } soxr-sys = { version = "0.1.3", path = "soxr-sys" } -webrtc-sys = { version = "0.3.33", path = "webrtc-sys" } +webrtc-sys = { version = "0.3.34", path = "webrtc-sys" } webrtc-sys-build = { version = "0.3.18", path = "webrtc-sys/build" } yuv-sys = { version = "0.3.14", path = "yuv-sys" } diff --git a/libwebrtc/CHANGELOG.md b/libwebrtc/CHANGELOG.md index 11b57de3c..2c2609ca7 100644 --- a/libwebrtc/CHANGELOG.md +++ b/libwebrtc/CHANGELOG.md @@ -139,6 +139,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.3.36 (2026-06-06) + +### Fixes + +- Fix NVIDIA encoder I420 uploads to copy each plane using its actual source stride, avoiding chroma corruption when source frames use padded YUV planes. Also fix the `local_video` publisher reusing mutable I420 frame storage after handing frames to WebRTC. +- Keep one-frame native video streams as latest-frame queues. Move local video subscriber timing metrics into the example and use the WGPU paint callback as the render boundary. +- Add per-publication video encoder backend selection. Add a video encoder backend availability query. Remove `LIVEKIT_PREFERRED_HW_ENCODER` in favor of per-publication backend selection. + ## 0.3.35 (2026-05-29) ### Fixes diff --git a/libwebrtc/Cargo.toml b/libwebrtc/Cargo.toml index ff78bd24d..fe9811a02 100644 --- a/libwebrtc/Cargo.toml +++ b/libwebrtc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "libwebrtc" -version = "0.3.35" +version = "0.3.36" edition.workspace = true homepage = "https://livekit.io" license.workspace = true diff --git a/livekit-ffi-node-bindings/npm/darwin-arm64/package.json b/livekit-ffi-node-bindings/npm/darwin-arm64/package.json index 31c228cea..a75e26364 100644 --- a/livekit-ffi-node-bindings/npm/darwin-arm64/package.json +++ b/livekit-ffi-node-bindings/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-darwin-arm64", - "version": "0.12.62", + "version": "0.12.63", "cpu": [ "arm64" ], diff --git a/livekit-ffi-node-bindings/npm/darwin-x64/package.json b/livekit-ffi-node-bindings/npm/darwin-x64/package.json index 2ace26342..c7e9ead2e 100644 --- a/livekit-ffi-node-bindings/npm/darwin-x64/package.json +++ b/livekit-ffi-node-bindings/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-darwin-x64", - "version": "0.12.62", + "version": "0.12.63", "cpu": [ "x64" ], diff --git a/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json b/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json index a35abb25a..07d7e5ea8 100644 --- a/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json +++ b/livekit-ffi-node-bindings/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-linux-arm64-gnu", - "version": "0.12.62", + "version": "0.12.63", "cpu": [ "arm64" ], diff --git a/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json b/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json index 11fa9e780..69a467a4c 100644 --- a/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json +++ b/livekit-ffi-node-bindings/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-linux-x64-gnu", - "version": "0.12.62", + "version": "0.12.63", "cpu": [ "x64" ], diff --git a/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json b/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json index b7b2076aa..83327e989 100644 --- a/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json +++ b/livekit-ffi-node-bindings/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/rtc-ffi-bindings-win32-x64-msvc", - "version": "0.12.62", + "version": "0.12.63", "cpu": [ "x64" ], diff --git a/livekit-ffi-node-bindings/package.json b/livekit-ffi-node-bindings/package.json index 3168c07b0..13b88f674 100644 --- a/livekit-ffi-node-bindings/package.json +++ b/livekit-ffi-node-bindings/package.json @@ -3,7 +3,7 @@ "description": "LiveKit RTC Node FFI bindings for internal use only", "license": "Apache-2.0", "author": "LiveKit", - "version": "0.12.62", + "version": "0.12.63", "main": "index.js", "types": "index.d.ts", "type": "commonjs", diff --git a/livekit-ffi/CHANGELOG.md b/livekit-ffi/CHANGELOG.md index a55edea49..7b6ea674c 100644 --- a/livekit-ffi/CHANGELOG.md +++ b/livekit-ffi/CHANGELOG.md @@ -316,6 +316,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.12.63 (2026-06-06) + +### Fixes + +- Add per-publication video encoder backend selection. Add a video encoder backend availability query. Remove `LIVEKIT_PREFERRED_HW_ENCODER` in favor of per-publication backend selection. + ## 0.12.62 (2026-06-03) ### Fixes diff --git a/livekit-ffi/Cargo.toml b/livekit-ffi/Cargo.toml index 5ef4928b5..8c5cc26ab 100644 --- a/livekit-ffi/Cargo.toml +++ b/livekit-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "livekit-ffi" -version = "0.12.62" +version = "0.12.63" edition.workspace = true license.workspace = true description = "FFI interface for bindings in other languages" diff --git a/livekit/CHANGELOG.md b/livekit/CHANGELOG.md index 0cf28f11c..38bd2e7c3 100644 --- a/livekit/CHANGELOG.md +++ b/livekit/CHANGELOG.md @@ -257,6 +257,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.7.45 (2026-06-06) + +### Fixes + +- Fix NVIDIA encoder I420 uploads to copy each plane using its actual source stride, avoiding chroma corruption when source frames use padded YUV planes. Also fix the `local_video` publisher reusing mutable I420 frame storage after handing frames to WebRTC. +- Add per-publication video encoder backend selection. Add a video encoder backend availability query. Remove `LIVEKIT_PREFERRED_HW_ENCODER` in favor of per-publication backend selection. + ## 0.7.44 (2026-06-03) ### Features diff --git a/livekit/Cargo.toml b/livekit/Cargo.toml index 36fe1af9b..83a9055b8 100644 --- a/livekit/Cargo.toml +++ b/livekit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "livekit" -version = "0.7.44" +version = "0.7.45" edition.workspace = true license.workspace = true description = "Rust Client SDK for LiveKit" diff --git a/webrtc-sys/CHANGELOG.md b/webrtc-sys/CHANGELOG.md index 6afaa7a59..50cea78cf 100644 --- a/webrtc-sys/CHANGELOG.md +++ b/webrtc-sys/CHANGELOG.md @@ -165,6 +165,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - bump libwebrtc to m125 +## 0.3.34 (2026-06-06) + +### Fixes + +- Fix NVIDIA encoder I420 uploads to copy each plane using its actual source stride, avoiding chroma corruption when source frames use padded YUV planes. Also fix the `local_video` publisher reusing mutable I420 frame storage after handing frames to WebRTC. +- Add per-publication video encoder backend selection. Add a video encoder backend availability query. Remove `LIVEKIT_PREFERRED_HW_ENCODER` in favor of per-publication backend selection. + ## 0.3.33 (2026-05-29) ### Fixes diff --git a/webrtc-sys/Cargo.toml b/webrtc-sys/Cargo.toml index 81b8ddf44..8b7dcece0 100644 --- a/webrtc-sys/Cargo.toml +++ b/webrtc-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "webrtc-sys" -version = "0.3.33" +version = "0.3.34" edition.workspace = true homepage = "https://livekit.io" license.workspace = true