Skip to content

Commit 2d0bf37

Browse files
committed
[Enhancement]Publish media based on capablities
1 parent 53c9ce2 commit 2d0bf37

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

Sources/StreamVideo/WebRTC/v2/PeerConnection/MediaAdapters/LocalMediaAdapters/LocalAudioMediaAdapter.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ final class LocalAudioMediaAdapter: LocalMediaAdapting, @unchecked Sendable {
5050
let subject: PassthroughSubject<TrackEvent, Never>
5151

5252
private var hasRegisteredPrimaryTrack: Bool = false
53+
private var ownCapabilities: [OwnCapability] = []
5354

5455
/// Initializes a new instance of `LocalAudioMediaAdapter`.
5556
///
@@ -111,6 +112,7 @@ final class LocalAudioMediaAdapter: LocalMediaAdapting, @unchecked Sendable {
111112
with settings: CallSettings,
112113
ownCapabilities: [OwnCapability]
113114
) async throws {
115+
self.ownCapabilities = ownCapabilities
114116
guard ownCapabilities.contains(.sendAudio), settings.audioOn else {
115117
return
116118
}
@@ -196,7 +198,7 @@ final class LocalAudioMediaAdapter: LocalMediaAdapting, @unchecked Sendable {
196198
_ settings: CallSettings
197199
) async throws {
198200
processingQueue.async { [weak self] in
199-
guard let self else { return }
201+
guard let self, ownCapabilities.contains(.sendAudio) else { return }
200202
registerPrimaryTrackIfPossible(settings)
201203

202204
guard lastUpdatedCallSettings != settings.audio else { return }

Sources/StreamVideo/WebRTC/v2/PeerConnection/MediaAdapters/LocalMediaAdapters/LocalVideoMediaAdapter.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ final class LocalVideoMediaAdapter: LocalMediaAdapting, @unchecked Sendable {
6868
private let processingQueue = SerialActorQueue()
6969
private let backgroundMuteAdapter: ApplicationLifecycleVideoMuteAdapter
7070
private var hasRegisteredPrimaryTrack: Bool = false
71+
private var ownCapabilities: [OwnCapability] = []
7172

7273
/// Initializes a new instance of the `LocalVideoMediaAdapter`.
7374
///
@@ -150,6 +151,7 @@ final class LocalVideoMediaAdapter: LocalMediaAdapting, @unchecked Sendable {
150151
ownCapabilities: [OwnCapability]
151152
) async throws {
152153
callSettings = settings
154+
self.ownCapabilities = ownCapabilities
153155

154156
guard ownCapabilities.contains(.sendVideo), settings.videoOn else {
155157
try await videoCaptureSessionProvider.activeSession?.capturer.stopCapture()
@@ -173,7 +175,7 @@ final class LocalVideoMediaAdapter: LocalMediaAdapting, @unchecked Sendable {
173175
_ settings: CallSettings
174176
) async throws {
175177
processingQueue.async { [weak self] in
176-
guard let self else { return }
178+
guard let self, ownCapabilities.contains(.sendVideo) else { return }
177179
callSettings = settings
178180
registerPrimaryTrackIfPossible(settings)
179181

0 commit comments

Comments
 (0)