Skip to content

2025.1.1

Choose a tag to compare

@miosakuma miosakuma released this 07 Aug 06:17
· 343 commits to develop since this release

2025.1.1

リリース日: 2025-08-07

  • [FIX] Sora の設定が、DataChannel 経由のシグナリングの設定、かつ、WebSocket の切断を Sora への接続が切断したと判断しない設定の場合に、type: switchedtype: re-offer をほぼ同時に受信すると SDP 再交換に失敗することがある問題を修正する
    • type: re-answer を WebSocket 経由で Sora へ送信する前に、Sora から type: switched を受信して、WebSocket 経由から DataChannel 経由へのシグナリングの切り替えの処理が実行されて、WebSocket の切断処理が実行されたため、type: re-answer を Sora へ送信できなくなり、SDP の再交換に失敗する
    • DataChannel 経由のシグナリングへの切り替え後でも、まだ WebSocket 経由で送信中のメッセージが存在する可能性を考慮し、10 秒間の WebSocket 切断の猶予時間を設けた
      • この遅延処理はコルーチンを利用して非同期で行う
    • @miosakuma

2025.1.0

リリース日: 2025-01-27

  • [UPDATE] libwebrtc を 132.6834.5.0 に上げる
  • [UPDATE] SoraForwardingFilterOption 型の引数を Sora での 2025 年 12 月の廃止に向けて非推奨にする
    • 今後はリスト形式の転送フィルター設定を利用してもらう
    • 非推奨になるクラス
      • SoraMediaChannel
      • SignalingChannelImpl
      • ConnectMessage (Any で定義されているが、実態は SoraForwardingFilterOption を Map に変換したもの)
    • @zztkm
  • [UPDATE] OfferMessage に項目を追加する
    • 追加した項目
      • version
      • simulcastMulticodec
      • spotlight
      • channelId
      • sessionId
      • audio
      • audioCodecType
      • audioBitRate
      • video
      • videoCodecType
      • videoBitRate
    • @zztkm
  • [UPDATE] NotificationMessage に項目を追加する
    • 追加した項目
      • timestamp
      • spotlightNumber
      • failedConnectionId
      • currentState
      • previousState
    • @zztkm
  • [ADD] 転送フィルター機能の設定を表すクラス SoraForwardingFilterOptionnamepriority を追加する
  • [ADD] 転送フィルターをリスト形式で指定するためのプロパティを追加する
    • プロパティが追加されるクラス
      • SoraMediaChannel に forwardingFiltersOption を追加する
      • SignalingChannelImpl に forwardingFiltersOption を追加する
      • ConnectMessage に forwardingFilters を追加する
      • クラスそのものに変更はないが MessageConverter.buildConnectMessageforwardingFiltersOption を追加する
    • @zztkm
  • [FIX] SoraMediaChannel のコンストラクタで signalingMetadatasignalingNotifyMetadata に Map オブジェクトを指定した場合、null を持つフィールドが connect メッセージ送信時に省略されてしまう問題を修正
    • signalingMetadatasignalingNotifyMetadata に設定する情報はユーザが任意に設定する項目であり value 値が null の情報も送信できるようにする必要がある
    • Gson は JSON シリアライズ時、デフォルトで null フィールドを無視するので、null を持つフィールドは省略される
    • signalingMetadatasignalingNotifyMetadata のみ null フィールドを省略しないようにする必要があるため、以下のような手順で JSON シリアライズを行うようにした
      • まず、デフォルトの Gson インスタンスで ConnectMessage をシリアライズする
      • その後、シリアライズした JSON 文字列を JsonObject に変換する (この時点で null のフィールドは省略されている)
      • JsonObject に metadata, signalingNotifyMetadata をセットし直す
      • JsonObject を serializeNulls() を呼び出した Gson インスタンスでシリアライズする
    • @zztkm

misc

  • [CHANGE] GitHub Actions の ubuntu-latest を ubuntu-24.04 に変更する
  • [UPDATE] システム条件を更新する
  • [ADD] Canary Release 用スクリプトの canary.py を追加する