diff --git a/WebRTCiOSSDK/api/AntMediaClient.swift b/WebRTCiOSSDK/api/AntMediaClient.swift
index c72c934..77e606a 100644
--- a/WebRTCiOSSDK/api/AntMediaClient.swift
+++ b/WebRTCiOSSDK/api/AntMediaClient.swift
@@ -508,10 +508,10 @@ open class AntMediaClient: NSObject, AntMediaClientProtocol {
         if (self.webRTCClientMap[id] == nil) {
             AntMediaClient.printf("Has wsClient? (start) : \(String(describing: self.webRTCClientMap[id]))")
             
-            self.webRTCClientMap[id] = WebRTCClient.init(remoteVideoView: remoteView, localVideoView: localView, delegate: self, mode: mode != .unspecified ? mode : self.mode , cameraPosition: self.cameraPosition, targetWidth: self.targetWidth, targetHeight: self.targetHeight, videoEnabled: self.videoEnable, enableDataChannel: self.enableDataChannel, useExternalCameraSource: self.useExternalCameraSource, externalAudio: self.externalAudioEnabled, externalVideoCapture: self.externalVideoCapture, cameraSourceFPS: self.cameraSourceFPS, streamId:id);
+            self.webRTCClientMap[id] = WebRTCClient.init(remoteVideoView: remoteView, localVideoView: localView, delegate: self, mode: mode != .unspecified ? mode : self.mode , cameraPosition: self.cameraPosition, targetWidth: self.targetWidth, targetHeight: self.targetHeight, videoEnabled: self.videoEnable, enableDataChannel: self.enableDataChannel, useExternalCameraSource: self.useExternalCameraSource, externalAudio: self.externalAudioEnabled, externalVideoCapture: self.externalVideoCapture, cameraSourceFPS: self.cameraSourceFPS, streamId:id,
+                                                         degradationPreference: self.degradationPreference);
             
             self.webRTCClientMap[id]?.setToken(token)
-            self.webRTCClientMap[id]?.setDegradationPreference(degradationPreference: self.degradationPreference);
             
             AntMediaClient.rtcAudioSession.add(self);
         }
diff --git a/WebRTCiOSSDK/api/webrtc/WebRTCClient.swift b/WebRTCiOSSDK/api/webrtc/WebRTCClient.swift
index 689783a..a866a1c 100644
--- a/WebRTCiOSSDK/api/webrtc/WebRTCClient.swift
+++ b/WebRTCiOSSDK/api/webrtc/WebRTCClient.swift
@@ -94,7 +94,8 @@ class WebRTCClient: NSObject {
                   mode: mode, cameraPosition: cameraPosition, targetWidth: targetWidth, targetHeight: targetHeight, videoEnabled: true, enableDataChannel:false, useExternalCameraSource: false, streamId: streamId)
     }
     
-    public convenience init(remoteVideoView: RTCVideoRenderer?, localVideoView: RTCVideoRenderer?, delegate: WebRTCClientDelegate, mode: AntMediaClientMode, cameraPosition: AVCaptureDevice.Position, targetWidth: Int, targetHeight: Int, videoEnabled: Bool, enableDataChannel: Bool, useExternalCameraSource: Bool, externalAudio: Bool = false, externalVideoCapture: Bool = false, cameraSourceFPS: Int = 30, streamId: String) {
+    public convenience init(remoteVideoView: RTCVideoRenderer?, localVideoView: RTCVideoRenderer?, delegate: WebRTCClientDelegate, mode: AntMediaClientMode, cameraPosition: AVCaptureDevice.Position, targetWidth: Int, targetHeight: Int, videoEnabled: Bool, enableDataChannel: Bool, useExternalCameraSource: Bool, externalAudio: Bool = false, externalVideoCapture: Bool = false, cameraSourceFPS: Int = 30, streamId: String,
+                            degradationPreference: RTCDegradationPreference = RTCDegradationPreference.maintainResolution) {
         self.init(remoteVideoView: remoteVideoView, localVideoView: localVideoView, delegate: delegate, externalAudio: externalAudio)
         self.cameraPosition = cameraPosition
         self.targetWidth = targetWidth
@@ -105,6 +106,7 @@ class WebRTCClient: NSObject {
         self.externalVideoCapture = externalVideoCapture;
         self.cameraSourceFPS = cameraSourceFPS;
         self.streamId = streamId;
+        self.degradationPreference = degradationPreference
         
         if (mode != .play) {
             self.addLocalMediaStream()