- CHANGE
- 下位互換のない変更
- UPDATE
- 下位互換がある変更
- ADD
- 下位互換がある追加
- FIX
- バグ修正
- [UPDATE] WebRTC m129.6668.1.0 に上げる
- @miosakuma
- [UPDATE] システム条件の iOS を 14.0 に上げる
- IPHONEOS_DEPLOYMENT_TARGET を 14.0 に上げる
- SwiftPM の platforms の設定を v14 に上げる
- CocoaPods の platform の設定を 14.0 に上げる
- libwebrtc の対象バージョンに追従した
- @miosakuma
- [UPDATE] システム条件を変更する
- iOS 14 以降
- Xcode 16.0
- macOS の条件を外す
- Xcode とほぼ同時更新なので一旦不要と判断
- @miosakuma
リリース日: 2024-09-06
- [CHANGE]
MediaChannelConfiguration
を非推奨にする- SDK 内部では利用していないため
- @zztkm
- [UPDATE] WebRTC m127.6533.1.1 に上げる
- @miosakuma
- @zztkm
- [UPDATE]
SignalingOffer
にsimulcast
を追加する- @zztkm
- [FIX] SignalingConnect の
metadata
,signaling_notify_metadata
が nil の場合に {} として送信されてしまう問題を修正する- @zztkm
- [FIX]
WrapperVideoEncoderFactory.shared.simulcastEnabled
の値を type: offer の際に設定される simulcast の値で上書きする- 認証ウェブフック成功時に払い出された type: offer の
simulcast
の値が反映されない不具合への対応 - @zztkm
- 認証ウェブフック成功時に払い出された type: offer の
- [FIX]
Configuration.spotlightEnabled
はサイマルキャストを有効化するための条件ではないのに、判定条件に加わっていた問題を修正するWrapperVideoEncoderFactory.shared.simulcastEnabled
の判定条件からConfiguration.spotlightEnabled
を削除する- https://github.com/shiguredo/sora-ios-sdk/commit/44f3b81fd81694f3f670e3de568afc2a6bab5f9f の修正漏れ
- @zztkm
- [FIX] URL 構造体が TURN URI に対応していないのに、URL に変換していたのを修正する
- 意図しないエスケープが発生しないようにした
- @zztkm
- [UPDATE] GitHub Actions の定期実行をやめる
- build.yml の起動イベントから schedule を削除
- @zztkm
- [UPDATE] GitHub Actions の Xcode のバージョンを 15.4 にあげる
- 合わせて iOS の SDK を iphoneos17.5 にあげる
- @miosakuma
- [UPDATE] CocoaPods のソースリポジトリを GitHub から CDN に変更する
- CocoaPods 1.8 からソースリポジトリのデフォルトが
https://cdn.cocoapods.org/
になった - https://blog.cocoapods.org/CocoaPods-1.8.0-beta/
- @zztkm
- CocoaPods 1.8 からソースリポジトリのデフォルトが
- [UPDATE] システム条件を変更する
- macOS 14.6.1 以降
- Xcode 15.4
- WebRTC SFU Sora 2024.1.0 以降
- @miosakuma
- [CHANGE] シグナリング
connect
メッセージのlibwebrtc
に含まれるバージョン文字列を Android と揃える- branch-heads を追加する
- () 内の libwebrtc バージョンについて最初の 1 文字を削る
- 送信される文字列は
Shiguredo-build M122 (M122.1.0 6b419a0)
から、Shiguredo-build M122 (122.6261.1.0 6b419a0)
に変更される
- [UPDATE] WebRTC m122.6261.1.0 に上げる
- @miosakuma
- [UPDATE] システム条件を変更する
- macOS 14.4.1 以降
- Xcode 15.3
- Swift 5.10
- @miosakuma
- [CHANGE] SignalingNotify の metadataList を削除する
- 2022.1.0 の Sora で metadata_list が廃止されたため
- SignalingNotify の data で値の取得が可能
- @miosakuma
- [CHANGE] VideoView のバックエンドを RTCEAGLVideoView から RTCMTLVideoView に変更する
- WebRTC のアップデートに伴い RTCEAGLVideoView が deprecated になったことに伴う修正
- @miosakuma
- [UPDATE] システム条件を変更する
- macOS 14.3.1 以降
- WebRTC SFU Sora 2023.2.0 以降
- Xcode 15.2
- Swift 5.9.2
- CocoaPods 1.15.2 以降
- @miosakuma
- [UPDATE] CameraVideoCapturer のログを出力する
- @enm10k
- [UPDATE] WebRTC 121.6167.4.0 に上げる
- @miosakuma
- [UPDATE] 解像度に qHD (960x540) を追加する
- @enm10k
- [UPDATE] CocoaPods を v1.15.2 に更新する
- @enm10k @miosakuma
- [UPDATE] ForwardingFilter に version と metadata を追加する
- @enm10k @miosakuma
- [ADD] VideoCodec に H265 を追加する
- @enm10k
- [ADD] WebRTCConfiguration に degradationPreference を追加する
- @enm10k
- [FIX] ForwardingFilter の action を未指定にできるようにする
- @miosakuma
- [FIX] SignalingNotify に項目を追加する
- sessionId
- kind
- destinationConnectionId
- sourceConnectionId
- recvConnectionId
- sendConnectionId
- streamId
- @miosakuma
- [FIX] AVCaptureDevice.Format の選択時にフレームレートを考慮するように修正する
- フレームレートに 60 を設定しても、 AVFrameRateRange が 1-30 の AVCaptureDevice.Format が選択されてしまうケースがあった
- 修正前は、カメラから同じ解像度の AVCaptureDevice.Format が複数取得された場合、最初に解像度が一致した AVCaptureDevice.Format を選択しており、フレームレートが考慮されていないという問題があった
- @enm10k
- [CHANGE]
@available(*, unavailable)
は廃止になるため削除する- Swift 5.9 以降
@available(*, unavailable)
が禁止された - Sora iOS SDK では廃止となったプロパティに対して
@available(*, unavailable)
を付与していたが、削除した - @torikizi
- Swift 5.9 以降
- [CHANGE]
@available(*, deprecated, ... )
としていた非推奨項目を削除する- 非推奨であった項目について削除に移行する
- 移行方法については https://sora-ios-sdk.shiguredo.jp/ の移行ドキュメントに記載されている
- @torikizi
- [CHANGE] 廃止された
onConnectHandler
をonConnect
に置き換える- すでに廃止済みの
onConnectHandler
が残っていたので、onConnect
に置き換えた PeerChannel.swift
とSignalingChannel.swift
以外はすでにonConnect
に置き換えていた- @torikizi
- すでに廃止済みの
- [UPDATE] WebRTC 116.5845.6.1 に上げる
- @miosakuma
- [FIX]
MediaChannel
のconnectionCount
,publisherCount
,subscriberCount
に値が設定されない不具合を修正する- Sora のシグナリングメッセージから channel_upstream_connections, channel_downstream_connections が廃止された契機で値が設定されなくなっていた
- Sora のシグナリングメッセージ、channel_sendrecv_connections, channel_sendonly_connections, channel_recvonly_connections, channel_connections を元に値を設定するよう修正
- @miosakuma
- [UPDATE] システム条件を変更する
- macOS 13.4.1 以降
- WebRTC SFU Sora 2023.1.0 以降
- Xcode 14.3.1
- Swift 5.8.1
- CocoaPods 1.12.1 以降
- @miosakuma
- [UPDATE] WebRTC 115.5790.7.0 に上げる
- @szktty @miosakuma
- [ADD] 転送フィルター機能を追加する
Configuration
にforwardingFilter
を追加する- @szktty
- [ADD] 映像コーデックパラメーターの設定を追加する
Configuration
にvideoVp9Params
,videoAv1Params
,videoH264Params
を追加する- @miosakuma
- [ADD] サイマルキャストを VP9 / AV1 に対応する
- @szktty
- [UPDATE] WebRTC 112.5615.1.0 に上げる
- @miosakuma
- [UPDATE] システム条件を変更する
- macOS 13.3 以降
- Xcode 14.3
- Swift 5.8
- WebRTC SFU Sora 2022.2.0 以降
- @miosakuma
- [UPDATE]
CameraSettings
のResolution
にuhd2160p
,uhd3024p
を追加する- @miosakuma
- [ADD]
Configuration
にaudioStreamingLanguageCode
を追加する- @miosakuma
- [FIX] m107.5304.4.1 の利用時、シグナリング時に EXEC_BAD_ACCESS が発生する事象を修正する
RTCPeerConnection.offer()
に渡すブロック内でRTCPeerConnection.close()
を呼んでいるのが原因だと思われるため、 async/await を使って offer() の終了を待ってから close() するRTCPeerConnection.offer()
の実行が非同期で行われるようになるが、NativePeerChannelFactory.createClientOfferSDP()
の用途では問題ない- @szktty
- [CHANGE] bitcode を無効にする
- WebRTC 105.5195.0.0 より bitcode が廃止になりました。bitcode を無効にしてビルドをする必要があります
- @miosakuma
- [CHANGE] 対応アーキテクチャから x86_64 を無効にする
- @miosakuma
- [UPDATE] WebRTC 105.5195.0.0 に上げる
- @miosakuma
- [UPDATE] システム条件を変更する
- macOS 12.6 以降
- Xcode 14.0
- Swift 5.7
- CocoaPods 1.11.3 以降
- @miosakuma
- [UPDATE] WebRTC 104.5112.8.0 に上げる
- @miosakuma
- [ADD] HTTP プロキシに対応する
- @enm10k
- [CHANGE] mid を必須にする
- この修正の結果、 type: offer に mid が含まれない場合は、エラーになります
- @enm10k
- [CHANGE]
Configuration.spotlightEnabled == .enabled
の際に、自動的にサイマルキャストを有効化しない- サイマルキャストを有効化する場合は明示的に
Configuration.simulcastEnabled == true
を設定してください - @enm10k
- サイマルキャストを有効化する場合は明示的に
- [UPDATE] システム条件を変更する
- macOS 12.3 以降
- WebRTC SFU Sora 2022.1.0 以降
- @miosakuma
- [UPDATE] WebRTC 103.5060.4.0 に上げる
- @miosakuma
- [ADD] Sora の bundle_id に対応する
Configuration.bundleId
を追加する- @enm10k
- [UPDATE] システム条件を変更する
- Xcode 13.4
- Swift 5.6.1
- @miosakuma
- [UPDATE] WebRTC 102.5005.7.6 に上げる
- @miosakuma
- [UPDATE] mid に対応する
- [UPDATE] App Store Connect に bitcode を有効にしてバイナリをアップロードするとエラーになる問題の暫定回避策として、 WebRTC 97.4692.4.0 に下げる
- @miosakuma
- [CHANGE] DataChannel 経由で受信したメッセージのうち label が signaling, push, notify のものは
MediaChannelHandlers.onReceiveSignaling
が呼ばれるように修正する- @enm10k
- [CHANGE]
MediaChannel.connectedUrl
を更新するタイミングを修正する- type: connect を送信するタイミングで
MediaChannel.connectedUrl
を更新していたが、 type: offer を受信したタイミングで値を更新するように修正 - @enm10k
- type: connect を送信するタイミングで
- [UPDATE] WebRTC 99.4844.1.0 に上げる
- @miosakuma
- [ADD] メッセージング機能に対応する
- @enm10k
- [ADD]
MediaChannel.contactUrl
を追加するMediaChannel.contactUrl
は、最初に type: connect メッセージを送信した Sora のシグナリング URL- @enm10k
- [FIX] Sora との接続確立後に WebSocket のエラーが発生した場合、 エラーが正しく伝搬されず、終了処理が実行されないため修正する
- 接続確立後に WebSocket のエラーが発生した場合、 Sora との接続を切断して終了処理を行うのが正しい処理です
- 詳細な仕様は https://sora-doc.shiguredo.jp/SORA_CLIENT に記載されています
- @enm10k
- [CHANGE] スポットライトレガシーを削除する
- @miosakuma
- [CHANGE] WebSocketChannel プロトコルを廃止する
Configuration.webSocketChannelType
を廃止するConfiguration.allowsURLSessionWebSocketChannel
を廃止するWebSocketChannelHandlers.onDisconnect
を廃止するWebSocketChannelHandlers.onPong
を廃止するWebSocketChannelHandlers.onSend
を廃止するMediaChannel.webSocketChannel
を廃止するWebSocketChannelHandlers
を廃止する- @enm10k
- [CHANGE] Starscream を削除して、 URLSessionWebSocketTask をデフォルトで使用する
- @enm10k
- [CHANGE] サポートする iOS のバージョンを 13 以上に変更する
- @enm10k
- [CHANGE]
MediaChannel.native
の型をRTCPeerConnection
からRTCPeerConnection?
に変更する- PeerChannel で force unwrapping している箇所を修正する際に、併せて修正した
- @enm10k
- [UPDATE] システム条件を変更する
- macOS 12.2 以降
- Xcode 13.2
- Swift 5.5.2
- @miosakuma
- [UPDATE] WebRTC 98.4758.0.0 に上げる
- @miosakuma
- [UPDATE] MediaStream から MediaChannel にアクセスできるようにする
- @enm10k
- [ADD] 複数シグナリング URL の指定に対応する
Configuration.url
を廃止してConfiguration.urlCandidates
を追加するMediaChannel.connectedUrl
を追加する- @enm10k
- [ADD] type: rediret に対応する
- @enm10k
- [FIX] CameraVideoCapturer で force unwrapping していた箇所を修正する
- @enm10k
- [FIX] VideoView に debugMode = true を設定した際にメモリー・リークが発生する問題を修正する
- @szktty @enm10k
- [FIX] RTCPeerConnectionState が .failed に遷移した際の切断処理中にクラッシュする問題を修正する
- BasicPeerChannelContext と PeerChannel の循環参照を防ぐために弱参照を利用していましたが、それが原因で BasicPeerChannelContext より先に PeerChannel が解放されるケースがあり、クラッシュの原因となっていました
- @enm10k
- [FIX] DataChannel クラスで利用しているデータ圧縮/復号処理にメモリー・リークがあったので修正する
- @enm10k
- [CHANGE] PeerChannel, SignalingChannel protocol を削除する
Configuration.peerChannelType
を廃止Configuration.signalingChannelType
を廃止Configuration.peerChannelHandlers
を廃止Configuration.signalingChannelHandlers
を廃止MediaChannel.native
を追加MediaChannel.webSocketChannel
を追加- @szktty @enm10k
- [UPDATE] システム条件を変更する
- macOS 12.0 以降
- Xcode 13.1
- Swift 5.5
- CocoaPods 1.11.2
- @miosakuma
- [UPDATE] WebRTC 95.4638.3.0 に上げる
- @miosakuma
- [ADD] DataChannel シグナリングに対応する
Configuration.dataChannelSignaling
を追加Configuration.ignoreDisconnectWebSocket
を追加- @szktty @enm10k
- [FIX] Sora 接続時に audioEnabled = false を設定すると answer 生成に失敗してしまう問題についてのワークアラウンドを削除する
- @miosakuma
- [FIX] Swift Package Manager に対応するためバージョニングを修正
- @miosakuma
- [CHANGE] 接続開始時のカメラ・デバイスを指定可能にする
Configuration.cameraSettings.position
に.front
または.back
を設定して、接続開始時のカメラ・デバイスを指定します- この修正に伴い、以下の API が変更されました
CameraVideoCapturer
の API を破壊的に変更CameraVideoCapturer.Settings
をCameraSettings
にリネームVideoCapturerHandlers
をCameraVideoCapturerHandlers
にリネームVideoCapturer
を廃止VideoCapturerDevice
を廃止CameraPosition
を廃止Configuration.videoCapturerDevice
を廃止MediaStream.videoCapturer
を廃止
- @szktty @enm10k
- [UPDATE] Swift Package Manager に対応する
- @miosakuma @enm10k
- [UPDATE] WebRTC 93.4577.8.0 に上げる
- @miosakuma
- [UPDATE] システム条件を変更する
- iOS 12.1 以降
- @miosakuma
- [UPDATE] Starscream のバージョンを 4.0.4 に更新する
- @szktty @enm10k
- [UPDATE] シグナリング・メッセージ re-offer, re-answer に対応する
- @enm10k
- [UPDATE] AES-GCM を有効にする
- @enm10k
- [UPDATE] SoraDispatcher を追加する
- libwebrtc 内部で利用されているディスパッチ・キューをラップし、 SDK のユーザーから利用しやすくした
- @szktty @enm10k
- [FIX] 接続、切断の検知に RTCPeerConnectionState を参照する
- @enm10k
- [FIX] 接続終了後に MediaChannel のメモリが解放されずに残り続ける事象を修正する
- @szktty
- [CHANGE] スポットライトに関する API を変更する
- Sora のスポットライトレガシー機能を利用するための API を
Sora.useSpotlightLegacy()
に変更 Configuration.activeSpeakerLimit
を非推奨にして、Configuration.spotlightNumber
に変更Configuration.spotlightFocusRid
を追加Configuration.spotlightUnfocusRid
を追加- @enm10k
- Sora のスポットライトレガシー機能を利用するための API を
- [CHANGE] シグナリングに含まれる JSON 型のフィールドを JSONSerialization でデコードする
- フィールドの型を SignalingMetadata から Any? に変更したため、任意の型にキャストして利用することとなる
- 対象のフィールド
SignalingNotifyConnection.metadata
SignalingOffer.metadata
SignalingPush.data
- 修正にともない、
SignalingClientMetadata
をSignalingNotifyMetadata
にリネームする - @enm10k
- [CHANGES] type: notify のシグナリング・メッセージに対応する struct として SignalingNotify を追加する
- event_type 毎に定義されていた以下の struct を廃止し、 SignalingNotify に統合する
SignalingNotifyConnection
SignalingNotifySpotlightChanged
SignalingNotifyNetworkStatus
- @enm10k
- event_type 毎に定義されていた以下の struct を廃止し、 SignalingNotify に統合する
- [CHANGE] サイマルキャストのオプションを Sora のアップデートへ追従する
SimulcastQuality
を削除し、SimulcastRid
を追加するConfiguration.simulcastQuality
を削除し、simulcastRid
を追加するSignalingConnect.simulcastQuality
を削除し、simulcastRid
を追加する- @szktty
- [CHANGE] DeviceModel を廃止し、 hw.machine の結果を表示する
- @enm10k
- [UPDATE] システム条件を変更する
- Xcode 12.5
- Swift 5.4
- CocoaPods 1.10.1
- @miosakuma
- [UPDATE] サイマルキャストで VP8 / H.264 (ハードウェアアクセラレーション含む) に対応する
- @szktty @enm10k
- [UPDATE] WebRTC 91.4472.9.1 に上げる
- @enm10k
- [UPDATE] AV1 に対応する
- @enm10k
- [ADD] libwebrtc のログレベルを設定する API を追加
Sora.setWebRTCLogLevel(_:)
- @szktty
- [FIX] SignalingNotify に漏れていたフィールドを追加する
SignalingNotify.authnMetadata
SignalingNotify.authzMetadata
SignalingNotify.data
SignalingNotify.turnTransportType
- @enm10k
- [FIX] サイマルキャストのパラメーター active: false が無効化されてしまう問題を修正する
- @enm10k
- [FIX] WebSocketChannel 切断時に MediaChannel を切断する処理が漏れていたので追加する
- @enm10k
- [ADD] VideoView に解像度とフレームレートを表示するデバッグモードを追加する
VideoView.debugMode
を追加- @szktty
- [FIX] SignalingConnect に clientId が漏れていたので追加する
- @enm10k
- [CHANGE] API: スポットライトに関する API
Configuration.Spotlight
: 追加Configuration.spotlightEnabled
: 型をSpotlight
に変更- @szktty
- [FIX] スポットライトレガシー機能に対応する
- @szktty
- [CHANGE]
AudioMode.swift
がターゲット含まれておらずビルドできなかった事象を修正する- @szktty
- [UPDATE] WebRTC 86.4240.10.0 に上げる
- @szktty
- [CHANGE] API: スポットライトに関する API
Configuration.spotlight
: 非推奨Configuration.spotlightEnabled
: 追加Configuration.activeSpeakerLimit
: 追加- @szktty
- [CHANGE] API: 音声モードに関する API
Sora.setAudioMode(_:options:)
: 追加AudioMode
: 追加AudioOutput
: 追加- @szktty
- [UPDATE] システム条件を更新する
- Xcode 12.0
- Swift 5.3
- CocoaPods 1.9.3
- @szktty
- [UPDATE] WebRTC M86 に対応する
- @szktty
- [FIX] API:
Sora.connect()
: タイムアウト時にハンドラが実行されない事象を修正する- @szktty
- [CHANGE] シグナリング pong に統計情報を含める
- @szktty
- [CHANGE] API: 次のイベントハンドラのクラスにコンストラクタを追加する
MediaChannelHandlers
MediaStreamHandlers
PeerChannelHandlers
SignalingChannelHandlers
SoraHandlers
VideoCapturerHandlers
WebSocketChannelHandlers
- @itoyama @szktty
- [UPDATE] システム条件を更新する
- Xcode 11.6
- Swift 5.2.4
- WebRTC SFU Sora 2020.1 以降
- @szktty
- [UPDATE] WebRTC M84 に対応する
- @szktty
- [FIX] API:
Sora.connect()
: 接続先ホストが存在しない場合にハンドラが実行されない事象を修正する- @szktty
- [FIX] 受信したシグナリングの role が
sendonly
,recvonly
,sendrecv
の場合にデコードに失敗する事象を修正する- @szktty
- [FIX] API:
MediaChannel
:senderStream
: ストリーム ID が接続時に指定した配信用ストリーム ID と一致するストリームを返すようにする (変更前はカメラのストリームを返した)- @szktty
- [FIX] API:
MediaChannel
:receiverStreams
:senderStream
以外のストリームを返すようにする (変更前はカメラ以外のストリームを返した)- @szktty
- [CHANGE] iOS 13 以降の場合に URLSession を使って WebSocket 通信を行うようにする
- @szktty
- [CHANGE] Plan B に関連する API を削除する
- @szktty
- [CHANGE] シグナリングで送信する JSON にて、 role を upstream/downstream のどちらかで出力するようにする
- @szktty
- [CHANGE] シグナリングの offer/update/ping を peer connection の状態に関わらず処理する
- @szktty
- [CHANGE] 端末情報を追加する (iPhone 11, iPhone 11 Pro, iPhone1 11 Pro Max, iPad 7th)
- @szktty
- [CHANGE] ログに出力される WebSocket のエラー内容を詳細にする
- @szktty
- [CHANGE] API:
MediaChannel
:senderStream
プロパティを追加する- @szktty
- [CHANGE] API:
MediaChannel
:receiverStreams
プロパティを追加する- @szktty
- [FIX] マイクが初期化されない事象を修正する
- @szktty
- [CHANGE] 受信時にマイクのパーミッションを要求しないようにする
- @szktty
- [FIX]
Sora.remove(mediaChannel:)
実行時にonRemoveMediaChannel
が呼ばれない事象を修正する- @tamiyoshi-naka @szktty
本バージョンよりバージョン表記を「リリース年.リリース回数」に変更する
- [CHANGE] Carthage の使用を止める
- @szktty
- [CHANGE] シグナリングに含める各種バージョン情報を変更する
- @szktty
- [CHANGE] API: SocketRocket の使用を止めて Starscream を採用する
- @szktty
- [CHANGE] API: イベントハンドラのプロパティ名を短縮する
- @szktty
- [CHANGE] API:
Configuration
:init(url:channelId:role:)
を非推奨にする- @szktty
- [CHANGE] API:
Configuration
:init(url:channelId:role:multistreamEnabled:)
を追加する- @szktty
- [CHANGE] API:
Configuration
:webSocketChannelHandlers
: プロパティを追加する- @szktty
- [CHANGE] API:
Configuration
:multistreamEnabled
: プロパティを追加する- @szktty
- [CHANGE] API:
Role
: Sora の仕様に合わせてsendonly
,recvonly
,sendrecv
を追加する- @szktty
- [CHANGE] API:
Role
:publisher
,subscriber
,group
,groupSub
を非推奨にする- @szktty
- [UPDATE] システム条件を更新する
- Xcode 11.3
- CocoaPods 1.8.4 以降
- WebRTC SFU Sora 19.10.3 以降
- @szktty
- [UPDATE] WebRTC M79 に対応する
- @szktty
- [UPDATE] システム条件を更新する
- macOS 10.15 以降
- Xcode 11.1
- @szktty
- [UPDATE] WebRTC M78 に対応する
- @szktty
- [UPDATE] システム条件を更新する
- Xcode 11
- Swift 5.1
- @szktty
- [CHANGE] 依存するライブラリを変更する (
Cartfile
)- sora-webrtc-ios 76.3.1 -> shiguredo-webrtc-ios 76.3.1
- @szktty
- [CHANGE] 対応アーキテクチャから armv7 を外する
- @szktty
- [ADD] 対応アーキテクチャに x86_64 を追加する (シミュレーターの動作は未保証)
- @szktty
- [ADD] シグナリングに SDK と端末の情報を含めるようにする
- @szktty
- [CHANGE] VAD 機能を削除する
- @szktty
- [CHANGE] API: シグナリングに関する API の名前を変更する
SignalingMessage
->Signaling
SignalingNotificationEventType
->SignalingNotifyEventType
SignalingConnectMessage
->SignalingConnect
SignalingOfferMessage
->SignalingOffer
SignalingOfferMessage.Configuration
->SignalingOffer.Configuration
SignalingPongMessage
->SignalingPong
SignalingPushMessage
->SignalingPush
- @szktty
- [UPDATE] システム条件を更新する
- Xcode 10.3
- @szktty
- [UPDATE] WebRTC M76 に対応する
- @szktty
- [ADD] サイマルキャスト機能に対応する
- @szktty
- [ADD] スポットライト機能に対応する
- @szktty
- [ADD] 音声ビットレートの指定に対応する
- @szktty
- [ADD] シグナリングのメタデータに対応する
- @szktty
- [ADD] API:
Configuration
:audioBitRate
プロパティを追加する- @szktty
- [ADD] API:
Configuration
:maxNumberOfSpeakers
プロパティを削除する- @szktty
- [ADD] API:
Configuration
:simulcastEnabled
プロパティを追加する- @szktty
- [ADD] API:
Configuration
:simulcastQuality
プロパティを追加する- @szktty
- [ADD] API:
Configuration
:spotlight
プロパティを追加する- @szktty
- [ADD] API:
SimulcastQuality
: 追加する- @szktty
- [ADD] API:
SignalingAnswer
: 追加する- @szktty
- [ADD] API:
SignalingCandidate
: 追加する- @szktty
- [ADD] API:
SignalingClientMetadata
: 追加する- @szktty
- [ADD] API:
SignalingMetadata
: 追加する- @szktty
- [ADD] API:
SignalingNotifyConnection
: 追加する- @szktty
- [ADD] API:
SignalingNotifyNetworkStatus
: 追加する- @szktty
- [ADD] API:
SignalingNotifySpotlightChanged
: 追加する- @szktty
- [ADD] API:
SignalingOffer.Encoding
: 追加する- @szktty
- [ADD] API:
SignalingUpdate
: 追加する- @szktty
- [ADD] API:
Signaling
: 追加する- @szktty
- [CHANGE] API:
SDPSemantics
:case default
を削除する- @szktty
- [CHANGE] SDP セマンティクスのデフォルトを Unified Plan に変更する
- @szktty
- [ADD] API: シグナリング "notify" の "connection_id" プロパティに対応する
- @szktty
- [ADD] API:
SignalingNotifyMessage
:connectionId
プロパティを追加する- @szktty
- [FIX] 接続状態によってシグナリング "notify" が無視される現象を修正する
- @szktty
- [FIX] グループ (マルチストリーム) 時、映像を無効にする状態で接続すると落ちる現象を修正する
- @szktty
- [CHANGE] マルチストリーム時に強制的に Plan B に設定していたのを止めた
- @szktty
- [CHANGE] 未知のシグナリングメッセージを受信するら例外を発生するように変更する
- @szktty
- [UPDATE] システム条件を更新する
- WebRTC SFU Sora 19.04.0 以降
- macOS 10.14.4 以降
- Xcode 10.2
- Swift 5
- @szktty
- [ADD] シグナリング "notify" の次のイベントに対応する
- "spotlight.changed"
- "network.status"
- @szktty
- [UPDATE] システム条件を更新する
- WebRTC SFU Sora 18.10.0 以降
- macOS 10.14 以降
- iOS 10.0
- Xcode 10.1
- Swift 4.2.1
- @szktty
- [ADD] シグナリング "push" に対応する
- @szktty
- [FIX] シグナリング "notify" に含まれるメタデータが解析されていない現象を修正する
- @szktty
- [UPDATE] システム条件を更新する
- iOS 12.0
- Xcode 10.0
- Swift 4.2
- @szktty
- [UPDATE] API:
Sora
:connect(configuration:webRTCConfiguration:handler:)
: 実行中に接続の試行をキャンセル可能にする- @szktty
- [ADD] API:
ConnectionTask
: 追加する- @szktty
- [UPDATE] システム条件を更新する
- macOS 10.13.6 以降
- Xcode 9.4
- Swift 4.1
- @szktty
- [FIX] MediaChannel: 接続解除後、サーバーにしばらく接続が残る可能性がある現象を修正する
- @szktty
- [UPDATE] WebRTC M66 に対応する
- @szktty
- [UPDATE] WebRTC SFU Sora 18.04 以降に対応する
- @szktty
- [CHANGE] API:
MediaStream
:audioVolume
プロパティを非推奨にする- @szktty
- [UPDATE] システム条件を更新する
- macOS 10.13.2 以降
- Xcode 9.3
- Swift 4.1
- Carthage 0.29.0 以降、または CocoaPods 1.4.0 以降
- WebRTC SFU Sora 18.02 以降
- @szktty
- [ADD] API:
MediaStream
:remoteAudioVolume
プロパティを追加する- @szktty
- [FIX] API:
MediaStream
: 配信中にvideoEnabled
プロパティまたはaudioEnabled
プロパティで映像か音声を無効にすると、有効に戻しても他のクライアントに配信が再開されない現象を修正する- @szktty
- [FIX] API:
WebRTCInfo
:shortRevision
: 戻り値の文字列が 7 桁でない現象を修正する- @szktty
- [ADD] 視聴のみのマルチストリームに対応する
- @szktty
- [ADD] 音声検出による映像の動的切替に対応する
- @szktty
- [ADD] API:
Role
:.groupSub
を追加する- @szktty
- [ADD] API:
Configuration
:maxNumberOfSpeakers
プロパティを追加する- @szktty
- [ADD] API:
SignalingConnectMessage
:maxNumberOfSpeakers
プロパティを追加する- @szktty
- [UPDATE] WebRTC M64 に対応する
- @szktty
- [CHANGE] API:
SoraError
: WebSocket に関するエラーを次の二つに分割するwebSocketClosed(statusCode:reason:)
webSocketError()
- @szktty
- [CHANGE] API:
WebSocketChannelHandlers
:onFailureHandler
を削除する- @szktty
- [CHANGE] API:
SignalingChannelHandlers
:onFailureHandler
を削除する- @szktty
- [CHANGE] API:
PeerChannelHandlers
:onFailureHandler
を削除する- @szktty
- [CHANGE] API:
MediaChannelHandlers
:onFailureHandler
を削除する- @szktty
- [UPDATE] WebRTC M63 に対応する
- @szktty
- [UPDATE] SDWebImage 4.2.2 に対応する
- @szktty
- [ADD] API:
WebSocketChannelHandlers
:onDisconnectHandler
を追加する- @szktty
- [ADD] API:
SignalingChannelHandlers
:onDisconnectHandler
を追加する- @szktty
- [ADD] API:
PeerChannelHandlers
:onDisconnectHandler
を追加する- @szktty
- [FIX] API:
MediaChannel
:PeerChannel
の接続解除時にMediaChannel
の状態が接続解除にならない現象を修正する- @szktty
- [ADD] connect シグナリングメッセージに Offer SDP を含めるようにする
- @szktty
- [ADD] API: MediaStreamAudioVolume: 追加する
- @szktty
- [ADD] API: MediaStream: audioVolume プロパティを追加する
- @szktty
- [FIX] API: MediaStream: videoEnabled: 映像をオフにしても VideoView に反映されない現象を修正する
- @szktty
- [FIX] API: MediaStream: audioEnabled: 音声の可否がサブスクライバーに反映されない現象を修正する
- @szktty
- [UPDATE] Xcode 9.1 に対応する
- @szktty
- [ADD] API: MediaStream: 接続中に映像と音声の送受信を停止・再開するプロパティを追加する
- @szktty
- [ADD] API: MediaStreamHandlers: 追加する
- @szktty
設計と API を大きく見直した。
- [CHANGE] 依存するフレームワークから Unbox.framework を削除する
- @szktty
- [CHANGE] WebRTC のネイティブ API (主にクラスやプロトコル名の接頭辞が
RTC
の API) を非公開にする- @szktty
- [CHANGE] 通信を行うオブジェクト (WebSocket 接続、シグナリング接続、ピア接続、メディアストリーム) をプロトコルに変更する (デフォルトの実装は
private
)- @szktty
- [CHANGE] 内部で使用する WebSocket の API (SRWebSocket.framework の API) を非公開にする
- @szktty
- [UPDATE] WebRTC M62 に対応する
- @szktty
- [UPDATE] アーキテクチャ armv7 に対応する
- @szktty
- [UPDATE] iOS 11 に対応する
- @szktty
- [UPDATE] Xcode 9 に対応する
- @szktty
- [UPDATE] Swift 4 に対応する
- @szktty
- [UPDATE] クライアントの設定を
Configuration
にまとめる- @szktty
- [ADD] ロールについて、 "パブリッシャー (Publisher)" と "サブスクライバー (Subscriber)" に加えて、マルチストリームで通信を行う "グループ (Group)" を追加する
- @szktty
- [ADD] 任意の映像キャプチャーの使用を可能にする
- @szktty
- [ADD]
CMSampleBuffer
を映像フレームとして使用可能にする- @szktty
- [ADD] 映像フレームの編集を可能にする
- @szktty
- [CHANGE] 次のクラス、構造体、列挙体、プロトコルを削除する
Attendee
: 同等の機能をMediaChannel
に実装するBuildInfo
: 同等の機能をWebRTCInfo
に実装するConnection
: パブリッシャーとサブスクライバーをそれぞれ独立させたため削除するConnectionController
: 同等の機能を削除するConnectionController.Request
ConnectionController.Role
ConnectionController.StreamType
ConnectionError
: 同等の機能をSoraError
に実装するEvent
: 各イベントをイベントハンドラのみで扱うようにするEvent.EventType
EventLog
: ロギング機能を削除するMediaConnection
: 同等の機能をMediaChannel
に実装するMediaPublisher
: パブリッシャーをMediaChannel
で扱うようにするため削除するMediaSubscriber
: サブスクライバーをMediaChannel
で扱うようにするため削除するMediaOption
: 同等の機能をConfiguration
に実装するMessage
: 同等の機能をSignalingMessage
に実装するMessage.MessageType
Messagable
PeerConnection
: 同等の機能をPeerChannel
に定義するPeerConnectionEventHandlers
: 同等の機能をPeerChannelHandlers
に実装するSignalingEventHandlers
: 同等の機能をSignalingChannelHandlers
に実装するSignalingNotify
: 同等の機能をSignalingNotifyMessage
に実装するSignalingSnapshot
: 同等の機能をSignalingSnapshotMessage
に実装するVideoFrameHandle
: 同等の機能をVideoFrame
に実装するWebSocketEventHandlers
: 同等の機能をWebSocketChannelHandlers
に実装する- @szktty
- [CHANGE]
Notification
の使用を中止し、次の関連する構造体と列挙体を削除するConnection.NotificationKey
Connection.NotificationKey.UserInfo
MediaConnection.NotificationKey
MediaConnection.NotificationKey.UserInfo
MediaStream.NotificationKey
MediaStream.NotificationKey.UserInfo
- @szktty
- [CHANGE]
AudioCodec
.Opus
を.opus
に変更する.PCMU
を.pcmu
に変更する- @szktty
- [CHANGE]
MediaStream
- クラスからプロトコルに変更し、 API を一新する
- [CHANGE]
VideoCodec
.VP8
を.vp8
に変更する.VP9
を.vp9
に変更する.H264
を.h264
に変更する- @szktty
- [CHANGE]
VideoFrame
- プロトコルから列挙体に変更し、 API を一新する
- @szktty
- [CHANGE]]
VideoRenderer
onChangedSize(_:)
をonChange(size:)
に変更するrenderVideoFrame(_:)
をrender(videoFrame:)
に変更する- @szktty
- [ADD] 次のクラスを追加する
CameraVideoCapturer
CameraVideoCapturer.Settings
ICECandidate
ICEServerInfo
MediaChannel
MediaChannelHandlers
PeerChannelHandlers
SignalingChannelHandlers
Sora
SoraHandlers
VideoCapturerHandlers
WebSocketChannelHandlers
- @szktty
- [ADD] 次の構造体を追加する
Configuration
MediaConstraints
SignalingConnectMessage
SignalingNotifyMessage
SignalingOfferMessage
SignalingOfferMessage.Configuration
SignalingPongMessage
SignalingSnapshotMessage
SignalingUpdateOfferMessage
Snapshot
WebRTCConfiuration
WebRTCInfo
- @szktty
- [ADD] 次の列挙体を追加する
ConnectionState
ICETransportPolicy
LogLevel
NotificationEvent
SignalingNotificationEventType
SignalingMessage
SignalingRole
SoraError
TLSSecurityPolicy
VideoCapturerDecive
VideoFrame
WebSocketMessage
WebSocketMessageStatusCode
- @szktty
- [ADD] 次のプロトコルを追加する
MediaStream
PeerChannel
SignalingChannel
VideoCapturer
ViderFilter
WebSocketChannel
- @szktty
- [ADD]
Role
.group
を追加する- @szktty
- [FIX] CircleCI でのビルドエラーを修正する
- @szktty
- [CHANGE] API: MediaOption を struct に変更する
- @szktty
- [CHANGE] API: ConnectionController: ロールとストリーム種別の選択制限を削除する
- @szktty
- [UPDATE] armv7 に対応する
- @szktty
- [FIX] API: マルチストリーム時、配信者のストリームが二重に生成されてしまう現象を修正する
- @szktty
- [UPDATE] API: VideoView:
contentMode
に応じて映像のサイズを変更するようにする- @szktty
- [FIX] API: 残っていたデバッグプリントを削除する
- @szktty
- [UPDATE] API: 一部の静的変数を定数に変更する
- @szktty
- [FIX] API: VideoView: メモリー解放時に Key-Value Observing に関する例外が発生する現象を修正する
- @szktty
- [FIX] API: VideoView: メモリー解放時にクラッシュする現象を修正する
- @szktty
- [FIX] API: ConnectionController: 指定する映像・音声コーデックが UI とシグナリングに反映されない現象を修正する
- @szktty
- [CHANGE] API: VideoFrame
var width
:Int32
->Int
var height
:Int32
->Int
var timestamp
:CMTime
->CMTime?
- @szktty
- [CHANGE] API: VideoFrameHandle: 次のプロパティ名を変更する
case webRTC
->case WebRTC
- @szktty
- [UPDATE] WebRTC M60 に対応する
- @szktty
- [UPDATE] Bitcode に対応する
- @szktty
- [UPDATE] スナップショットに対応する
- @szktty
- [UPDATE] API: VideoView: スナップショットの描画に対応する
- @szktty
- [ADD] リンクするフレームワークに SDWebImage.framework を追加する
- @szktty
- [ADD] API: Event.EventType: 次のケースを追加する
case Snapshot
- @szktty
- [ADD] API: MediaOption: 次のプロパティを追加する
var snapshotEnabled
- @szktty
- [ADD] API: SignalingEventHandlers: 次のメソッドを追加する
func onSnapshot(handler: (SignalingSnapshot) -> Void)
- @szktty
- [ADD] API: SignalingSnapshot: 追加する
- @szktty
- [ADD] API: Snapshot: 追加する
- @szktty
- [ADD] API: VideoFrameHandle: 次のプロパティを追加する
case snapshot
- @szktty
- [ADD] API: ConnectionController: スナップショットの項目を追加する
- @szktty
- [CHANGE] examples を削除
- @szktty
- [CHANGE] ディレクトリ構造を変更し、プロジェクトのファイルをトップレベルに移動する
- @szktty
- [CHANGE] API: PeerConnection: 接続状態に関わらず WebSocket のイベントハンドラを実行するようにする
- @szktty
- [CHANGE] 次の不要なファイルを削除する
JSON.swift
- @szktty
- [CHANGE] API: BuildInfo: 次のプロパティを削除する
var VP9Enabled
- @szktty
- [CHANGE] API: Connection: 次のプロパティとメソッドを削除する
var numberOfConnections
func onChangeNumberOfConnections(handler:)
- @szktty
- [CHANGE] API: ConnectionController: Cancel ボタンを Back ボタンに変更する
- @szktty
- [CHANGE] API: MediaStreamRole: 削除する
- @szktty
- [CHANGE] API: VideoFrame の型を変更する
var width
:Int
->Int32
var height
:Int
->Int32
- @szktty
- [CHANGE] API: ConnectionController: VP9 の有効・無効を示すセルを削除する
- @szktty
- [UPDATE] WebRTC M59 に対応する
- @szktty
- [ADD] CircleCI を利用する自動ビルドを追加
- @szktty
- [ADD] シグナリング "notify" に対応する
- @szktty
- [ADD] イベントログに接続エラーの詳細を出力するようにする
- @szktty
- [ADD] API: Attendee: 追加する
- @szktty
- [ADD] API: ConnectionError:
var description
を追加する- @szktty
- [ADD] API: ConnectionController: ビットレートの設定項目を追加する
- @szktty
- [ADD] API: ConnectionController: イベントログの画面を追加する
- @szktty
- [ADD] API: Event.EventType:
ConnectionMonitor
を追加する- @szktty
- [ADD] API: MediaConnection: 次のプロパティとメソッドを追加する
var numberOfConnections
func onAttendeeAdded(handler:)
func onAttendeeRemoved(handler:)
func onChangeNumberOfConnections(handler:)
- @szktty
- [ADD] API: Role: 追加する
- @szktty
- [ADD] API: SignalingEventHandlers:
func onNotify(handler:)
を追加する- @szktty
- [ADD] API: SignalingEventType: 追加する
- @szktty
- [ADD] API: SignalingNotify: 追加する
- @szktty
- [ADD] API: SignalingRole: 追加する
- @szktty
- [FIX] Sora の URL のプロトコルが ws または wss 以外であればエラーにする
- @szktty
- [FIX] 接続解除可能な状況でも
connectionBusy
のエラーが発生する現象を修正する- @szktty
- [FIX] 接続解除後も内部で接続状態の監視を続ける現象を修正する
- @szktty
- [FIX] API: ConnectionController: 接続画面外で接続が解除されても接続画面では接続状態である現象を修正する
- @szktty
- [FIX] API: VideoView のサイズの変化に動画のサイズが追従しない現象を修正する
- @szktty
- [UPDATE] システム条件を更新する
- Xcode 8.1 以降 -> 8.3.2 以降
- Swift 3.0.1 -> 3.1
- Sora 17.02 -> 17.04
- @szktty
- [UPDATE] SoraApp の Cartfile で利用する shiguredo/sora-ios-sdk を 1.0.1 にアップデートする
- @szktty
- [CHANGE] 対応アーキテクチャを arm64 のみにする
- @szktty
- [CHANGE] シグナリング: Sora の仕様変更に伴い、 "stats" への対応を廃止する
- @szktty
- [CHANGE] シグナリング: Sora の仕様変更に伴い、 "connect" の "access_token" パラメーターを "metadata" に変更する
- @szktty
- [CHANGE] API: ArchiveFinished: 削除する
- @szktty
- [CHANGE] API: ArchiveFailed: 削除する
- @szktty
- [CHANGE] API: MediaConnection: 次の変数の型を変更する
webSocketEventHandlers
:WebSocketEventHandlers?
-->WebSocketEventHandlers
signalingEventHandlers
:SignalingEventHandlers?
-->SignalingEventHandlers
peerConnectionEventHandlers
:PeerConnectionEventHandlers?
-->PeerConnectionEventHandlers
- @szktty
- [CHANGE] API: MediaConnection:
connect(accessToken:timeout:handler:)
メソッドの型をconnect(metadata:timeout:handler:)
に変更する- @szktty
- [CHANGE] API: MediaConnection, MediaStream: 次の API を MediaStream に移行する
var videoRenderer
func startConnectionTimer(timeInterval:handler:)
- @szktty
- [CHANGE] API: MediaConnection.State: 削除する
- @szktty
- [CHANGE] API: MediaOption.AudioCodec:
unspecified
をdefault
に変更する- @szktty
- [CHANGE] API: MediaOption.VideoCodec:
unspecified
をdefault
に変更する- @szktty
- [CHANGE] API: MediaStream: RTCPeerConnection のラッパーではなく、 RTCMediaStream のラッパーに変更する
- @szktty
- [CHANGE] API: MediaStream:
startConnectionTimer(timeInterval:handler:)
: タイマーを起動する瞬間もハンドラーを実行するようにする- @szktty
- [CHANGE] API: MediaStream.State: 削除する
- @szktty
- [CHANGE] API: SignalingConnected: 削除する
- @szktty
- [CHANGE] API: SignalingCompleted: 削除する
- @szktty
- [CHANGE] API: SignalingDisconnected: 削除する
- @szktty
- [CHANGE] API: SignalingFailed: 削除する
- @szktty
- [CHANGE] API: StatisticsReport: RTCStatsReport の変更 (名前が RTCLegacyStatsReport に変更された) に伴い削除する
- @szktty
- [UPDATE] WebRTC M57 に対応する
- @szktty
- [UPDATE] API: MediaCapturer: 同一の RTCPeerConnectionFactory で再利用するようにする
- @szktty
- [UPDATE] API: MediaCapturer: 映像トラック名と音声トラック名を自動生成するようにする
- @szktty
- [UPDATE] API: VideoRenderer: 描画処理をメインスレッドで実行するようにする
- @szktty
- [UPDATE] API: VideoView: UI の設計に Nib ファイルを利用するようにする
- @szktty
- [UPDATE] API: VideoView: バックグラウンド (ビューがキーウィンドウに表示されていない) では描画処理を中止するようにする
- @szktty
- [UPDATE] API: VideoView: 映像のアスペクト比を保持するようにする
- @szktty
- [UPDATE] API: MediaConnection: MediaStream を複数保持するようにする
- @szktty
- [ADD] マルチストリームに対応する
- @szktty
- [ADD] シグナリング: "notify" に対応する
- @szktty
- [ADD] API: MediaConnection:
multistreamEnabled
プロパティを追加する- @szktty
- [ADD] API: MediaPublisher:
autofocusEnabled
プロパティを追加する- @szktty
- [ADD] API: PeerConnection: RTCPeerConnection のラッパーとして追加する
- @szktty
- [ADD] API: BuildInfo: 追加する
- @szktty
- [ADD] API: ConnectionController: 追加する
- @szktty
- [ADD] API: Connection: 次の API を追加する
var numberOfConnections
func onChangeNumberOfConnections(handler:)
- @szktty
- [ADD] API: Connection, MediaConnection, MediaStream, PeerConnection: 次のイベントで (NotificationCenter による) 通知を行うようにする
- onConnect
- onDisconnect
- onFailure
- @szktty
- [ADD] API: WebSocketEventHandlers, SignalingEventHandlers, PeerConnectionEventHandlers: イニシャライザーを追加する
- @szktty
- [FIX] シグナリング: 音声コーデック Opus を指定するためのパラメーターの間違いを修正する
- @szktty
- [FIX] 接続解除後にイベントログを記録しようとして落ちる現象を修正する
- @szktty
- [FIX] 接続失敗時にデバイスを初期化しようとして落ちる現象を修正する (接続成功時のみ初期化するようにする)
- @szktty
- [FIX] 接続試行中にエラーが発生して失敗するにも関わらず、成功と判断されてしまう場合がある現象を修正する
- @szktty
- [FIX] API: MediaConnection: 接続解除後もタイマーが実行されてしまう場合がある現象を修正する (タイマーに関する API は MediaStream に移動する)
- @szktty
- [FIX] API: PeerConnection: 接続失敗時でもタイムアウト時のイベントハンドラが呼ばれる現象を修正する
- @szktty
公開