Describe the bug
On iOS clients subscribed quality updates are not ignored when dynacast is set to false which causes updates to outgoing video as a reaction to these events.
This feature is handled correctly according to spec in both Android and JavaScript LiveKit clients by ignoring the updates and not performing any changes to outbound video.
SDK Version
2.0.7 added using SPM
iOS/macOS Version
iOS 17.5.1, iOS 16.3
Steps to Reproduce
run iOS LiveKitExample, disable dynacast and connect to any room with video
run the web client sample client-sdk-js and connect to the same room
from web client change the PreferredQuality setting and notice that this causes updates in the iOS client (see attached logs)
Expected behavior
I expected subscribe quality updates to be ignored when dynacast is disabled. This is the behaviour on both Android and JavaScript clients, but on iOS this flag RoomOptions.dynacast is ignored in the handler for subscribed quality changes.
See correct behaviour on JavaScript and Android:
Describe the bug On iOS clients subscribed quality updates are not ignored when dynacast is set to false which causes updates to outgoing video as a reaction to these events. This feature is handled correctly according to spec in both Android and JavaScript LiveKit clients by ignoring the updates and not performing any changes to outbound video.
SDK Version 2.0.7 added using SPM
iOS/macOS Version iOS 17.5.1, iOS 16.3
Steps to Reproduce
PreferredQuality
setting and notice that this causes updates in the iOS client (see attached logs)Expected behavior I expected subscribe quality updates to be ignored when dynacast is disabled. This is the behaviour on both Android and JavaScript clients, but on iOS this flag
RoomOptions.dynacast
is ignored in the handler for subscribed quality changes. See correct behaviour on JavaScript and Android:Screenshots no screenshots
Logs Debug LiveKitSDK : [LiveKit] Room.signalClient(_:didUpdateSubscribedCodecs:qualities:forTrackSid:) [Publish/Backup] Qualities: SubscribedQuality(quality: low, enabled: true), SubscribedQuality(quality: medium, enabled: false), SubscribedQuality(quality: high, enabled: false), Codecs: SubscribedCodec(codec: h264, qualities: SubscribedQuality(quality: low, enabled: true), SubscribedQuality(quality: medium, enabled: false), SubscribedQuality(quality: high, enabled: false)