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
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ turbine = "0.13.0"
itu = "1.7.3"

streamWebRTC = "137.1.1"
streamNoiseCancellation = "1.0.4"
streamNoiseCancellation = "2.0.0"
streamResult = "1.3.0"
streamChat = "6.10.0"
streamLog = "1.3.2"
Expand Down Expand Up @@ -154,7 +154,7 @@ tink = { group = "com.google.crypto.tink", name = "tink-android", version.ref =
turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" }
ituDate = { group = "com.ethlo.time", name = "itu", version.ref = "itu" }

stream-webrtc = { group = "io.getstream", name = "stream-video-webrtc-android", version.ref = "streamWebRTC" }
stream-webrtc = { group = "io.getstream", name = "stream-video-webrtc-android-repackaged", version.ref = "streamWebRTC" }
Copy link
Contributor

@aleksandar-apostolov aleksandar-apostolov Feb 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dependency points to stream-video-webrtc-android-repackaged on Maven, but there's also a libs/libwebrtc_repackaged.aar binary committed to git. Shall we remove the AAR?

stream-result = { group = "io.getstream", name = "stream-result", version.ref = "streamResult" }
stream-result-call = { group = "io.getstream", name = "stream-result-call", version.ref = "streamResult" }
stream-renderscript = { group = "io.getstream", name = "stream-video-renderscript-android", version.ref = "streamRenderscript" }
Expand Down
2 changes: 1 addition & 1 deletion scripts/repackage/utils/repackage_video_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def repackage_and_install_video_sdk(project_root: str, repackaged_webrtc_version
print(f"> VideoSDK: Repackage Started")
replace_string_in_directory(
directory_path=project_root,
search_string="org.webrtc",
search_string="io.getstream.webrtc",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both repackage scripts now replace io.getstream.webrtc with io.getstream.webrtc — same string. Are these scripts still needed, or can they be removed now that the repackaging is handled by the pre-built artifact?

replace_string="io.getstream.webrtc"
)
print(f"> VideoSDK: Repackage Completed")
Expand Down
2 changes: 1 addition & 1 deletion scripts/repackage/utils/repackage_webrtc_android.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def repackage_and_install_webrtc_android(path: str) -> str:
print("> WebRTC-Android: Repackage Started")
replace_string_in_directory(
directory_path=path,
search_string="org.webrtc",
search_string="io.getstream.webrtc",
replace_string="io.getstream.webrtc"
)
print("> WebRTC-Android: Repackage Completed")
Expand Down
196 changes: 98 additions & 98 deletions stream-video-android-core/api/stream-video-android-core.api

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion stream-video-android-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ baselineProfile {
include("io.getstream.video.android.datastore.**")
include("io.getstream.video.android.model.**")
include("io.getstream.android.video.generated.**")
include("org.webrtc.**")
include("io.getstream.webrtc.**")
}
}

Expand Down
6 changes: 3 additions & 3 deletions stream-video-android-core/consumer-proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
-keep class io.getstream.android.push.delegate.AndroidPushDelegateProvider { *; }
-keep class io.getstream.android.push.permissions.PushPermissionsInitializer { *; }

# defines consumer proguard rules for org.webrt
-keep class org.webrtc.** { *; }
# Consumer ProGuard rules for io.getstream.webrtc (repackaged WebRTC)
-keep class io.getstream.webrtc.** { *; }
# Keep the jni_zero library (required by modern WebRTC)
-keep class org.jni_zero.** { *; }
-keep class org.jni_zero.** { *; }
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,19 @@ import io.getstream.log.taggedLogger
import io.getstream.video.android.core.api.SignalServerService
import io.getstream.video.android.core.call.video.FilterVideoProcessor
import io.getstream.video.android.core.utils.buildAudioConstraints
import io.getstream.webrtc.DefaultVideoDecoderFactory
import io.getstream.webrtc.DefaultVideoEncoderFactory
import io.getstream.webrtc.MediaStreamTrack
import io.getstream.webrtc.PeerConnection
import io.getstream.webrtc.RTCStats
import io.getstream.webrtc.VideoCodecInfo
import kotlinx.coroutines.delay
import kotlinx.coroutines.test.runTest
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.junit.Test
import org.webrtc.DefaultVideoDecoderFactory
import org.webrtc.DefaultVideoEncoderFactory
import org.webrtc.MediaStreamTrack
import org.webrtc.PeerConnection
import org.webrtc.RTCStats
import org.webrtc.VideoCodecInfo
import retrofit2.Retrofit
import retrofit2.converter.wire.WireConverterFactory
import stream.video.sfu.signal.UpdateMuteStatesRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ package io.getstream.video.android.core
import app.cash.turbine.testIn
import com.google.common.truth.Truth.assertThat
import io.getstream.log.taggedLogger
import io.getstream.webrtc.PeerConnection
import kotlinx.coroutines.launch
import kotlinx.coroutines.test.runTest
import org.junit.Ignore
import org.junit.Test
import org.webrtc.PeerConnection
import java.util.UUID

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,12 @@ import io.getstream.video.android.core.utils.safeCall
import io.getstream.video.android.core.utils.safeCallWithDefault
import io.getstream.video.android.core.utils.toQueriedMembers
import io.getstream.video.android.model.User
import io.getstream.webrtc.EglBase
import io.getstream.webrtc.PeerConnection
import io.getstream.webrtc.RendererCommon
import io.getstream.webrtc.VideoSink
import io.getstream.webrtc.android.ui.VideoTextureViewRenderer
import io.getstream.webrtc.audio.JavaAudioDeviceModule.AudioSamples
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.SupervisorJob
Expand All @@ -111,11 +116,6 @@ import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
import org.threeten.bp.OffsetDateTime
import org.webrtc.EglBase
import org.webrtc.PeerConnection
import org.webrtc.RendererCommon
import org.webrtc.VideoSink
import org.webrtc.audio.JavaAudioDeviceModule.AudioSamples
import stream.video.sfu.event.ReconnectDetails
import stream.video.sfu.models.ClientCapability
import stream.video.sfu.models.TrackType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package io.getstream.video.android.core

import io.getstream.webrtc.PeerConnection
import kotlinx.coroutines.CoroutineScope
import org.webrtc.PeerConnection

/**
* Monitors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ package io.getstream.video.android.core
import android.os.Build
import io.getstream.log.taggedLogger
import io.getstream.video.android.core.call.stats.model.RtcStatsReport
import io.getstream.webrtc.CameraEnumerationAndroid
import io.getstream.webrtc.RTCStats
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.stateIn
import org.webrtc.CameraEnumerationAndroid
import org.webrtc.RTCStats
import stream.video.sfu.models.TrackType

data class MediaStatsInfo(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import android.util.Log
import io.getstream.video.android.core.call.stats.model.RtcStatsReport
import io.getstream.video.android.core.internal.InternalStreamVideoApi
import io.getstream.video.android.core.model.StreamPeerType
import io.getstream.webrtc.RTCStats
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import org.webrtc.RTCStats

@InternalStreamVideoApi
data class CallStatsReport(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,25 +54,25 @@ import io.getstream.video.android.core.screenshare.StreamScreenShareService
import io.getstream.video.android.core.utils.buildAudioConstraints
import io.getstream.video.android.core.utils.mapState
import io.getstream.video.android.core.utils.safeCall
import io.getstream.webrtc.AudioSource
import io.getstream.webrtc.AudioTrack
import io.getstream.webrtc.Camera2Capturer
import io.getstream.webrtc.Camera2Enumerator
import io.getstream.webrtc.CameraEnumerationAndroid
import io.getstream.webrtc.CameraVideoCapturer
import io.getstream.webrtc.EglBase
import io.getstream.webrtc.MediaStreamTrack
import io.getstream.webrtc.ScreenCapturerAndroid
import io.getstream.webrtc.SurfaceTextureHelper
import io.getstream.webrtc.VideoSource
import io.getstream.webrtc.VideoTrack
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
import org.webrtc.AudioSource
import org.webrtc.AudioTrack
import org.webrtc.Camera2Capturer
import org.webrtc.Camera2Enumerator
import org.webrtc.CameraEnumerationAndroid
import org.webrtc.CameraVideoCapturer
import org.webrtc.EglBase
import org.webrtc.MediaStreamTrack
import org.webrtc.ScreenCapturerAndroid
import org.webrtc.SurfaceTextureHelper
import org.webrtc.VideoSource
import org.webrtc.VideoTrack
import stream.video.sfu.models.AudioBitrateProfile
import stream.video.sfu.models.VideoDimension
import java.nio.ByteBuffer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ import io.getstream.video.android.model.ApiKey
import io.getstream.video.android.model.User
import io.getstream.video.android.model.UserToken
import io.getstream.video.android.model.UserType
import io.getstream.webrtc.ManagedAudioProcessingFactory
import kotlinx.coroutines.launch
import org.webrtc.ManagedAudioProcessingFactory
import java.net.ConnectException

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ import io.getstream.video.android.core.utils.toQueriedMembers
import io.getstream.video.android.model.ApiKey
import io.getstream.video.android.model.Device
import io.getstream.video.android.model.User
import io.getstream.webrtc.ManagedAudioProcessingFactory
import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Deferred
Expand All @@ -144,7 +145,6 @@ import kotlinx.serialization.json.Json
import okhttp3.Callback
import okhttp3.Request
import okhttp3.Response
import org.webrtc.ManagedAudioProcessingFactory
import retrofit2.HttpException
import java.util.*
import kotlin.coroutines.Continuation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,11 @@ import io.getstream.video.android.core.utils.defaultConstraints
import io.getstream.video.android.core.utils.safeCall
import io.getstream.video.android.core.utils.safeCallWithDefault
import io.getstream.video.android.core.utils.stringify
import io.getstream.webrtc.MediaStreamTrack
import io.getstream.webrtc.PeerConnection
import io.getstream.webrtc.RTCStatsReport
import io.getstream.webrtc.RtpTransceiver.RtpTransceiverDirection
import io.getstream.webrtc.SessionDescription
import kotlinx.coroutines.CompletableJob
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -126,11 +131,6 @@ import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import okio.IOException
import org.json.JSONArray
import org.webrtc.MediaStreamTrack
import org.webrtc.PeerConnection
import org.webrtc.RTCStatsReport
import org.webrtc.RtpTransceiver.RtpTransceiverDirection
import org.webrtc.SessionDescription
import retrofit2.HttpException
import stream.video.sfu.event.JoinRequest
import stream.video.sfu.event.LeaveCallRequest
Expand Down Expand Up @@ -463,7 +463,7 @@ public class RtcSession internal constructor(
TrackType.TRACK_TYPE_AUDIO,
AudioTrack(
streamId = streamId,
audio = track as org.webrtc.AudioTrack,
audio = track as io.getstream.webrtc.AudioTrack,
),
)
}
Expand Down Expand Up @@ -843,7 +843,7 @@ public class RtcSession internal constructor(
TrackType.TRACK_TYPE_VIDEO,
VideoTrack(
streamId = streamId,
video = track as org.webrtc.VideoTrack,
video = track as io.getstream.webrtc.VideoTrack,
),
)
} else {
Expand Down Expand Up @@ -886,7 +886,7 @@ public class RtcSession internal constructor(
TrackType.TRACK_TYPE_SCREEN_SHARE,
VideoTrack(
streamId = streamId,
video = track as org.webrtc.VideoTrack,
video = track as io.getstream.webrtc.VideoTrack,
),
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,19 @@ import io.getstream.video.android.core.utils.defaultConstraints
import io.getstream.video.android.core.utils.iceRestartConstraints
import io.getstream.video.android.core.utils.safeCall
import io.getstream.video.android.core.utils.safeCallWithDefault
import io.getstream.webrtc.CameraEnumerationAndroid.CaptureFormat
import io.getstream.webrtc.MediaConstraints
import io.getstream.webrtc.MediaStream
import io.getstream.webrtc.MediaStreamTrack
import io.getstream.webrtc.PeerConnection
import io.getstream.webrtc.RtpParameters
import io.getstream.webrtc.RtpTransceiver
import io.getstream.webrtc.RtpTransceiver.RtpTransceiverDirection
import io.getstream.webrtc.RtpTransceiver.RtpTransceiverInit
import io.getstream.webrtc.SessionDescription
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.webrtc.CameraEnumerationAndroid.CaptureFormat
import org.webrtc.MediaConstraints
import org.webrtc.MediaStream
import org.webrtc.MediaStreamTrack
import org.webrtc.PeerConnection
import org.webrtc.RtpParameters
import org.webrtc.RtpTransceiver
import org.webrtc.RtpTransceiver.RtpTransceiverDirection
import org.webrtc.RtpTransceiver.RtpTransceiverInit
import org.webrtc.SessionDescription
import stream.video.sfu.event.VideoLayerSetting
import stream.video.sfu.event.VideoSender
import stream.video.sfu.models.ErrorCode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,25 @@ import io.getstream.video.android.core.trace.Tracer
import io.getstream.video.android.core.utils.defaultConstraints
import io.getstream.video.android.core.utils.safeCall
import io.getstream.video.android.core.utils.stringify
import io.getstream.webrtc.CandidatePairChangeEvent
import io.getstream.webrtc.DataChannel
import io.getstream.webrtc.IceCandidateErrorEvent
import io.getstream.webrtc.MediaConstraints
import io.getstream.webrtc.MediaStream
import io.getstream.webrtc.MediaStreamTrack
import io.getstream.webrtc.PeerConnection
import io.getstream.webrtc.RtpParameters
import io.getstream.webrtc.RtpReceiver
import io.getstream.webrtc.RtpTransceiver
import io.getstream.webrtc.RtpTransceiver.RtpTransceiverInit
import io.getstream.webrtc.SessionDescription
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import org.webrtc.CandidatePairChangeEvent
import org.webrtc.DataChannel
import org.webrtc.IceCandidateErrorEvent
import org.webrtc.MediaConstraints
import org.webrtc.MediaStream
import org.webrtc.MediaStreamTrack
import org.webrtc.PeerConnection
import org.webrtc.RtpParameters
import org.webrtc.RtpReceiver
import org.webrtc.RtpTransceiver
import org.webrtc.RtpTransceiver.RtpTransceiverInit
import org.webrtc.SessionDescription
import stream.video.sfu.models.TrackType
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
import org.webrtc.IceCandidate as RtcIceCandidate
import io.getstream.webrtc.IceCandidate as RtcIceCandidate

/**
* Wrapper around the WebRTC connection that contains tracks.
Expand Down Expand Up @@ -602,7 +602,7 @@ open class StreamPeerConnection(
logger.i { "[onIceGatheringChange] #sfu; #$typeTag; newState: $newState" }
}

override fun onIceCandidatesRemoved(iceCandidates: Array<out org.webrtc.IceCandidate>?) {
override fun onIceCandidatesRemoved(iceCandidates: Array<out io.getstream.webrtc.IceCandidate>?) {
logger.i { "[onIceCandidatesRemoved] #sfu; #$typeTag; iceCandidates: $iceCandidates" }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,24 @@ import io.getstream.video.android.core.model.toPeerType
import io.getstream.video.android.core.trace.PeerConnectionTraceKey
import io.getstream.video.android.core.trace.Tracer
import io.getstream.video.android.core.utils.safeCallWithDefault
import io.getstream.webrtc.AudioSource
import io.getstream.webrtc.AudioTrack
import io.getstream.webrtc.EglBase
import io.getstream.webrtc.Logging
import io.getstream.webrtc.ManagedAudioProcessingFactory
import io.getstream.webrtc.MediaConstraints
import io.getstream.webrtc.MediaStream
import io.getstream.webrtc.MediaStreamTrack
import io.getstream.webrtc.PeerConnection
import io.getstream.webrtc.PeerConnectionFactory
import io.getstream.webrtc.ResolutionAdjustment
import io.getstream.webrtc.RtpCapabilities
import io.getstream.webrtc.SimulcastAlignedVideoEncoderFactory
import io.getstream.webrtc.VideoSource
import io.getstream.webrtc.VideoTrack
import io.getstream.webrtc.audio.JavaAudioDeviceModule
import io.getstream.webrtc.audio.JavaAudioDeviceModule.AudioSamples
import kotlinx.coroutines.CoroutineScope
import org.webrtc.AudioSource
import org.webrtc.AudioTrack
import org.webrtc.EglBase
import org.webrtc.Logging
import org.webrtc.ManagedAudioProcessingFactory
import org.webrtc.MediaConstraints
import org.webrtc.MediaStream
import org.webrtc.MediaStreamTrack
import org.webrtc.PeerConnection
import org.webrtc.PeerConnectionFactory
import org.webrtc.ResolutionAdjustment
import org.webrtc.RtpCapabilities
import org.webrtc.SimulcastAlignedVideoEncoderFactory
import org.webrtc.VideoSource
import org.webrtc.VideoTrack
import org.webrtc.audio.JavaAudioDeviceModule
import org.webrtc.audio.JavaAudioDeviceModule.AudioSamples
import stream.video.sfu.models.PublishOption
import java.nio.ByteBuffer
import java.nio.ByteOrder
Expand Down
Loading
Loading