Skip to content

Commit 1634045

Browse files
feat(core): bring E2EE and music-mode audio onto WebRTC 145
Use the repackaged 145.19.0 snapshot so EncryptionManager and the runtime audio-source APIs stay on io.getstream.webrtc. Wire end-to-end encryption and the mid-call music profile without switching back to org.webrtc. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent f1b8d87 commit 1634045

27 files changed

Lines changed: 3331 additions & 43 deletions

‎gradle/libs.versions.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ tink = "1.9.0"
5252
turbine = "0.13.0"
5353
itu = "1.7.3"
5454

55-
streamWebRTC = "137.1.1"
55+
streamWebRTC = "145.19.0-SNAPSHOT"
5656
streamNoiseCancellation = "2.0.0"
5757
streamResult = "1.3.0"
5858
streamChat = "6.10.0"

‎settings.gradle.kts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ dependencyResolutionManagement {
1616
repositories {
1717
google()
1818
mavenCentral()
19+
maven(url = "https://central.sonatype.com/repository/maven-snapshots/") {
20+
mavenContent { snapshotsOnly() }
21+
}
1922
maven(url = "https://plugins.gradle.org/m2/")
2023
}
2124
}

‎stream-video-android-core/api/stream-video-android-core.api‎

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9071,6 +9071,7 @@ public final class io/getstream/video/android/core/Call {
90719071
public static synthetic fun sendReaction$default (Lio/getstream/video/android/core/Call;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
90729072
public final fun setAudioFilter (Lio/getstream/video/android/core/call/audio/InputAudioFilter;)V
90739073
public final fun setAudioProcessingEnabled (Z)V
9074+
public final fun setE2EEManager-IoAF18A (Lio/getstream/video/android/core/e2ee/E2EEManager;)Ljava/lang/Object;
90749075
public final fun setIncomingAudioEnabled (ZLjava/util/List;)V
90759076
public static synthetic fun setIncomingAudioEnabled$default (Lio/getstream/video/android/core/Call;ZLjava/util/List;ILjava/lang/Object;)V
90769077
public final fun setIncomingVideoEnabled (Ljava/lang/Boolean;Ljava/util/List;)V
@@ -9163,6 +9164,7 @@ public final class io/getstream/video/android/core/CallState {
91639164
public final fun getDuration ()Lkotlinx/coroutines/flow/StateFlow;
91649165
public final fun getDurationInDateFormat ()Lkotlinx/coroutines/flow/StateFlow;
91659166
public final fun getDurationInMs ()Lkotlinx/coroutines/flow/StateFlow;
9167+
public final fun getE2eeEnabled ()Lkotlinx/coroutines/flow/StateFlow;
91669168
public final fun getEgress ()Lkotlinx/coroutines/flow/StateFlow;
91679169
public final fun getEgressPlayListUrl ()Lkotlinx/coroutines/flow/StateFlow;
91689170
public final fun getEndedAt ()Lkotlinx/coroutines/flow/StateFlow;
@@ -12072,6 +12074,166 @@ public final class io/getstream/video/android/core/dispatchers/DispatcherProvide
1207212074
public final fun setInTest (Z)V
1207312075
}
1207412076

12077+
public final class io/getstream/video/android/core/e2ee/E2EEAlgorithm : java/lang/Enum {
12078+
public static final field AES_128_GCM Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;
12079+
public static final field AES_256_GCM Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;
12080+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
12081+
public static fun valueOf (Ljava/lang/String;)Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;
12082+
public static fun values ()[Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;
12083+
}
12084+
12085+
public final class io/getstream/video/android/core/e2ee/E2EEEvent {
12086+
public fun <init> (Lio/getstream/video/android/core/e2ee/E2EEEventType;Ljava/lang/String;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EEKeyState;Ljava/util/List;Ljava/util/List;)V
12087+
public final fun component1 ()Lio/getstream/video/android/core/e2ee/E2EEEventType;
12088+
public final fun component10 ()Ljava/util/List;
12089+
public final fun component2 ()Ljava/lang/String;
12090+
public final fun component3 ()Ljava/lang/String;
12091+
public final fun component4 ()Lio/getstream/video/android/core/e2ee/E2EETrackType;
12092+
public final fun component5 ()Ljava/lang/Integer;
12093+
public final fun component6 ()Ljava/lang/Integer;
12094+
public final fun component7 ()Ljava/lang/String;
12095+
public final fun component8 ()Lio/getstream/video/android/core/e2ee/E2EEKeyState;
12096+
public final fun component9 ()Ljava/util/List;
12097+
public final fun copy (Lio/getstream/video/android/core/e2ee/E2EEEventType;Ljava/lang/String;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EEKeyState;Ljava/util/List;Ljava/util/List;)Lio/getstream/video/android/core/e2ee/E2EEEvent;
12098+
public static synthetic fun copy$default (Lio/getstream/video/android/core/e2ee/E2EEEvent;Lio/getstream/video/android/core/e2ee/E2EEEventType;Ljava/lang/String;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EEKeyState;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lio/getstream/video/android/core/e2ee/E2EEEvent;
12099+
public fun equals (Ljava/lang/Object;)Z
12100+
public final fun getDecodePerformance ()Ljava/util/List;
12101+
public final fun getEncodePerformance ()Ljava/util/List;
12102+
public final fun getKeyIndex ()Ljava/lang/Integer;
12103+
public final fun getKeyState ()Lio/getstream/video/android/core/e2ee/E2EEKeyState;
12104+
public final fun getName ()Ljava/lang/String;
12105+
public final fun getReason ()Ljava/lang/String;
12106+
public final fun getTrackType ()Lio/getstream/video/android/core/e2ee/E2EETrackType;
12107+
public final fun getType ()Lio/getstream/video/android/core/e2ee/E2EEEventType;
12108+
public final fun getUserId ()Ljava/lang/String;
12109+
public final fun getVersion ()Ljava/lang/Integer;
12110+
public fun hashCode ()I
12111+
public fun toString ()Ljava/lang/String;
12112+
}
12113+
12114+
public abstract interface class io/getstream/video/android/core/e2ee/E2EEEventListener {
12115+
public abstract fun onEvent (Lio/getstream/video/android/core/e2ee/E2EEEvent;)V
12116+
}
12117+
12118+
public final class io/getstream/video/android/core/e2ee/E2EEEventType : java/lang/Enum {
12119+
public static final field DECRYPTION_FAILED Lio/getstream/video/android/core/e2ee/E2EEEventType;
12120+
public static final field DECRYPTION_RESUMED Lio/getstream/video/android/core/e2ee/E2EEEventType;
12121+
public static final field DECRYPTION_STALLED Lio/getstream/video/android/core/e2ee/E2EEEventType;
12122+
public static final field ENCRYPTION_FAILED Lio/getstream/video/android/core/e2ee/E2EEEventType;
12123+
public static final field KEY_STATE Lio/getstream/video/android/core/e2ee/E2EEEventType;
12124+
public static final field MISSING_KEY Lio/getstream/video/android/core/e2ee/E2EEEventType;
12125+
public static final field PERF_REPORT Lio/getstream/video/android/core/e2ee/E2EEEventType;
12126+
public static final field UNENCRYPTED_FRAME Lio/getstream/video/android/core/e2ee/E2EEEventType;
12127+
public static final field UNKNOWN Lio/getstream/video/android/core/e2ee/E2EEEventType;
12128+
public static final field UNSUPPORTED_VERSION Lio/getstream/video/android/core/e2ee/E2EEEventType;
12129+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
12130+
public static fun valueOf (Ljava/lang/String;)Lio/getstream/video/android/core/e2ee/E2EEEventType;
12131+
public static fun values ()[Lio/getstream/video/android/core/e2ee/E2EEEventType;
12132+
}
12133+
12134+
public final class io/getstream/video/android/core/e2ee/E2EEKeyState {
12135+
public fun <init> (Ljava/util/List;Ljava/util/List;)V
12136+
public final fun component1 ()Ljava/util/List;
12137+
public final fun component2 ()Ljava/util/List;
12138+
public final fun copy (Ljava/util/List;Ljava/util/List;)Lio/getstream/video/android/core/e2ee/E2EEKeyState;
12139+
public static synthetic fun copy$default (Lio/getstream/video/android/core/e2ee/E2EEKeyState;Ljava/util/List;Ljava/util/List;ILjava/lang/Object;)Lio/getstream/video/android/core/e2ee/E2EEKeyState;
12140+
public fun equals (Ljava/lang/Object;)Z
12141+
public final fun getPerUserKeys ()Ljava/util/List;
12142+
public final fun getSharedKeys ()Ljava/util/List;
12143+
public fun hashCode ()I
12144+
public fun toString ()Ljava/lang/String;
12145+
}
12146+
12147+
public abstract interface class io/getstream/video/android/core/e2ee/E2EEManager {
12148+
public abstract fun decrypt-0E7RQCE (Lio/getstream/webrtc/RtpReceiver;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;)Ljava/lang/Object;
12149+
public abstract fun encrypt-0E7RQCE (Lio/getstream/webrtc/RtpSender;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;)Ljava/lang/Object;
12150+
}
12151+
12152+
public final class io/getstream/video/android/core/e2ee/E2EESharedKey {
12153+
public fun <init> (ILjava/lang/String;Z)V
12154+
public final fun component1 ()I
12155+
public final fun component2 ()Ljava/lang/String;
12156+
public final fun component3 ()Z
12157+
public final fun copy (ILjava/lang/String;Z)Lio/getstream/video/android/core/e2ee/E2EESharedKey;
12158+
public static synthetic fun copy$default (Lio/getstream/video/android/core/e2ee/E2EESharedKey;ILjava/lang/String;ZILjava/lang/Object;)Lio/getstream/video/android/core/e2ee/E2EESharedKey;
12159+
public fun equals (Ljava/lang/Object;)Z
12160+
public final fun getFingerprint ()Ljava/lang/String;
12161+
public final fun getKeyIndex ()I
12162+
public fun hashCode ()I
12163+
public final fun isActive ()Z
12164+
public fun toString ()Ljava/lang/String;
12165+
}
12166+
12167+
public final class io/getstream/video/android/core/e2ee/E2EETrackPerformance {
12168+
public fun <init> (Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;Ljava/lang/String;DD)V
12169+
public final fun component1 ()Ljava/lang/String;
12170+
public final fun component2 ()Lio/getstream/video/android/core/e2ee/E2EETrackType;
12171+
public final fun component3 ()Ljava/lang/String;
12172+
public final fun component4 ()D
12173+
public final fun component5 ()D
12174+
public final fun copy (Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;Ljava/lang/String;DD)Lio/getstream/video/android/core/e2ee/E2EETrackPerformance;
12175+
public static synthetic fun copy$default (Lio/getstream/video/android/core/e2ee/E2EETrackPerformance;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;Ljava/lang/String;DDILjava/lang/Object;)Lio/getstream/video/android/core/e2ee/E2EETrackPerformance;
12176+
public fun equals (Ljava/lang/Object;)Z
12177+
public final fun getCodec ()Ljava/lang/String;
12178+
public final fun getFps ()D
12179+
public final fun getMaxCryptoMs ()D
12180+
public final fun getTrackType ()Lio/getstream/video/android/core/e2ee/E2EETrackType;
12181+
public final fun getUserId ()Ljava/lang/String;
12182+
public fun hashCode ()I
12183+
public fun toString ()Ljava/lang/String;
12184+
}
12185+
12186+
public final class io/getstream/video/android/core/e2ee/E2EETrackType : java/lang/Enum {
12187+
public static final field AUDIO Lio/getstream/video/android/core/e2ee/E2EETrackType;
12188+
public static final field SCREEN_SHARE Lio/getstream/video/android/core/e2ee/E2EETrackType;
12189+
public static final field SCREEN_SHARE_AUDIO Lio/getstream/video/android/core/e2ee/E2EETrackType;
12190+
public static final field VIDEO Lio/getstream/video/android/core/e2ee/E2EETrackType;
12191+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
12192+
public static fun valueOf (Ljava/lang/String;)Lio/getstream/video/android/core/e2ee/E2EETrackType;
12193+
public static fun values ()[Lio/getstream/video/android/core/e2ee/E2EETrackType;
12194+
}
12195+
12196+
public final class io/getstream/video/android/core/e2ee/E2EEUserKey {
12197+
public fun <init> (Ljava/lang/String;ILjava/lang/String;)V
12198+
public final fun component1 ()Ljava/lang/String;
12199+
public final fun component2 ()I
12200+
public final fun component3 ()Ljava/lang/String;
12201+
public final fun copy (Ljava/lang/String;ILjava/lang/String;)Lio/getstream/video/android/core/e2ee/E2EEUserKey;
12202+
public static synthetic fun copy$default (Lio/getstream/video/android/core/e2ee/E2EEUserKey;Ljava/lang/String;ILjava/lang/String;ILjava/lang/Object;)Lio/getstream/video/android/core/e2ee/E2EEUserKey;
12203+
public fun equals (Ljava/lang/Object;)Z
12204+
public final fun getFingerprint ()Ljava/lang/String;
12205+
public final fun getKeyIndex ()I
12206+
public final fun getUserId ()Ljava/lang/String;
12207+
public fun hashCode ()I
12208+
public fun toString ()Ljava/lang/String;
12209+
}
12210+
12211+
public final class io/getstream/video/android/core/e2ee/StreamEncryptionManager : io/getstream/video/android/core/e2ee/E2EEManager {
12212+
public static final field Companion Lio/getstream/video/android/core/e2ee/StreamEncryptionManager$Companion;
12213+
public synthetic fun <init> (Lio/getstream/webrtc/EncryptionManager;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
12214+
public static final fun create-gIAlu-s (Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;)Ljava/lang/Object;
12215+
public fun decrypt-0E7RQCE (Lio/getstream/webrtc/RtpReceiver;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;)Ljava/lang/Object;
12216+
public final fun dispose ()V
12217+
public final fun enablePerformanceReporting (Z)V
12218+
public fun encrypt-0E7RQCE (Lio/getstream/webrtc/RtpSender;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EETrackType;)Ljava/lang/Object;
12219+
public final fun getAlgorithm ()Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;
12220+
public final fun getUserId ()Ljava/lang/String;
12221+
public static final fun isSupported ()Z
12222+
public final fun removeAllKeys (Ljava/lang/String;)V
12223+
public final fun removeKey (Ljava/lang/String;I)V
12224+
public final fun removeSharedKey (I)V
12225+
public final fun requestKeyState ()V
12226+
public final fun setEventListener (Lio/getstream/video/android/core/e2ee/E2EEEventListener;)V
12227+
public final fun setKey (Ljava/lang/String;I[B)V
12228+
public final fun setSharedKey (I[B)V
12229+
}
12230+
12231+
public final class io/getstream/video/android/core/e2ee/StreamEncryptionManager$Companion {
12232+
public final fun create-gIAlu-s (Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;)Ljava/lang/Object;
12233+
public static synthetic fun create-gIAlu-s$default (Lio/getstream/video/android/core/e2ee/StreamEncryptionManager$Companion;Ljava/lang/String;Lio/getstream/video/android/core/e2ee/E2EEAlgorithm;ILjava/lang/Object;)Ljava/lang/Object;
12234+
public final fun isSupported ()Z
12235+
}
12236+
1207512237
public final class io/getstream/video/android/core/errors/CameraException : java/lang/Exception {
1207612238
public fun <init> ()V
1207712239
public fun <init> (Ljava/lang/String;Ljava/lang/Throwable;)V

0 commit comments

Comments
 (0)