- CHANGE
- 後方互換性のない変更
- UPDATE
- 後方互換性がある変更
- ADD
- 後方互換性がある追加
- FIX
- バグ修正
- [UPDATE] Sora C++ SDK のバージョンを
2024.6.1
に上げる- @voluntas
- [FIX] SoraAudioSink.read が timeout を無視して失敗を返すケースがあったので修正する
- @enm10k
2024-04-09
- [ADD] Sora Python SDK Samples を
examples
に移動する- @voluntas
- [CHANGE] Lyra のサポートを廃止し、以下のオプションを削除する
- audio_codec_lyra_bitrate
- audio_codec_lyra_usedtx
- check_lyra_version
- @enm10k
- [ADD]
on_switched
コールバックを追加する- @enm10k
- [UPDATE] nanobind を
1.9.2
に上げて固定する- @voluntas
- [UPDATE] ruff の最小を ``0.3.0` に上げる
- @voluntas
- [UPDATE] Sora C++ SDK のバージョンを
2024.6.0
に上げる- libwebrtc で
cricket::MediaEngineDependencies
が廃止された変更に追従する - WEBRTC_BUILD_VERSION を
m122.6261.1.0
に上げる- Ubuntu のビルドを通すために、 __assertion_handler というファイルをコピーする処理を追加した
- BOOST_VERSION を
1.84.0
に上げる - @enm10k
- libwebrtc で
- [UPDATE] Intel VPL を利用した H.265 に対応
- Sora C++ SDK のバージョンを
2024.6.0
に上げることで対応 - @enm10k
- Sora C++ SDK のバージョンを
- [FIX] pyproject.toml の
[rye.tool]
virtual = true を削除する- virtual = true は pip version 24 からはデフォルトが wheel が削除されるようになったための暫定対応だった
- そのために pyproject.toml の
build-system.requires
に wheel と setuptools を指定する - @zztkm
- [FIX] サンプルアプリで 1080p の映像を送信すると 2-3 FPS しか出ないのを修正
- ビデオキャプチャの設定に FOURCC と FPS を設定するようにする
- 初期値は "MJPG", 30 を設定し、
.env
のSORA_VIDEO_FOURCC
,SORA_VIDEO_FPS
で変更可能とする - @melpon
- [FIX] Ubuntu 20.04 arm64 NVIDIA Jetson 5.1.2 で AV1 が正常に配信されない問題を修正
- Sora C++ SDK のバージョンを
2024.6.0
に上げることで解消 - @enm10k
- Sora C++ SDK のバージョンを
2024-02-20
- [CHANGE] フォーマッターを Ruff に変更する
- @voluntas
- [CHANGE] SoraAudioSource.on_data の引数名を変更
- @tnoho
- [CHANGE] SoraVideoSource.on_captured の引数名を変更
- @tnoho
- [CHANGE] SoraVAD.analyze の引数名を変更
- @tnoho
- [CHANGE] SoraConnection.on_track の引数を SoraMediaTrack に変更
- @tnoho
- [UPDATE] auditwheel を
6.0.0
にアップデートする- @voluntas
- [UPDATE] build を
1.0.3
にアップデートする- @voluntas
- [UPDATE] wheel を
0.42.0
にアップデートする- @voluntas
- [UPDATE] build を
1.0.3
にアップデートする- @voluntas
- [UPDATE] pytest を
8.0.0
にアップデートする- @voluntas
- [UPDATE] setuptools の最小を
69.1
にする- @voluntas
- [UPDATE] ruff の最小を
0.2.2
にする- @voluntas
- [UPDATE] nanobind の最小を
1.8.0
にする- @voluntas
- [UPDATE] actions/setup-python@v5 に上げる
- @voluntas
- [UPDATE] SoraMediaTrack を追加
- @tnoho
- [UPDATE] Sora C++ SDK のバージョンを
2024.1.0
に上げる- WebRTC m116 で cricket::Codec は protected になったので cricket::CreateVideoCodec に修正する
- WebRTC m118 でパッケージディレクトリが変更されたためそれに追従する
- WebRTC m120 の webrtc::EncodedImage API の変更に追従する
- WEBRTC_BUILD_VERSION を
m120.6099.1.2
に上げる - BOOST_VERSION を
1.83.0
に上げる - CMAKE_VERSION を
3.28.1
に上げる - @voluntas @miosakuma
- [UPDATE] ForwardingFilter に version と metadata を追加する
Sora 2023.2.0
へ追従C++ SDK 2024.1.0
へ追従- @miosakuma
- [UPDATE] NVIDIA JetPack を
5.1.2
に上げる- @miosakuma
- [UPDATE] OpenH264 を
v2.4.1
に上げる- @voluntas
- [ADD] GitHub Actions workflows/build.yml を平日 14:00 JST 定期実行する
- @voluntas
- [ADD] 発話区間の検出が可能な SoraVAD の追加
- @tnoho
- [ADD] リアルタイム性を重視した AudioStreamSink の追加
- @tnoho
- [ADD] AudioStreamSink が返す音声フレームとして pickle が可能な AudioFrame を追加
- @tnoho
- [FIX]
pyproject.toml
の[rye.tool]
にvirtual = true
を追加する- これで Windows ビルド失敗の原因である
--e file:.
が消える - @voluntas
- これで Windows ビルド失敗の原因である
- [ADD]H.265 に対応
- Sora C++ SDK のバージョンアップに伴い macOS で H.265 が利用可能になる
- @voluntas @miosakuma
2023-07-13
- [FIX] C++ SDK のバージョンを 2023.7.2 にあげる
- 特定のタイミングで切断が発生すると Closing 状態で止まってしまう問題が修正された
- @sile
2023-07-06
- [CHANGE] Sora.create_connection() が複数のシグナリング URL を受け取れるようにする
- C++ SDK の仕様に合わせるための破壊的な変更
signaling_url
は廃止してsignaling_urls
で置き換えるsignaling_urls
はList[str]
を受け取る- @sile
2023-07-03
- [ADD] OpenH264 に対応
- Ubunut 22.04 x86_64 でのみ対応
- @melpon
2023-06-28
- [FIX] Windows の Python 用ライブラリが dll ではなく pyd だったのを修正する
- @melpon
2023-06-27
- [FIX] connect 直後に disconnect すると落ちるのを修正
- @melpon
- [FIX] C++ SDK のバージョンを 2023.7.1 に上げる
- @voluntas
2023-06-20
- [UPDATE]
create_video_source()
とset_enabled()
の引数に名前をつける(キーワード引数で呼べるようにする)- @sile
- [UPDATE] C++ SDK のバージョンを 2023.7.0 に上げる
- @sile
- [UPDATE] 映像コーデックパラメータを指定可能にする
Sora.create_connection()
の引数に以下を追加:video_vp9_params
video_av1_params
video_h264_params
- @sile
- [FIX] 転送フィルターのルールの "operator" フィールドが誤って "op" になっていたのを修正する
- @sile
- [UPDATE] nanobind の最小バージョンを 1.4.0 にする
- @voluntas
- [UPDATE] sora_client に "Sora Python SDK {PYTHON_SDK_VERSION}" を設定する
- 今までは C++ SDK のデフォルト値が使用されていた
- PYTHON_SDK_VERSION の部分には pyproject.toml の project.version に記載の値が使用される
- @sile
- [FIX] 0 を途中で含むデータを送受信すると途中で途切れる問題を修正
- @sile
- [ADD] libwebrtc のログを有効にするための
enable_libwebrtc_log()
関数を追加するsora_sdk.enable_libwebrtc_log(sora_sdk.SoraLoggingSeverity.INFO)
といった感じで使用する- ログレベル (severity) は libwebrtc 準拠で
VERBOSE
,INFO
,WARNIGN
,ERROR
,NONE
の五段階 - @sile
- [CHANGE] デフォルトでは libwebrtc のログは出さないようにする
- @sile
- [CHANGE] audio および video パラメータが None を受け取れるようにする
- 今までは
bool
だったのを他のパラメータに合わせてopitonal<bool>
に変更 - @sile
- 今までは
- [ADD] C++ SDK が提供して Python SDK が未提供だったシグナリングパラメータを追加する
- 以下のパラメータを追加する:
- bundle_id
- signaling_notify_metadata
- video_bit_rate
- audio_bit_rate
- simulcast
- spotlight
- spotlight_nubmer
- simulcast_rid
- spotlight_focus_rid
- spotlight_unfocus_rid
- forwarding_filter
- data_channel_signaling_timeout
- disconnect_wait_timeout
- websocket_close_timeout
- websocket_connection_timeout
- audio_codec_lyra_bitrate
- audio_codec_lyra_usedtx
- check_lyra_version
- audio_streaming_language_code
- insecure
- client_cert
- client_key
- proxy_url
- proxy_username
- proxy_password
- proxy_agent
- いずれも未指定の場合には C++ SDK のデフォルト値が採用される
- @sile
- 以下のパラメータを追加する:
- [UPDATE] boost のバージョンを 1.82.0 に更新する
- [UPDATE] libwebrtc のバージョンを m114.5735.2.0 に更新する
- [UPDATE] Sora C++ SDK のバージョンを 2023.6.0 に更新する
- @sile
- [UPDATE]
Sora.connect()
メソッドにバリデーションを追加する- 以下のケースでは例外を送出するようにする:
connect()
呼び出し後に、同じインスタンスで再度connect()
を呼び出した場合disconnect()
呼び出し後に、同じインスタンスでconnect()
を呼び出した場合
- @sile
- 以下のケースでは例外を送出するようにする:
- [UPDATE] SIGSEGV などの異常終了を発生しにくくする
- 合わせてサンプルコードの整理(e.g., シグナルハンドラを使わなくする)も行っている
- @sile
- [CHANGE] メッセージング系のサンプルでは音声および映像を無効にする
messaging_{sendrecv,sendonly,recvonly}.py
ではSora.create_connectoin(audio=False, video=False, ...)
を指定する- @sile
- [ADD] Python SDK では常にマルチストリームを有効にする
- デフォルト値を使うのではなく
sora::SoraSignalingConfig::multistream
フィールドに明示的にtrue
を指定する - @sile
- デフォルト値を使うのではなく
- [ADD] Sora.create_connection() メソッドに音声・映像コーデックを指定するための引数を追加する
audio_codec_type
およびvideo_codec_type
引数- デフォルトは未指定
- @sile
- [ADD] Sora.create_connection() メソッドに音声・映像の有効無効を指定するための引数を追加する
audio
およびvideo
引数- デフォルトはどちらも
true
- [UPDATE] Sora::ConvertDataChannels() の実装をリファクタリング
- @sile
- [ADD] データチャネルを使ったサンプルを追加する
- 以下の三つを追加:
- test/messaging_readonly.py
- test/messaging_sendonly.py
- test/messaging_sendrecv.py
- @sile
- 以下の三つを追加:
- [CHANGE]
SoraConnection.on_message()
コールバックの第二引数の方をstr
からbytes
に変更する- 文字列以外の任意のバイト列が送受信可能なため
- @sile
- [ADD]
SoraConnection
クラスにsend_data_channel(label: str, data: bytes)
メソッドを追加する- データチャネル経由でメッセージを送信するためのメソッド
- 使用するためには
Sora.create_connection()
で以下のオプションを指定する必要がある:data_channel_signaling=True
data_channels=[{"label": ..., "direction": ..., ...}, ...]
- なお
create_connection()
の後、SoraConnection.on_data_channel(label: str)
コールバックが呼び出されるまでは、該当ラベルに対するメッセージ送信は行えないので注意が必要 - @sile
- [ADD]
Sora.create_connection()
メソッドにデータチャネル関連の引数を追加する- 追加したのは以下の引数:
data_channels
data_channel_signaling
ignore_disconnect_websocket
- @sile
- 追加したのは以下の引数:
- [ADD] PyPI に登録する GitHub Actions を追加する
- @melpon
- [ADD] rye を使ってビルドとパッケージングが出来るようにする
- @melpon
- [ADD] nanobind を利用して Sora C++ SDK ベースの Python SDK を追加する
- @tnoho