Skip to content
Open

v2.29.0 #1020

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions .changeset/data-tracks.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/fix-data-track-stream-end-race.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/idempotent-add-simulcast-track.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/keep-jna-for-data-tracks.md

This file was deleted.

28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# client-sdk-android

## 2.29.0

### Minor Changes

- Add data tracks, a named channel for streaming structured frames to a room. - [#1004](https://github.com/livekit/client-sdk-android/pull/1004) ([@davidliu](https://github.com/davidliu))

Publish with `LocalParticipant.publishDataTrack` (or `withDataTrack` to scope a publication to a
block), then push frames with `LocalDataTrack.tryPush` or `send`. Subscribers find published tracks
through `RemoteParticipant.dataTracks` or the new `RoomEvent.DataTrackPublished` /
`DataTrackUnpublished` events, and call `RemoteDataTrack.subscribe` for a `DataTrackStream` of
incoming frames.

Frame formats are declared through `DataTrackPublishOptions` using `DataTrackFrameEncoding`
(protobuf, flatbuffer, CDR, ROS 1, CBOR, msgpack, JSON), and schema definitions can be shared
with `LocalParticipant.defineSchema` / `getSchema`. Frames are end-to-end encrypted when E2EE
is enabled on the room.

This adds a dependency on `io.livekit:livekit-uniffi-android`, containing the shared Rust core also
used by the other native SDKs.

### Patch Changes

- Fixed `DataTrackStream.flow` sometimes completing without delivering the frames that arrived just before the stream ended. - [#1025](https://github.com/livekit/client-sdk-android/pull/1025) ([@adrian-niculescu](https://github.com/adrian-niculescu))

- Fix crash when a duplicate SubscribedQualityUpdate requests a backup codec that is already added. addSimulcastTrack now skips the duplicate instead of throwing IllegalStateException ("VP8 already added!"), matching the JS SDK behavior. - [#1010](https://github.com/livekit/client-sdk-android/pull/1010) ([@davibittencourtome](https://github.com/davibittencourtome))

- Fixed data tracks failing to load in apps minified with R8. - [#1023](https://github.com/livekit/client-sdk-android/pull/1023) ([@adrian-niculescu](https://github.com/adrian-niculescu))

## 2.28.2

### Patch Changes
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ LiveKit for Android is available as a Maven package.
```groovy title="build.gradle"
...
dependencies {
def livekit_version = "2.28.2"
def livekit_version = "2.29.0"

implementation "io.livekit:livekit-android:$livekit_version"

Expand All @@ -95,7 +95,7 @@ dependencies {
implementation "io.livekit:livekit-android-track-processors:$livekit_version"

// Snapshots of the latest development version are available at:
// implementation "io.livekit:livekit-android:2.28.3-SNAPSHOT"
// implementation "io.livekit:livekit-android:2.29.1-SNAPSHOT"
}
```

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ kapt.use.worker.api=true
###############################################################

GROUP=io.livekit
VERSION_NAME=2.28.2
VERSION_NAME=2.29.0

POM_DESCRIPTION=LiveKit Android SDK, WebRTC Rooms

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "client-sdk-android",
"version": "2.28.2",
"version": "2.29.0",
"repository": "https://github.com/livekit/client-sdk-android.git",
"license": "Apache License 2.0",
"private": true,
Expand Down