- CHANGE
- 後方互換性のない変更
- UPDATE
- 後方互換性がある変更
- ADD
- 後方互換性がある追加
- FIX
- バグ修正
- [CHANGE]
client_cert
とclient_key
の指定にはパスではなく中身の文字列を指定するようにする- C++ SDK 側の仕様変更に追従する
- @voluntas
- [CHANGE]
ca_cert
,client_cert
,client_key
の指定にはstr
ではなくbytes
を使うようにする- @tnoho
- [ADD]
send_message()
を追加するon_message()
と合わせるsend_data_channel()
のシンタックスシュガー- @voluntas
- [ADD] WebRTC Encoded Transform に対応する
SoraTransformableAudioFrame
とSoraTransformableVideoFrame
を追加SoraAudioFrameTransformer
とSoraVideoFrameTransformer
を追加create_connection()
の引数にaudio_frame_transformer
とvideo_frame_transformer
を追加SoraMediaTrack
にset_frame_transformer()
を追加- @tnoho
- [ADD] 転送フィルターを複数指定できるようにする
Sora.create_connection()
の引数にforwarding_filter
を追加する- @voluntas
- [ADD] サーバー証明書チェック用の CA 証明書を指定できるようにする
Sora.create_connection()
の引数にca_cert
を追加する- @voluntas
- [ADD] Python 3.13 に対応する
- @voluntas
- [ADD]
on_ws_close
コールバックを追加する- @tnoho
- [ADD]
on_signaling_message
コールバックを追加する- @tnoho
- [ADD] Ubuntu 24.04 armv8 に対応する
- @melpon
- [ADD]
on_ws_close
コールバックを追加する- @tnoho
- [ADD]
Sora.create_connection()
の引数にaudio_opus_params
を追加する- @melpon
- [ADD] data_channels の要素に
header
を指定可能にする- @melpon
- [ADD] Encoded Transform に対応する
- @tnoho
- [UPDATE] nanobind を
2.2.0
に上げる- @voluntas
- [UPDATE] Sora C++ SDK のバージョンを
2024.8.0
に上げる- WEBRTC_BUILD_VERSION を
m129.6668.1.1
に上げる- libwebrtc のモジュール分割に追従するため rtc::CreateRandomString のヘッダを追加
- CMAKE_VERSION を
3.30.5
に上げる - BOOST_VERSION を
1.86.0
に上げる - OPENH264_VERSION を
v2.5.0
に上げる - @torikizi @voluntas
- WEBRTC_BUILD_VERSION を
- [ADD] canary.py を追加
- @voluntas
- [ADD] Python 3.13 を E2E テストに追加する
- @voluntas
- [ADD] macos-15 を E2E テストに追加する
- @voluntas
- [CHANGE] ruff と mypy と pytest はバージョンを未指定にして、常に最新版を利用するようにする
- @voluntas
- [CHANGE] 利用していなかった auditwheel を削除する
- @voluntas
- [CHANGE] examples を https://github.com/shiguredo/sora-python-sdk-examples に移動する
- @voluntas
- [CHANGE] rye から uv に変更する
- @voluntas
- [CHANGE] サンプルアプリの src ディレクトリ構成を変更する
- @voluntas
- [CHANGE] サンプルアプリの E2E テストを一旦削除する
- @voluntas
- [ADD] tests/ に E2E テストを追加する
- @voluntas
- [FIX] run.py で local_sora_cpp_sdk_dir を設定した際に boost が引けなくなってしまっている問題を修正する
- @tnoho
- [FIX] examples の設定に virtual = true を指定するようにする
- これを指定しないとエラーになる
- @voluntas
- [ADD] examples に E2E テストを追加する
- @voluntas
リリース日: 2024-08-05
- [CHANGE] Jetson 5 の対応を削除
- 以降は support/jetson-jetpack-6 ブランチで Jetson 6 のみの対応となる
- @melpon
- [CHANGE] run.py の実行にターゲットの指定を必須にする
- @melpon
- [UPDATE] 対応 Python バージョンの 3.8 と 3.9 のサポートを終了する
- 対応 Ubuntu の最小である 22.04 が Python 3.10 なのでそれに合わせる
- @voluntas
- [UPDATE] Sora C++ SDK のバージョンを
2024.7.0
に上げる- @voluntas
- [UPDATE] nanobind を
2.0.0
に上げて固定する- @melpon
- [UPDATE] cmake のバージョンを
3.29.6
に上げる- @voluntas
- [UPDATE] libwebrtc のバージョンを
m127.6533.1.1
に上げる- rtc::TaskQueue が廃止され、webrtc::TaskQueueBase を直接利用する方式変更に追従した
- @voluntas
- [UPDATE] run.py を buildbase 化する
- @melpon
- [UPDATE] Github Actions の Windows ビルドで Rye を利用する
- @voluntas
- [UPDATE] GitHub Actions で pyi 生成用の Ubuntu を 24.04 に上げる
- @voluntas
- [UPDATE] Github Actions のビルドで windows-2022 を利用する
- Sora CPP SDK 2024.7.0 (libwebrtc m127) から windows-2022 でビルドする
- @miosakuma
- [ADD] run.py の対応プラットフォームに ubuntu-24.04_x86_64 を追加する
- @voluntas
- [ADD] Github Actions の対応プラットフォームに ubuntu-24.04_x86_64 と macos-14_arm64 を追加する
- @voluntas
- [ADD] Github Actions でビルドに成功したら Slack へ通知するようにする
- @voluntas
- [ADD] sora_sdk に型を付ける
- @melpon
- [ADD] Sora C++ SDK と libwebrtc のローカルビルドを利用可能にする
- @melpon
- [ADD] SoraConnection に get_stats 関数を追加
- @melpon
- [FIX] SoraAudioSink.read が timeout を無視して失敗を返すケースがあったので修正する
- @enm10k
- [FIX] SoraAudioSink.read が timeout を無視するケースがある問題を修正した結果、
read の実行タイミングによってはクラッシュするようになったので修正する
- @enm10k
- [FIX] MSVC の内部コンパイラエラーによって Windows で nanobind のビルドが出来ないのを修正する
- @melpon
日時: 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.85.0
に上げる - @enm10k @melpon
- 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