diff --git a/Sora/Configuration.swift b/Sora/Configuration.swift index 72e8c426..6bbd6ea2 100644 --- a/Sora/Configuration.swift +++ b/Sora/Configuration.swift @@ -142,6 +142,9 @@ public struct Configuration { /// ロールが `.sendrecv` または `.recvonly` のときのみ有効です。 public var simulcastRid: SimulcastRid? + /// サイマルキャストマルチコーデックの可否。`true` であればサイマルキャストマルチコーデックを有効にします。 + public var simulcastMulticodecEnabled: Bool? = nil + /// スポットライトの可否 /// 詳しくは Sora のスポットライト機能を参照してください。 public var spotlightEnabled: Spotlight = .disabled diff --git a/Sora/PeerChannel.swift b/Sora/PeerChannel.swift index 1dc471fc..763f4eb5 100644 --- a/Sora/PeerChannel.swift +++ b/Sora/PeerChannel.swift @@ -331,6 +331,7 @@ class PeerChannel: NSObject, RTCPeerConnectionDelegate { spotlightUnfocusRid: configuration.spotlightUnfocusRid, simulcastEnabled: simulcast, simulcastRid: configuration.simulcastRid, + simulcastMulticodecEnabled: configuration.simulcastMulticodecEnabled, soraClient: soraClient, webRTCVersion: webRTCVersion, environment: DeviceInfo.current.description, diff --git a/Sora/Signaling.swift b/Sora/Signaling.swift index 674c8775..da63f1ac 100644 --- a/Sora/Signaling.swift +++ b/Sora/Signaling.swift @@ -308,6 +308,9 @@ public struct SignalingConnect { /// サイマルキャストでの映像の種類 public var simulcastRid: SimulcastRid? + /// サイマルキャストマルチコーデックの可否 + public var simulcastMulticodecEnabled: Bool? + /// :nodoc: public var soraClient: String? @@ -770,6 +773,7 @@ extension SignalingConnect: Codable { case spotlight_unfocus_rid case simulcast case simulcast_rid + case simulcast_multicodec case video case audio case sora_client @@ -874,6 +878,8 @@ extension SignalingConnect: Codable { } } + try container.encodeIfPresent(simulcastMulticodecEnabled, forKey: .simulcast_multicodec) + switch spotlightEnabled { case .enabled: try container.encode(true, forKey: .spotlight)