Skip to content

Commit e7c476f

Browse files
authored
Merge pull request #215 from shiguredo/feature/forwarding-filters
forwardig_filters に対応する
2 parents 48c964f + 815736d commit e7c476f

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

CHANGES.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
- libwebrtc の対象バージョンに追従した
2121
- <https://webrtc.googlesource.com/src/+/9b81d2c954128831c62d8a0657c7f955b3c02d32>
2222
- @miosakuma
23+
- [ADD] `ForwardingFilter` に name と priority を追加する
24+
- @zztkm
25+
- [ADD] シグナリング connect 時にリスト形式の転送フィルターを設定するための項目を追加する
26+
- `Configuration`, `SignalingConnect` に forwardingFilters を追加する
27+
- @zztkm
2328

2429
### misc
2530

Sora/Configuration.swift

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,13 @@ public struct Configuration {
182182
public var proxy: Proxy?
183183

184184
/// 転送フィルターの設定
185+
///
186+
/// この項目は 2025 年 12 月リリース予定の Sora にて廃止されます
185187
public var forwardingFilter: ForwardingFilter?
186188

189+
/// リスト形式の転送フィルターの設定
190+
public var forwardingFilters: [ForwardingFilter]?
191+
187192
/// VP9 向け映像コーデックパラメーター
188193
public var videoVp9Params: Encodable?
189194

@@ -323,6 +328,12 @@ public enum ForwardingFilterAction: String, Encodable {
323328
転送フィルターに関する設定です。
324329
*/
325330
public struct ForwardingFilter {
331+
/// name
332+
public var name: String?
333+
334+
/// priority
335+
public var priority: Int?
336+
326337
/// action
327338
public var action: ForwardingFilterAction?
328339

@@ -343,7 +354,9 @@ public struct ForwardingFilter {
343354
- parameter version: version (オプショナル)
344355
- parameter metadata: metadata (オプショナル)
345356
*/
346-
public init(action: ForwardingFilterAction? = nil, rules: [[ForwardingFilterRule]], version: String? = nil, metadata: Encodable? = nil) {
357+
public init(name: String? = nil, priority: Int? = nil, action: ForwardingFilterAction? = nil, rules: [[ForwardingFilterRule]], version: String? = nil, metadata: Encodable? = nil) {
358+
self.name = name
359+
self.priority = priority
347360
self.action = action
348361
self.rules = rules
349362
self.version = version
@@ -353,6 +366,8 @@ public struct ForwardingFilter {
353366

354367
extension ForwardingFilter: Encodable {
355368
enum CodingKeys: String, CodingKey {
369+
case name
370+
case priority
356371
case action
357372
case rules
358373
case version
@@ -361,6 +376,8 @@ extension ForwardingFilter: Encodable {
361376

362377
public func encode(to encoder: Encoder) throws {
363378
var container = encoder.container(keyedBy: CodingKeys.self)
379+
try container.encodeIfPresent(name, forKey: .name)
380+
try container.encodeIfPresent(priority, forKey: .priority)
364381
try container.encodeIfPresent(action, forKey: .action)
365382
try container.encode(rules, forKey: .rules)
366383
try container.encodeIfPresent(version, forKey: .version)

Sora/PeerChannel.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@ class PeerChannel: NSObject, RTCPeerConnectionDelegate {
339339
audioStreamingLanguageCode: configuration.audioStreamingLanguageCode,
340340
redirect: redirect,
341341
forwardingFilter: configuration.forwardingFilter,
342+
forwardingFilters: configuration.forwardingFilters,
342343
vp9Params: configuration.videoVp9Params,
343344
av1Params: configuration.videoAv1Params,
344345
h264Params: configuration.videoH264Params
@@ -641,7 +642,7 @@ class PeerChannel: NSObject, RTCPeerConnectionDelegate {
641642

642643
private func updateSenderOfferEncodings() {
643644
guard let nativeChannel else {
644-
Logger.debug(type: .peerChannel, message: "nativeChannel shoud not be nil")
645+
Logger.debug(type: .peerChannel, message: "nativeChannel should not be nil")
645646
return
646647
}
647648

@@ -657,7 +658,7 @@ class PeerChannel: NSObject, RTCPeerConnectionDelegate {
657658

658659
private func createAndSendAnswer(offer: SignalingOffer) {
659660
guard let nativeChannel else {
660-
Logger.debug(type: .peerChannel, message: "nativeChannel shoud not be nil")
661+
Logger.debug(type: .peerChannel, message: "nativeChannel should not be nil")
661662
return
662663
}
663664

Sora/Signaling.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,13 @@ public struct SignalingConnect {
330330
public var redirect: Bool?
331331

332332
/// 転送フィルターの設定
333+
///
334+
/// この項目は 2025 年 12 月リリース予定の Sora にて廃止されます
333335
public var forwardingFilter: ForwardingFilter?
334336

337+
/// リスト形式の転送フィルターの設定
338+
public var forwardingFilters: [ForwardingFilter]?
339+
335340
/// VP9 向け映像コーデックパラメーター
336341
public var vp9Params: Encodable?
337342

@@ -784,6 +789,7 @@ extension SignalingConnect: Codable {
784789
case audio_streaming_language_code
785790
case redirect
786791
case forwarding_filter
792+
case forwarding_filters
787793
}
788794

789795
enum VideoCodingKeys: String, CodingKey {
@@ -834,6 +840,7 @@ extension SignalingConnect: Codable {
834840
try container.encodeIfPresent(audioStreamingLanguageCode, forKey: .audio_streaming_language_code)
835841
try container.encodeIfPresent(redirect, forKey: .redirect)
836842
try container.encodeIfPresent(forwardingFilter, forKey: .forwarding_filter)
843+
try container.encodeIfPresent(forwardingFilters, forKey: .forwarding_filters)
837844

838845
if videoEnabled {
839846
if videoCodec != .default || videoBitRate != nil || vp9Params != nil || av1Params != nil || h264Params != nil {

0 commit comments

Comments
 (0)