Skip to content

Commit d16098b

Browse files
authored
degradationPreference only for screen share (#117)
1 parent d7a68b3 commit d16098b

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Sources/LiveKit/Participant/LocalParticipant.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,15 @@ public class LocalParticipant: Participant {
135135
track.publishOptions = publishOptions
136136
track.transceiver = transceiver
137137

138-
// disable degradationPreference
139-
let params = transceiver.sender.parameters
140-
params.degradationPreference = NSNumber(value: RTCDegradationPreference.disabled.rawValue)
141-
// changing params directly doesn't work so we need to update params
142-
// and set it back to sender.parameters
143-
transceiver.sender.parameters = params
138+
// prefer to maintainResolution for screen share
139+
if case .screenShareVideo = track.source {
140+
self.log("[publish] set degradationPreference to .maintainResolution")
141+
let params = transceiver.sender.parameters
142+
params.degradationPreference = NSNumber(value: RTCDegradationPreference.maintainResolution.rawValue)
143+
// changing params directly doesn't work so we need to update params
144+
// and set it back to sender.parameters
145+
transceiver.sender.parameters = params
146+
}
144147

145148
self.room.engine.publisherShouldNegotiate()
146149

0 commit comments

Comments
 (0)