Skip to content
Open
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
5 changes: 5 additions & 0 deletions .changeset/ten-ants-try.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"client-sdk-android": minor
---

Update libwebrtc to m144
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[versions]
webrtc = "137.7151.05"
webrtc = "144.7559.01"

androidJainSipRi = "1.3.0-91"
androidx-activity = "1.9.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2025 LiveKit, Inc.
* Copyright 2023-2026 LiveKit, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -17,13 +17,15 @@
package io.livekit.android.e2ee

import livekit.LivekitModels.Encryption
import livekit.org.webrtc.FrameCryptorKeyDerivationAlgorithm

internal const val defaultRatchetSalt = "LKFrameEncryptionKey"
internal const val defaultMagicBytes = "LK-ROCKS"
internal const val defaultRatchetWindowSize = 16
internal const val defaultFailureTolerance = -1
internal const val defaultKeyRingSize = 16
internal const val defaultDiscardFrameWhenCryptorNotReady = false
internal val defaultKeyDerivationAlgorithm = FrameCryptorKeyDerivationAlgorithm.PBKDF2

class E2EEOptions(
var keyProvider: KeyProvider = BaseKeyProvider(
Expand All @@ -34,6 +36,7 @@ class E2EEOptions(
defaultFailureTolerance,
defaultKeyRingSize,
defaultDiscardFrameWhenCryptorNotReady,
defaultKeyDerivationAlgorithm,
),
encryptionType: Encryption.Type = Encryption.Type.GCM,
) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2025 LiveKit, Inc.
* Copyright 2023-2026 LiveKit, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,6 +18,7 @@ package io.livekit.android.e2ee

import io.livekit.android.util.LKLog
import livekit.org.webrtc.FrameCryptorFactory
import livekit.org.webrtc.FrameCryptorKeyDerivationAlgorithm
import livekit.org.webrtc.FrameCryptorKeyProvider

internal class KeyInfo(var participantId: String, var keyIndex: Int, var key: String) {
Expand Down Expand Up @@ -49,6 +50,7 @@ class BaseKeyProvider(
failureTolerance: Int = defaultFailureTolerance,
keyRingSize: Int = defaultKeyRingSize,
discardFrameWhenCryptorNotReady: Boolean = defaultDiscardFrameWhenCryptorNotReady,
keyDerivationAlgorithm: FrameCryptorKeyDerivationAlgorithm = defaultKeyDerivationAlgorithm,
) : KeyProvider {

private val latestSetIndex = mutableMapOf<String, Int>()
Expand All @@ -61,6 +63,7 @@ class BaseKeyProvider(
failureTolerance,
keyRingSize,
discardFrameWhenCryptorNotReady,
keyDerivationAlgorithm,
)

override fun setSharedKey(key: String, keyIndex: Int?): Boolean {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2025 LiveKit, Inc.
* Copyright 2023-2026 LiveKit, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -52,7 +52,7 @@ fun RTCConfiguration.copy(): RTCConfiguration {
}

fun RTCConfiguration.copyFrom(config: RTCConfiguration) {
activeResetSrtpParams = config.activeResetSrtpParams
// activeResetSrtpParams = config.activeResetSrtpParams
audioJitterBufferFastAccelerate = config.audioJitterBufferFastAccelerate
audioJitterBufferMaxPackets = config.audioJitterBufferMaxPackets
bundlePolicy = config.bundlePolicy
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2024 LiveKit, Inc.
* Copyright 2024-2026 LiveKit, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -19,7 +19,7 @@ package io.livekit.android.test.mock
import livekit.org.webrtc.audio.AudioDeviceModule

class MockAudioDeviceModule : AudioDeviceModule {
override fun getNativeAudioDeviceModulePointer(): Long {
override fun getNative(webrtcEnvRef: Long): Long {
return 1
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2024 LiveKit, Inc.
* Copyright 2024-2026 LiveKit, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -25,7 +25,9 @@ object MockLKObjects {
eglBaseProvider = { MockEglBase() },
audioDeviceModuleProvider = {
object : AudioDeviceModule {
override fun getNativeAudioDeviceModulePointer(): Long = 1
override fun getNative(webrtcEnvRef: Long): Long {
return 1
}

override fun release() {}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2024 LiveKit, Inc.
* Copyright 2023-2026 LiveKit, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -52,7 +52,7 @@ class RTCConfigurationTest : BaseTest() {
fillWithMockData(originalConfig)
val newConfig = originalConfig.copy()

newConfig.activeResetSrtpParams = false
newConfig.iceCheckMinInterval = 5

var caughtError = false
try {
Expand Down
Loading