- CHANGE
- 下位互換のない変更
- ADD
- 下位互換がある追加
- UPDATE
- 下位互換がある変更
- FIX
- バグ修正
- [FIX] Intel VPL の AV1 デコーダーが非対応と誤判定されて起動に失敗するのを修正する
- AV1 の照会に
CodecProfileを設定していなかったため、プロファイル未指定の照会を拒否する VPL 実装で AV1 デコーダーが利用できないと判定されていた - sumomo は
SoraClientContext::Create()が失敗した場合にエラーログと非ゼロの終了コードで終了するようにする - @melpon
- AV1 の照会に
- [CHANGE] Windows のビルドを MSVC から libwebrtc と同じ clang-cl + libc++ に変更する
- コンパイラは libwebrtc が利用するのと同じリビジョンの clang-cl (Clang 24)、標準ライブラリは libc++、CRT は静的 (
/MT) になる - ジェネレーターは Visual Studio から Ninja に変更し、Ninja は
_install/<platform>/<config>/ninja/ninja.exeに自動でダウンロードされる - ビルド生成物の
Release/サブディレクトリが無くなる (_build/windows_x86_64/release/sumomo/Release/sumomo.exeから_build/windows_x86_64/release/sumomo/sumomo.exeになる) - ジェネレーターが変わるため、既存の
_build/<platform>/<config>は削除してからビルドする必要がある - Visual Studio は MSVC のヘッダー、Windows SDK、
rc.exe/mt.exe、llvm-lib.exeのために引き続き必要だが、コンパイラとしては使わない - CUDA (NVCODEC) は維持し、nvcc の代わりに clang-cl で CUDA のソースを直接コンパイルする
- VPL / Blend2D / Boost / Catch2 も clang-cl + libc++ (静的 CRT) でビルドし、Boost は ABI を揃えるため libc++ 版を利用する
- SDL3 は C ライブラリのため libc++ は利用せず、clang-cl と静的 CRT でビルドする
- Windows 向けのアプリケーションも clang-cl + libc++ でビルドする必要がある
- @melpon
- コンパイラは libwebrtc が利用するのと同じリビジョンの clang-cl (Clang 24)、標準ライブラリは libc++、CRT は静的 (
- [CHANGE] エンコーダ/デコーダを生成するコールバックで
webrtc::Environmentを受け取るようにするVideoEncoderConfig/VideoDecoderConfig/SoraVideoCodecFactoryConfigのcreate_video_encoderとcreate_video_decoder、およびCreateOpenH264VideoEncoder()の引数にconst webrtc::Environment&を追加するSoraClientContextConfig::field_trialsで指定したフィールドトライアルがエンコーダ/デコーダにも伝わるようにする- @melpon
- [ADD] adaptivePtime を SDK オプションで音声トラックに適用できるようにする
- @melpon
- [ADD]
SoraClientContextConfigに libwebrtc のフィールドトライアルを指定するfield_trialsを追加する- 空文字の場合は libwebrtc の既定動作になり、不正な文字列の場合は
SoraClientContext::Create()がnullptrを返す - ADM と
ConnectionContextとPeerConnectionFactoryに同じwebrtc::Environmentを渡すようにする - @melpon
- 空文字の場合は libwebrtc の既定動作になり、不正な文字列の場合は
- [ADD] offer の encodings の priority と networkPriority を
webrtc::RtpEncodingParametersに反映する- priority は
bitrate_priority、networkPriority はnetwork_priorityに反映する - 4 値 (
very-low/low/medium/high) 以外の値の場合は警告ログを出力し、そのフィールドは変更しない - @melpon
- priority は
- [ADD] sumomo に
--screen-captureオプションを追加する- 一覧の先頭の画面をキャプチャし、マウスカーソルを合成して
--resolutionに収まるよう縮小した映像を配信する - Windows x86_64 / macOS arm64 / Ubuntu 22.04・24.04・26.04 x86_64 で利用でき、それ以外のプラットフォームでは指定するとエラーになる
- @melpon
- 一覧の先頭の画面をキャプチャし、マウスカーソルを合成して
- [ADD]
SoraSignaling::SendRpc()を追加する- JSON-RPC 2.0 のリクエストを
rpcラベルで送信する。idとparamsは省略でき、paramsに Object でも Array でもない値を指定した場合は送信しない - レスポンスは
SoraSignalingObserver::OnRpc()に通知される - @melpon
- JSON-RPC 2.0 のリクエストを
- [UPDATE] Raspberry Pi OS 向けビルドを libcamera 0.8.0 に追従する
- libcamera の soname が
libcamera.so.0.7からlibcamera.so.0.8に変わるため、libcamerac.soを利用する Raspberry Pi のアプリケーションは libcamera 0.8 系 (libcamera0.8) が入った端末で動かす必要がある - sysroot は設定を変えない限り再利用されるため、
python3 run.py build raspberry-pi-os_armv8 --rootfs-fetch-forceで sysroot を作り直す必要がある - @Hexa
- libcamera の soname が
- [UPDATE] libwebrtc のバージョンを m157.8103.0.0 に上げる
- @voluntas
- [UPDATE] libwebrtc のバージョンを m155.8059.4.1 に上げる
- @voluntas
- [UPDATE] libwebrtc のバージョンを m155.8059.1.1 に上げる
- Chromium の clang が Android 向けの compiler-rt builtins を同梱しなくなったため、NDK が持つ builtins を Chromium clang にコピーするようにする
- @voluntas
- [UPDATE] libwebrtc のバージョンを m154.8037.1.2 に上げる
api:field_trialsが含まれるようになり、webrtc::FieldTrials::Createを利用できるようになった- @melpon
- [UPDATE] libwebrtc のバージョンを m154.8037.1.1 に上げる
- @voluntas
- [UPDATE] libwebrtc のバージョンを m154.8037.0.0 に上げる
- @voluntas
- [UPDATE] libwebrtc のバージョンを m153.8010.0.0 に上げる
- m153 の webrtc.jar が Java 25 (class file 69) でビルドされているため、test/android の AGP を 8.13.2 に上げ、Java 25 対応の R8 9.2.26 を明示指定する
- @voluntas
- [UPDATE] libwebrtc のバージョンを m152.7977.0.2 に上げる
- m152 で
rtc_media_baseビルドターゲットが削除されたことに伴い、media/baseからapi/videoへ移動したヘッダの include パスを更新するinclude/sora/scalable_track_source.h/src/scalable_track_source.cpp/test/base_renderer.cpp:adapted_video_track_source.hsrc/v4l2/v4l2_device.cpp/src/v4l2/v4l2_video_capturer.cpp:video_common.h
- @torikizi
- m152 で
- [UPDATE] libwebrtc のバージョンを m151.7922.0.0 に上げる
- Android のテストで WebRTC の JNI Zero シンボルを保持する
- libwebrtc の JNI エクスポート形式が従来の
Java_org_webrtc_から JNI Zero のJava_J_N_形式へ変わったため、run.py のシンボル保持対象にJava_J_N_を追加する
- libwebrtc の JNI エクスポート形式が従来の
- @torikizi
- Android のテストで WebRTC の JNI Zero シンボルを保持する
- [FIX] DataChannel が閉じられた際にクライアントが切断されない問題を修正する
- offer の
data_channelsに含まれる DataChannel が接続中に閉じられた場合、SoraSignalingErrorCode::DATACHANNEL_CLOSEDでOnDisconnectを通知する - サーバからの
{"type":"close"}によるグレースフルシャットダウンと、クライアント起点の切断処理とは競合しない - @melpon
- offer の
- [FIX]
SendDataChannel()で Sora が管理するラベルへ送信できてしまう問題を修正する- 送信できるのは
#で始まるユーザー定義ラベルだけにし、Sora が管理するラベル (signaling/stats/notify/push/rpc) と offer に含まれないラベルへの送信はfalseを返すようにする DataChannel::Send()の結果を戻り値に反映し、開いていないラベルへの送信もfalseを返すようにする- @melpon
- 送信できるのは
- [FIX] 接続の終了処理の後に WebSocket の read が成功して完了すると null の
ws_を参照してクラッシュする問題を修正する- 接続の終了処理で
ws_を解放した後も保留中の read は成功として完了しうるため、SoraSignaling::OnReadとSoraSignaling::DoReadで read を再開しないようにする State::Closingでは切断の完了を read のエラーで検知するため read を続ける- @voluntas
- 接続の終了処理で
- [FIX] Raspberry Pi OS のビルドが libcamera の
std::spanで失敗するのを修正する- libcamera 0.7.2+rpt20261009 で独自の C++11 版
libcamera::Spanが削除されstd::spanを直接使うようになり、C++17 ではコンパイルできなくなっていた cameracターゲットの C++ 標準を C++20 に上げる- @melpon
- libcamera 0.7.2+rpt20261009 で独自の C++11 版
- [UPDATE] テストとサンプルのログ初期化を deprecated な
webrtc::LogMessage::LogThreads()からwebrtc::InitializeLogging()に移行するwebrtc::LoggingConfigでログレベル・タイムスタンプ・スレッド名をまとめて設定し、ログの出力内容は変えない- hello は設定ファイルの
log_levelを反映してから初期化するよう、初期化の位置を設定ファイルの読み込み後に移す - @melpon
- [FIX] base_renderer テストが描画前の初期状態を成功と判定して間欠的に失敗するのを修正する
- 描画前に空の矩形を期待する待機が成功していたため、描画が 1 回行われるまで待機の条件を評価しないようにした
- 極小な枠のケースから固定時間の待機を削除した
- @melpon
- [FIX] base_renderer テストが Debug ビルドで abort するのを修正する
TrackFixtureがwebrtc::VideoTrackを signaling スレッド以外で作成していたため、RTC_DCHECK_RUN_ON(&signaling_thread_)で失敗していたVideoTrackProxyで包んだトラックをBaseRendererに渡し、Sink の追加・削除とトラックの破棄を proxy に振り分けさせる- @melpon
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m157.8103.0.0 にあげる
- @voluntas
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m155.8059.4.1 にあげる
- @voluntas
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m155.8059.1.1 にあげる
- @voluntas
- [UPDATE] fake_video_capturer の
M_PIをstd::numbers::piに置き換えるM_PIは C の標準ではなく Windows では_USE_MATH_DEFINESの定義が必要なため、C++20 のstd::numbers::piを利用する- @melpon
- [UPDATE] sdl_sample の SDL レンダラーを BaseRenderer に統合する
- 独自の枠割りロジックを削除し、実測アスペクトの採用・共通縮小・中央寄せを sumomo と共通化する
- @melpon
- [ADD] BaseRenderer の枠割り計算 (複数 Sink のグリッド配置) のユニットテストを追加する
- 16:9 / 4:3 / 2x2 グリッド / 縦長ウィンドウ / 極小ウィンドウの各ケースで、cols/rows の決定、セル座標の累積式、ウィンドウ中央寄せを検証する
- @voluntas
- [UPDATE] BaseRenderer の未使用フィールドを削除する
Sink::renderer_とBaseRenderer::rows_/cols_は読み出し箇所のない write-only フィールドのため削除する- @melpon
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m154.8037.1.2 にあげる
- @melpon
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m154.8037.1.1 にあげる
- @voluntas
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m154.8037.0.0 にあげる
- @voluntas
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m153.8010.0.0 にあげる
- @voluntas
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m152.7977.0.2 にあげる
- @torikizi
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m151.7922.0.0 にあげる
- @torikizi
- [UPDATE] SoraClientContext の worker thread に network thread を使う
- 専用 worker thread の生成を削除し、
PeerConnectionFactoryDependencies::worker_threadに network thread を渡す - ADM の生成、MediaEngineReference の生成・破棄、オーディオデバイスの設定を network thread 上で実行する
- @melpon
- 専用 worker thread の生成を削除し、
- [FIX] E2E テストのポート割り当てが Windows の除外ポート範囲と衝突するのを修正する
- 候補ポートが bind 可能かを確認してから払い出し、動的ポート範囲外から探すようにする
- @melpon
- [FIX] Raspberry Pi の V4L2 M2M エンコーダでフレームのペアリングがズレると復帰不能になるのを修正する
V4L2Runner::EnqueueがVIDIOC_QBUFの後にコールバックを登録していたため、デバイスが先に capture バッファを出力すると、以降の全フレームが 1 つズレたままタイムスタンプ不一致で捨てられ続けていたVIDIOC_QBUFより先にコールバックを登録し、投入に失敗した場合は登録を取り消すようにする- capture バッファのタイムスタンプと投入した output バッファのタイムスタンプを照合し、ズレを検知したら登録を破棄して復帰できるようにする
- 出力バッファの投入に失敗した場合は、確保済みのバッファを再利用可能に戻す
- @melpon
リリース日: 2026-09-29
- [FIX]
RTC_LOGに暗黙変換が必要な文字列を渡すと SIGABRT する問題を修正するWebsocket::OnCloseがboost::beast::static_stringをそのまま渡していたため、absl::string_viewへの暗黙変換で作られた一時オブジェクトを libwebrtc のログが破棄後に参照していた- AMF のエンコーダ/デコーダが
amf::amf_stringをそのまま渡していた箇所も同じ問題のためc_str()を経由するようにする - @melpon
リリース日: 2026-08-18
- [FIX] 切断処理のタイマーが解放済みの WebSocket に対して Cancel() を呼び SIGSEGV でクラッシュするのを修正する
- DataChannel シグナリング利用時の切断で、WebSocket close の完了が DataChannel の close 通知より先に処理されると、
Clear()でws_が null になった後に切断タイムアウトのタイマーがws_へCancel()を呼んでクラッシュしていた - 切断開始時点の
Websocketを各ハンドラに捕捉させてCancel()を呼ぶようにする - あわせて
Websocket::Cancel()にソケット未生成時の null ガードを追加する - @voluntas
- DataChannel シグナリング利用時の切断で、WebSocket close の完了が DataChannel の close 通知より先に処理されると、
リリース日: 2026-08-14
- [CHANGE] multistrap を廃止し apt-get + dpkg-deb による sysroot 構築に置き換える
- 本体およびサンプルの multistrap 設定を廃止し、JSON 形式の sysroot 設定に置き換える
- リポジトリを HTTPS に統一し、GPG
signed_byによる認証済み取得に切り替える - 旧 sysroot 生成関数を廃止し、APT ベースの sysroot 生成モジュールを経由する方式に置き換える
- 本体ビルドスクリプトから Jetson 系ターゲットの到達不能な分岐を削除する
- manifest 不一致時に sysroot を明示的に再生成するオプションを追加する
- CI ランナーへの
multistrapおよび sed パッチのインストールを削除し、debian-archive-keyringの明示 install を追加する - @voluntas
- [CHANGE]
SoraClientContextにConnectionContext::MediaEngineReferenceを保持し、PeerConnection作成時の遅延 Init により指定オーディオデバイスがデフォルトに戻っていた問題を修正するSoraClientContextの ABI を変更する- 非 Android / iOS では
SoraClientContext::Create()内で同期的にWebRtcVoiceEngine::Init()を実行させ、指定デバイス設定後にInitMicrophone()/InitSpeaker()を行う - Android / iOS では
media_engine_ref_を作成せず、既存挙動に影響しない - @voluntas
- [CHANGE] NVIDIA Pascal 世代以前の GPU サポートを廃止する
- CUDA 13 で Maxwell / Pascal / Volta (sm_50 〜 sm_70) のサポートが廃止されたため、CUDA カーネルのターゲットを
sm_60からsm_75(Turing) 以降に変更する - GTX 10 シリーズ (GTX 1060 / 1080 など) では NVIDIA ハードウェアエンコーダー / デコーダーが利用できなくなる
- @voluntas
- CUDA 13 で Maxwell / Pascal / Volta (sm_50 〜 sm_70) のサポートが廃止されたため、CUDA カーネルのターゲットを
- [CHANGE] E2E テストの Python 要件を 3.14 以上に引き上げる
- @voluntas
- [CHANGE] TLS 検証の信頼ストアを OS のシステム CA に切り替える
- 全 OS(macOS, Linux, Windows, iOS, Android)でシステム CA を信頼の根拠とする方式に統一する
- 独自 CA が必要な場合は全プラットフォーム共通で
SoraSignalingConfig::ca_certに PEM を明示指定する - macOS: Sonoma (14.x) 以降が対象、Keychain の Admin / User ドメインの trust settings と MDM Configuration Profile で配布された CA は反映されない
- Linux: Ubuntu 22.04 / 24.04、Raspberry Pi OS bookworm 以降が対象、前提を満たさない環境では
ca_cert指定が必要 - Windows: Windows 10 以降が対象、
ROOTストアに必要なルート CA がない環境ではca_cert指定が必要 - iOS: iOS 14 以降が対象、sandbox 制約により
SecTrustEvaluateWithErrorに検証委譲する方式で実装SecTrustEvaluateWithErrorの利用に伴い iOS アプリのビルド時に Security.framework の追加が必要になる
- Android: Android 10 以降が対象、Conscrypt Mainline module 経由の CA ストアと AOSP 標準パスの両方を読み込む
- 内部フリー関数
sora::LoadSystemSSLRootCertificatesを共通差し込み口とし、ca_cert未指定時の信頼ストア構築を集約する - 旧ハードコード PEM(isrg_root / lets_encrypt_r3)と WebRTC
rtc_base/ssl_roots.h依存を完全に撤廃する - sumomo の E2E テストで TLS 検証のシステム CA 経由・
ca_cert指定・insecureモードの挙動を検証するテストを追加する - @melpon
- [ADD] Ubuntu 26.04 ARM64 向けの sysroot とビルドターゲットを追加する
- @voluntas
- [ADD] Ubuntu 26.04 x86_64 向けのビルドターゲットを追加する
- @voluntas
- [ADD] sumomo の E2E テストで
--audio-recording-deviceを複数の音声録音デバイスに対して個別に検証するテストを追加する- @melpon
- [ADD] sumomo の E2E テストで録音デバイス未指定時・無効指定時の挙動を検証するテストを追加する
- @voluntas
- [ADD] sumomo の E2E テストヘルパーに
capture_stderrオプションを追加する- 標準エラー出力をキャプチャしてテストから検証できるようにする
- @voluntas
- [ADD] sumomo の E2E テストで
--audio-playout-deviceを複数の音声再生デバイスに対して個別に検証するテストを追加する- @voluntas
- [ADD] TURN-TLS のクライアント証明書設定に対応する
SoraSignalingConfigのclient_cert/client_keyを TURN-TLS にも適用する- @zztkm
- [UPDATE] E2E テストの開発依存ライブラリを最新版に更新する
- @voluntas
- [UPDATE] libwebrtc のバージョンを m150.7871.3.1 に上げる
webrtc::RtcEventLogFactoryのコンストラクタ不一致を修正する- libwebrtc で
RtcEventLogFactoryのTaskQueueFactoryが削除されたため、変更に追従する - 参考 : libwebrtc で削除の入ったコミットのリンク
- libwebrtc で
- libwebrtc m146 追従に伴うハードウェアエンコーダーのエラーハンドリングを修正する
- 切断中に
OnEncodedImage()のコールバックエラーにより abort することがある問題に対応する OnEncodedImage()のコールバックエラーではエラーを返さず、LS_WARNINGのログ出力のみに変更する- 参考 : 追従する libwebrtc のコミットのリンク
- 切断中に
- MakeVal の stringstream フォールバック削除に対応する
- libwebrtc m150 で
rtc::MakeValの stringstream フォールバックが削除された - これにより
RTC_LOGにboost::system::error_codeやboost::asio::ip::tcp::endpointを直接渡せなくなった RTC_LOGはstd::stringなら直接扱えるため、std::stringに文字列化してから渡すよう修正したboost::system::error_codeはto_string()で文字列化してから渡すboost::asio::ip::tcp::endpointはstd::ostringstreamで文字列化してから渡す
- 対象ファイル:
src/sora_signaling.cpp、src/websocket.cpp - 参考 : https://webrtc-review.googlesource.com/c/src/+/469260
- libwebrtc m150 で
- @torikizi @zztkm
- [UPDATE] cmake のバージョンを 4.4.2 に上げる
- @voluntas
- [UPDATE] Catch2 のバージョンを v3.15.3 に上げる
- @voluntas
- [UPDATE] AMD AMF のバージョンを v1.5.2 に上げる
- @voluntas
- [UPDATE] Boost のバージョンを 1.91.0 に上げる
- CMakeLists.txt の macOS ビルドと iOS ビルドの
target_compile_definitionsに PUBLIC でBOOST_ASIO_DISABLE_STD_ATOMIC_WAITを追加する- boost 1.91.0 で asio の
kqueue_reactor内部 mutex がatomic_slim_mutex(std::atomic::wait/notify_oneを利用) に切り替わったが、 webrtc-build 同梱の libc++ + macOS の組み合わせで kevent から完了通知が届かず async_connect がハングする現象を確認した - 旧来の pthread ベース mutex 実装に戻すことで回避する
- IPHONEOS_DEPLOYMENT_TARGET が iOS 17.4 以上の場合に発生する問題であり 14.0 でビルドしているため影響はないが、今後バージョンを上げた際の問題を回避するため macOS ビルドと同様に修正する
- boost 1.91.0 で asio の
- @voluntas @torikizi
- CMakeLists.txt の macOS ビルドと iOS ビルドの
- [UPDATE] Boost のバージョンを 1.92.0 に上げる
- @voluntas
- [UPDATE] Intel VPL を v2.17.0 にあげる
- @torikizi
- [UPDATE] CUDA のバージョンを
13.3.1-1に上げる- Ubuntu 26.04 の CUDA リポジトリが
13.3.0/13.3.1のみのため、全プラットフォームを揃える - Windows では CUDA 13 で分離された
cuda_crtもインストール対象に含める - Windows では CUDA 13 で
cicc(nvvm) がlibnvvmに分離されたため、これもインストール対象に含める - CUDA 13 で
cuCtxCreateがcuCtxCreate_v4(4 引数) に変わったため、呼び出しを新しいシグネチャに追従する - @voluntas
- Ubuntu 26.04 の CUDA リポジトリが
- [UPDATE] clang のバージョンを 22 に上げる
- CUDA 13.3 を clang でコンパイルするために必要
- @voluntas
- [UPDATE] WSS / TURN-TLS のクライアント証明書設定で証明書チェーンを利用できるようにする
SoraSignalingConfigのclient_certはこれまで単体の証明書が前提になっていたが、証明書チェーンを指定できるようにする- @zztkm
- [UPDATE] 内部コードのリファクタリングを行う
- インクルードガードの命名規則を統一する
- 非標準の
__FUNCTION__をやめて標準の__func__に統一する - シグナリング処理の似たような処理をヘルパー関数化してコードを簡潔にする
RtpTransceiverInterfaceの検索処理をヘルパー関数化してコードを簡潔にする- 不要なコード、不要なロック、変数、include、空のプリプロセッサブロック、誤字を整理する
SoraAudioManagerBaseから不要なrunningフラグを削除する- AMF エンコーダ/デコーダで AMF_RESULT を WebRTC エラーコードとして返していたのを修正する
- AMF エンコーダで入力キューがフルの時に OK を返していたのを修正する
- @melpon
- [UPDATE] Boost で deadline_timer が deprecated になったので、代わりに steady_timer を利用する
- @melpon
- [UPDATE] BitrateAdjuster の2引数コンストラクタが deprecated になったので、代わりに3引数コンストラクタを利用する
- @melpon
- [UPDATE] BOOST_ASIO_ENABLE_VERSION_NAMESPACE を有効化する
- Unity Editor 6000.3 がエクスポートする
asio_detail_posix_thread_functionと Boost.Asio の同名のextern "C"関数が衝突し、 Sora インスタンス破棄時に SIGSEGV が発生する問題を修正する BOOST_ASIO_ENABLE_VERSION_NAMESPACEを有効化し、BOOST_ASIO_VERSIONED_NAMEで生成される関数名にバージョン識別子を付加することで シンボル名を変えて衝突を回避する- 本問題は sora-cpp-sdk を Boost 1.91 にアップグレードした際に
boost_asio_detail_posix_thread_functionからasio_detail_posix_thread_functionへの関数名変更がトリガーとなり顕在化した - 本問題は macOS で発見したが、
BOOST_ASIO_ENABLE_VERSION_NAMESPACEは 全プラットフォームで有効化する - @torikizi
- Unity Editor 6000.3 がエクスポートする
- [UPDATE] BOOST_ASIO_ENABLE_VERSION_NAMESPACE 有効時に Boost.Beast 1.91 の
basic_stream.hpp にある boost::asio::ssl::stream の前方宣言が
inline namespace に対応しておらずビルドエラーが発生する問題を修正する
- basic_stream.hpp の前方宣言を
BOOST_ASIO_INLINE_NAMESPACE_BEGIN/BOOST_ASIO_INLINE_NAMESPACE_ENDで ラップするパッチを buildbase.py に追加する - 参考: Boost.Asio 1.91 で BOOST_ASIO_ENABLE_VERSION_NAMESPACE による
inline namespace のバイナリバージョニングが
追加されたが、前方宣言を壊す可能性があるためデフォルト無効とされている
該当記載のある boost のドキュメント :
Added optional binary versioning using an inline namespace. ... The inline namespace is disabled by default to avoid breaking existing code that forward declares Asio names - @torikizi
- basic_stream.hpp の前方宣言を
- [FIX] VideoEncoder がフレームドロップを OnFrameDropped() で通知しない問題を修正する
- libwebrtc が要求するフレームドロップ通知とテンポラルユニット境界の設定が独自エンコーダーで行われていなかったのを修正する
- OpenH264 エンコーダーは参照実装 (libwebrtc の h264_encoder_impl) に合わせ、送信レイヤー数の事前集計で最後のレイヤーに
set_end_of_temporal_unitを設定し、エンコーダー内部のフレームスキップ時にOnFrameDropped()を呼ぶようにする - NvCodec / VPL / AMF / V4L2 の HWA エンコーダーは送信フレームに
set_end_of_temporal_unit(true)を設定する - NvCodec / VPL / AMF の AV1 SVC は
layer_frames.empty()経路のフレームドロップをOnFrameDropped()で通知する - 参考 : libwebrtc で
OnFrameDropped()が追加されたコミットのリンク - @torikizi
- [FIX] BaseRenderer がフルスクリーン時に映像を枠の寸法まで拡大しない問題を修正する
- 枠が入力映像より大きい場合も枠の寸法に合わせて拡大して描画する
- @voluntas
- [FIX] BaseRenderer の枠割りが回転映像のアスペクトを考慮しない問題を修正する
- 回転 90° / 270° の映像を回転後寸法基準で枠割りし、拡大縮小と回転を単一経路で適用する
- @voluntas
- [FIX] BaseRenderer の枠情報のデータレースを修正する
- 枠の未確定チェックと枠位置・サイズの書き込みを
frame_params_lock_保護下で行う - @voluntas
- 枠の未確定チェックと枠位置・サイズの書き込みを
- [FIX] BaseRenderer の枠割りが映像アスペクトを無視して映像間に黒帯を広げる問題を修正する
- @voluntas
- [FIX] BaseRenderer の描画バッファがウィンドウリサイズ時に境界を超過する問題を修正する
- @voluntas
- [FIX] sumomo と sdl_sample で AddTrack の戻り値チェックを追加する
- @melpon
- [FIX] VPL デコーダ
InitVplでCreateDecoderの nullptr 戻り値未チェックを修正する- @voluntas
- [FIX] Linux で
--audio-recording-device/--audio-playout-deviceを指定しても正しく音声デバイスが認識されない問題を修正する- ADM の初期化 (
adm->Init()) が行われていないために Linux の PulseAudio/ALSA 実装でデバイス列挙に失敗していた - 空文字列のデバイス名を指定した場合や
configure_dependencies後に ADM がnullptrになった場合はCreate()を失敗させるようにする use_audio_device = false(ダミー ADM)時に無駄なRecordingIsAvailable()/PlayoutIsAvailable()の WARNING ログが出力されないようにする- iOS でも Android と同様に
RecordingDeviceName()/PlayoutDeviceName()を呼ばないようにする - @voluntas
- ADM の初期化 (
- [FIX] AMF デコーダの解像度変更時に
InitAMFの戻り値が無視されているのを修正する- @melpon
- [FIX] CI が VERSION ファイルから CUDA_VERSION を読み取ろうとするバグを修正する
- @melpon
- [FIX] カスタムエンジンが複数ある場合、
GetVideoCodecCapability()で重複したエンジンが返されるのを修正- @melpon
- [FIX]
#if USE_VPL_ENCODERと#if defined(USE_VPL_ENCODER)の不一致を修正する- @melpon
- [FIX] NvCodec エンコーダで
layer_framesが空のケースを考慮していなかったのを修正する- @melpon
- [FIX] VPL デコーダの
MaxLength二重加算を修正する- @melpon
- [FIX] Android で
ReleaseStringUTFCharsの呼び忘れを修正する- @melpon
- [FIX] V4L2 ランナーで
on_completes_が空の場合に capture buffer が再エンキューされないのを修正する- @melpon
- [FIX] libcamera キャプチャラで munmap していなかったのを修正する
- @melpon
- [FIX] AMF エンコーダ/デコーダのコールバック関数がロック無しで利用されていたのを修正する
- @melpon
- [FIX] VPL の
MFXVideoCORE_SyncOperationのタイムアウトが長すぎるのを修正する- @melpon
- [FIX] Android の
SoraAudioManagerBluetoothでstateToStringの出力が間違っていたのを修正する- @melpon
- [FIX]
SoraSignalingで接続タイムアウトの値にSoraSignalingConfig::websocket_connection_timeoutが使用されていなかったのを修正する- @melpon
- [FIX] SoraVideoDecoderFactory / SoraVideoEncoderFactory の formats_ 並行アクセスによる abort を修正する
- @melpon
- [FIX]
SSL_CTX_newの戻り値未チェックで null deref の可能性があるのを修正するCreateSSLContext()でSSL_CTX_new()が nullptr を返した場合にエラーログを出力し例外を送出するようにする- @melpon
- [FIX] include/sora/dyn/dyn.h の DYN_REGISTER マクロが exit(1) でプロセスを強制終了するのを修正する
- exit(1) を throw std::runtime_error に置き換える
- エラー情報を例外メッセージに含める
- std::cerr 出力を削除し の依存を除去する
- @melpon
- [FIX] webrtc::InitializeSSL() の戻り値が無視されているのを修正する
SoraClientContext::Create()でInitializeSSL()がfalseを返した場合にエラーログを出力しnullptrを返すようにする- @melpon
- [FIX] Disconnect が Redirecting 状態を処理せず DoInternalDisconnect の assert でクラッシュする問題を修正する
- @melpon
- [FIX] DoInternalDisconnect DC+WS パスで DC close 成功後に WS close が来ないと切断がハングするのを修正する
- @melpon
- [FIX] SendOnDisconnect にガードがなく OnDisconnect が二重通知される問題を修正する
- @melpon
- [CHANGE] GitHub Actions の Android ジョブのランナーを ubuntu-24.04 に変更する
- ubuntu-22.04 は 2026-09-17 に非推奨開始、2027-04-17 にサポート終了予定のため
- @t-miya
- [CHANGE] GitHub Actions の Android ジョブで android-actions/setup-android の利用をやめる
- Android SDK は GitHub-hosted runner にプリインストールされた SDK を利用する
- サードパーティ Action への依存を排除する
- @t-miya
- [CHANGE] GitHub Actions の Slack 通知を
shiguredo/github-actionsに置き換えるrtCamp/action-slack-notify@v2をshiguredo/github-actions/.github/actions/slack-notify@mainに置き換える- 通知ジョブの
runs-onをubuntu-slimに変更する - @miosakuma
- [ADD] test の iOS プロジェクトに Security.framework を追加する
- @torikizi
- [UPDATE] Examples の WEBRTC_BUILD_VERSION を m150.7871.3.1 にあげる
- @torikizi @zztkm
- [UPDATE] Examples の Boost のバージョンを 1.92.0 に上げる
- @voluntas
- [UPDATE] GitHub Actions の
macos-14をmacos-15に上げる- macos-14 を利用しているときに SDL3 のビルドエラーが発生するようになったが
macos-15に上げることでビルドエラーを解消できた - 発生したエラーは
/Applications/Xcode_15.4.app/.../Foundation.framework/Headers/NSObjCRuntime.h:615:74: error: unknown type name 'NSUInteger'のように Foundation 系ヘッダーが解決できない問題だった - @zztkm
- macos-14 を利用しているときに SDL3 のビルドエラーが発生するようになったが
- [UPDATE] Examples の cli11 のバージョンを v2.7.2 に上げる
- @voluntas
- [UPDATE] GitHub Actions の Homebrew/actions/setup-homebrew@master を Homebrew/actions/setup-homebrew@main に変更する
- 2026 年 6 月 10 日以降のリリースで
Homebrew/actions/setup-homebrewの master ブランチは無効化されるため、main ブランチを使用するように変更する - 参考: Homebrew/actions/setup-homebrew で、main ブランチへの移行を促す警告が表示されるようになったことを示すコミット
- @torikizi
- 2026 年 6 月 10 日以降のリリースで
- [UPDATE] Examples の cmake のバージョンを 4.4.2 に上げる
- @voluntas
- [UPDATE] E2E テストで
sumomoの標準出力と標準エラー出力を表示するようにする- @zztkm
- [UPDATE] test の iOS ビルドで C++ 20 を利用するようにアップデートする
- project.pbxproj の
CLANG_CXX_LANGUAGE_STANDARDをgnu++20に上げる - m148 で libwebrtc が C++ 標準の
std::spanを使用するようになり、std::spanが対応する C++ のバージョンまで上げる必要があるため - 参考 : C++ 日本語リファレンスの
std::spanのページ - @torikizi
- project.pbxproj の
- [UPDATE] Examples の SDL3 を 3.4.12 にあげる
- SDL3 3.4.0 で
SDL_X11_XTESTオプションが追加 (デフォルト ON) されたためbuildbase.pyに-DSDL_X11_XTEST=OFFを追加する- 指定しない場合、Linux ビルド環境で libXtst-dev がインストールされていないとビルドエラーになる
- 参考 : SDL_X11_XTEST が追加された SDL3 のコミット
- @torikizi
- SDL3 3.4.0 で
- [FIX] sumomo で
audio_sourceの null チェックを追加する- @melpon
- [FIX] messaging_recvonly_sample で
ec付け忘れを修正する- @melpon
- [FIX] VPL_CHECK_RESULT マクロが throw した例外が catch されずプロセスがクラッシュしうる問題を修正する
- @melpon
- [FIX] buildbase.py の get_macos_osver() が return を欠き None を返すのを修正する
- @melpon
リリース日: 2026-02-11
- [FIX] libcamera 0.7 で
Overwriting Request::controls() is not allowedエラーが発生する問題を修正するlibcamerac_ControlList_copyがoperator=で ControlList を丸ごと上書きしていたため、Request のinfoMapが置き換わり libcamera 0.7 の検証チェックに引っかかっていたoperator=の代わりにControlList::merge()を使い、Request のinfoMapを保持したまま個別のコントロール値だけをコピーするように修正- @voluntas
リリース日: 2026-02-10
- [FIX] Raspberry Pi OS 最新版の libcamera 0.7 に対応する
- @voluntas
リリース日: 2026-02-02
- [CHANGE] macOS x86_64 ターゲットを削除する
- @voluntas
- [UPDATE] libwebrtc のバージョンを m144.7559.2.1 に上げる
- @torikizi
- [UPDATE] CMake を 4.2.1 にあげる
- @torikizi
- [UPDATE] Intel VPL を v2.16.0 にあげる
- @torikizi
- [UPDATE] RTCSSLVerifier::Verify() を RTCSSLVerifier::VerifyChain() に変更する
- @zztkm
- [UPDATE] Examples の DEPS を更新する
- WEBRTC_BUILD_VERSION を m144.7559.2.1 にあげる
- CMake を 4.2.1 にあげる
- SDL を 3.2.28 にあげる
- test/CMakeLists.txt の set_target_properties で、全プラットフォームの CXX_STANDARD と C_STANDARD を 20 に統一する
- @torikizi
リリース日: 2025-12-05
- [FIX] Raspberry Pi OS 最新版の libcamera 0.6 に対応する
- @voluntas
リリース日: 2025-11-26
- [FIX] 正式採用を見送った
simulcast_rid_autoを削除する- @voluntas
リリース日: 2025-11-26
- [UPDATE] AMD AMF のバージョンを
v1.5.0にあげる- @voluntas
- [UPDATE] CUDA のバージョンを
12.9.1-1に上げる- CUDA コンパイルオプションに
D_ALLOW_UNSUPPORTED_LIBCPPを追加する - CUDA コンパイルオプションの
cuda-gpu-archをsm_35からsm_60に変更する- sm_60 は Pascal 世代の GPU からサポートされている
- sm_35 は Kepler 世代の GPU からサポートされているが、Kepler は CUDA 10 までのサポートとなるためドロップ
- sm_50 は Maxwell 世代の GPU からサポートされているが、Maxwell は CUDA 11 までのサポートとなるドロップ
- @voluntas
- CUDA コンパイルオプションに
- [CHANGE] enum の
kNvidiaVideoCodecSdkをkNvidiaVideoCodecに変更する- @voluntas
- [CHANGE] libwebrtc のバージョンを m143.7499.1.0 に上げる
- macOS, iOS が利用している clang, libc++ を Apple Clang のものから libwebrtc 管理下の Clang のものに変えたので破壊的変更となります
- libwebrtc m141 で
rtc_config.crypto_optionsの型が変更されたため、emplace()ではなく直接アクセスするよう修正 - Windows で
CreateWindowsCoreAudioAudioDeviceModuleがEnvironmentを受け取る API に変わったため、それに追従 - libwebrtc m142 の変更に追従し
PeerConnectionFactoryのコンストラクタにenvの引数を追加 - libwebrtc m142 の変更に追従し
ScopedJavaLocalRef<jobject>(env, obj)からScopedJavaLocalRef<jobject>::Adopt(env, obj)を使うように変更 - @melpon @torikizi @miosakuma
- [UPDATE] CMake を 4.1.3 にあげる
- @torikizi @voluntas
- [ADD]
raspberry-pi-os_armv8向けのビルドを追加- Momo からの移植
- V4L2 M2M のエンコーダ/デコーダに対応
- libcamera を使ったキャプチャラを追加
- @melpon
- [ADD]
sora::VideoCodecImplementationにkRaspiV4L2M2Mを追加- @melpon
- [ADD]
sora::CameraDeviceCapturerConfigにuse_libcamera,libcamera_native_frame_output,libcamera_controlsフィールドを追加- @melpon
- [ADD]
simulcast_request_ridに対応する- @voluntas
- [ADD]
simulcast_rid_autoに対応する- @voluntas
- [ADD]
llvm.shでインストールする LLVM のバージョンを DEPS ファイルから指定可能にする- @melpon
- [FIX] Windows でオーディオデバイスを指定しなかった場合に録音・再生が動作しないのを修正する
- @melpon
- [FIX] 接続直後にクラッシュすることがあったのを修正する
- 以下のシナリオでクラッシュすることがある
GetStats()取得のコールバックでws_->WriteText()を呼び出し書き込み開始 (非同期)- サーバーからの切断で
Clear()呼び出し(非同期) Clear()呼び出しでを完了してws_ = nullptrを設定してWebSocketオブジェクトを破棄ws_->WriteText()の書き込みが完了したが、WebSocketオブジェクトは既に破棄されているのでクラッシュ
- ラムダ式に
ws_を含めるようにすることで、まだ完了していない非同期操作がある場合、ws_ = nullptrの時点では破棄されないようにした - また、
GetStats()のコールバックを IO スレッドで実行していなかったせいでレースコンディションになる操作をしていたのを、ちゃんと IO スレッドで実行するようにした - @melpon
- 以下のシナリオでクラッシュすることがある
- [ADD] sumomo に
--list-devicesオプションを追加- 利用可能なオーディオ入力/出力デバイスとビデオデバイスを一覧表示して終了する
- @voluntas
- [ADD] examples の各サンプルに ubuntu-22.04_armv8 対応を追加する
- messaging_recvonly_sample, sdl_sample, sumomo の各サンプルに ubuntu-22.04_armv8 プラットフォームのビルド設定を追加
- multistrap/ubuntu-22.04_armv8.conf を追加
- @voluntas
- [ADD] sumomo に
--fake-capture-deviceオプションを追加- フェイクの音声と映像デバイスを使用してテストパターンと無音を生成する
- 実際に音声や映像を送信するかは
--audio/--videoオプションに依存する - @voluntas
- [ADD] GitHub Actions に sumomo を利用した E2E テストを実行する
e2e-test.ymlを追加- @voluntas
- [ADD] sumomo に
--use-libcamera,--use-libcamera-native,--libcamera-controlオプションを追加- @melpon
- [ADD] sumomo のエンコーダ/デコーダに指定できるエンジン名として
raspi_v4l2m2mを追加- @melpon
- [ADD] hello アプリに
use_sixel,sixel_width,sixel_height,use_ansi,ansi_width,ansi_heightを追加- @melpon
- [ADD] E2E テストを追加
- pytest を使用した sumomo の E2E テスト環境を構築
e2e-test/ディレクトリにテストケースとプロセス管理を追加- @voluntas
- [UPDATE] actions/download-artifact を v5 に上げる
- @miosakuma
- [UPDATE] examples/DEPS の CLI11 バージョンを v2.6.1 にあげる
- @torikizi
- [UPDATE] examples/DEPS の SDL バージョンを 3.2.24 にあげる
- @torikizi
- [FIX] sumomo で audio_device をデフォルト無効にしていたのを修正する
- @torikizi
- [FIX] android の hello アプリについて回転時やスクリーンサイズの変更時に Activity の再起動が行われないようにする
- AndroidManifest.xml の
android:configChangesに"orientation|screenSize|smallestScreenSize|screenLayout"を設定する - @miosakuma
- AndroidManifest.xml の
- [FIX] GitHub Actions の build.yml で CUDA パッケージを ubuntu のバージョンに合わせるようにする
- @voluntas
- [FIX] Raspberry Pi OS 向けのサンプルが artifact としてアップロードされていなかった問題を修正
- @voluntas
- [FIX] sumomo で
--audio falseの時はトラックを生成しないように修正する- @voluntas
リリース日: 2025-09-17
- [FIX] DataChannel の re-offer の時に SetDegradationPreference を読んでいなかった問題を修正
- @melpon
- [FIX] macOS でオートスケーラが効いていなかったのを修正する
sora::MacCapturerでキャプチャした時点のVideoFrameBuffer::TypeがkNativeだったため効いていなかったbuffer->ToI420()でkI420にすることでオートスケーラが効くようにする- @melpon
- [FIX] Ubuntu 環境のカメラで MJPEG より YUV が優先されてしまうのを修正
- @melpon
リリース日: 2025-09-12
- [CHANGE] macOS 12 用に無効化していた AVCaptureDeviceTypeExternal 利用を有効化
- Github Actions で macOS バージョン 12 までしか利用できなかった際にコメントアウトしていた処理を有効化した
- カメラデバイス取得は内部カメラと外部カメラに厳密化された
- @t-miya
- [CHANGE] VERSION ファイルと DEPS ファイルを分離する
- VERSION ファイルにはバージョン番号のみを格納する
- DEPS ファイルに依存関係のバージョン情報を移動する
- run.py に read_version_and_deps() 関数を追加して両ファイルを読み込む
- examples/VERSION を examples/DEPS に名前を変更する
- canary.py を新しい VERSION 形式と examples/DEPS に対応させる
- GitHub Actions の build.yml で source VERSION を source DEPS に変更する(CUDA_VERSION を使用するため)
- GitHub Actions の formatter.yml から source VERSION を削除する(環境変数を使用していないため)
- Android テストアプリの build.gradle で CMAKE_VERSION を DEPS ファイルから動的に読み込むように変更する
- @voluntas
- [CHANGE] ライブラリのヘッダーファイルとソースファイルで使用されている include を整理する
- 今まで間接的にインクルードされていたファイルが含まれなくなっている可能性があるので、破壊的変更になる
- @melpon
- [CHANGE] run.py のビルドをサブコマンド化する
- 今まで
python3 run.py ubuntu-24.04_x86_64でビルドしていたコマンドがpython3 run.py build ubuntu-24.04_x86_64となる - @melpon
- 今まで
- [CHANGE] FakeVideoCapturer を追加する
- 元々はテストや momo や zakuro で各自実装してあったのを、C++ SDK 本体の機能にした
- フォントへの依存が無いので Momo の実装をベースにしている
- これによって C++ SDK は Blend2D に依存するようになるため、プロジェクトによってはエラーになる可能性がある
- また、この過程で iOS 向けのライブラリビルドは Xcode を利用しないように修正した
- @melpon
- [UPDATE] Blend2D のダウンロードに時雨堂のミラー URL を使用するように変更する
- 公式サイトに負荷をかけないように https://oss-mirrors.shiguredo.jp/ を使用する
- @voluntas
- [UPDATE] libwebrtc を m139.7258.3.0 にあげる
- @miosakuma
- [UPDATE] CMake を 4.1.0 にあげる
- @torikizi
- [UPDATE] Boost を 1.89.0 にあげる
- @voluntas
- [UPDATE] blend2d のバージョンを 0.20.0 に上げる
- blend2d の API 変更への追従 : camelCase から snake_case へ移行
- 影響範囲:
src/capturer/fake_video_capturer.cppのみ - 変更内容(旧 → 新)の一例 :
image_.getData(&data);->image_.get_data(&data);ctx.setFillStyle(BLRgba32(0, 255, 255));->ctx.set_fill_style(BLRgba32(0, 255, 255));path.moveTo(sx + gap, sy);->path.move_to(sx + gap, sy);
- 変更対象外の API
ctx.end(),ctx.save(),ctx.restore()は単語なので変更なし
- 影響範囲:
- @torikizi
- blend2d の API 変更への追従 : camelCase から snake_case へ移行
- [ADD] Blend2D のダウンロード時に SHA256 ハッシュチェックを追加する
- DEPS ファイルに BLEND2D_SHA256_HASH を追加
- ダウンロードファイルの完全性を検証するようにする
- @voluntas
- [ADD] SixelRenderer と AnsiRenderer を追加する
- 元々は sumomo の機能の一部として実装してあったのを、C++ SDK 本体へと移動した
- @melpon
- [ADD] clang-include-cleaner や clang-format を実行するサブコマンドを追加する
python3 run.py iwyu ubuntu-24.04_x86_64python3 run.py format- なお iwyu を実行するには事前にビルドしておく必要がある
- @melpon
- [ADD] clang-include-cleaner や clang-format を GitHub Actions で実行し、差分があったらエラーにするワークフローを追加
- @melpon
- [ADD] Intel VPL の VP9 エンコーダを動くようにする
- @melpon
- [ADD] CPU アダプテーションの有効/無効を設定できるように
SoraSignalingConfigにcpu_adaptationフィールドを追加examples/sumomoで--cpu-adaptationオプションで指定可能- 未指定の場合は従来通り macOS のサイマルキャスト時のみ自動的に無効化される
- @voluntas
- [FIX] AMD AMF エンコーダーで H.265/AV1 のキーフレーム要求が正しく動作しない問題を修正
- H.264 用のプロパティをすべてのコーデックで使用していたため、H.265/AV1 でキーフレームが生成されなかった
- 各コーデック固有のプロパティを使用するように修正:
- H.264:
AMF_VIDEO_ENCODER_FORCE_PICTURE_TYPE - H.265:
AMF_VIDEO_ENCODER_HEVC_FORCE_PICTURE_TYPE - AV1:
AMF_VIDEO_ENCODER_AV1_FORCE_FRAME_TYPE
- H.264:
- @voluntas
- [FIX] Intel VPL の VP9 エンコーダーでキーフレーム要求が機能しない問題を修正
- VP9 では
MFX_FRAMETYPE_Iのみを設定するように修正 MFX_FRAMETYPE_REFやMFX_FRAMETYPE_IDRを同時に設定すると vpl-gpu-rt の CheckAndFixCtrl でMFX_FRAMETYPE_Pに変更されてしまうため- @voluntas
- VP9 では
- [FIX] Intel VPL の AV1 エンコーダーで Dependency Descriptor RTP ヘッダー拡張が追加されない問題を修正
- AMD AMF と NVIDIA Video Codec SDK では既に実装済みだった AV1 用の SVC コントローラーを Intel VPL にも追加
svc_controller_とscalability_mode_メンバー変数を追加InitEncodeで AV1 の場合に SVC コントローラーを初期化Encodeメソッドで AV1 用のcodec_specific設定(generic_frame_infoとtemplate_structure)を追加SetRatesでビットレート変更時の SVC レイヤー制御を追加- @voluntas
- [CHANGE] SDL サンプルと Sumomo から
--multistreamオプションを削除する- マルチストリーム機能は Sora サーバー側で制御されるため、クライアント側でオプションは不要となりました
- @torikizi
- [UPDATE] SDL2 から SDL3 にアップデートする
- SDL3 の API 変更に伴い、sdl_sample と sumomo で以下の修正を実施:
- ヘッダーインクルードを
<SDL2/SDL.h>から<SDL3/SDL.h>に変更 SDL2::SDL2mainをリンクする代わりにSDL3/SDL_main.hのインクルードを追加SDL_Initの戻り値チェックを bool 型に変更SDL_PollEventの戻り値チェックを bool 型に変更SDL_CreateWindowの位置引数を削除SDL_RENDERER_ACCELERATEDフラグを削除SDL_SetWindowFullscreenの引数を bool 型に変更SDL_ShowCursor/SDL_HideCursorを分離された関数に変更- イベント名を SDL3 形式に変更(例:
SDL_WINDOWEVENT→SDL_EVENT_WINDOW_RESIZED) - キーコードを大文字に変更(例:
SDLK_f→SDLK_F) SDL_KeyboardEventのkeysym.symをkeyに変更SDL_RenderCopyをSDL_RenderTextureに変更SDL_RectをSDL_FRectに変更(座標を float 型に)SDL_CreateRGBSurfaceFromをSDL_CreateSurfaceFromに変更SDL_FreeSurfaceをSDL_DestroySurfaceに変更
- ヘッダーインクルードを
- @melpon
- SDL3 の API 変更に伴い、sdl_sample と sumomo で以下の修正を実施:
- [UPDATE] actions/checkout@v4 と actions/download-artifact@v4 を @v5 に上げる
- @torikizi
- [UPDATE] examples/DEPS の SDL バージョンを 3.2.22 に上げる
- @torikizi
- [ADD] sumomo のレンダラーに Sixel と ANSI エスケープシーケンスでの表示を追加する
--use-sixel,--sixel-width,--sixel-heightオプションの追加--use-ansi,--ansi-width,--ansi-heightオプションの追加- また、この過程で SDLRenderer の SDL に依存しない部分をベースクラス(BaseRenderer)としてまとめた
- @melpon
- [ADD] Sumomo に HTTP サーバー機能と WebRTC 統計情報 API を追加
--http-portオプションで HTTP サーバーのポート番号を指定可能--http-hostオプションで HTTP サーバーのホストアドレスを指定可能(デフォルト: 127.0.0.1)/statsエンドポイントで WebRTC の統計情報を JSON 形式で取得可能- @voluntas
リリース日: 2025-07-09
- [CHANGE] OnDataChannel コールバックで、
#で始まっていないラベルも Open 状態になったことを通知する- @melpon
- [CHANGE] Android ビルドに利用するコンパイラを Android NDK に内包されている clang ではなく、libwebrtc の clang に変更する
- @melpon
- [UPDATE] libwebrtc を m138.7204.0.1 にあげる
rtc::revive::をwebrtc::revive::に変更する- m137 で
rtc_base/third_party/base64/base64.hが削除されたため、websocket.cpp でrtc_base/base64.hをインクルードするように変更する webrtc::Base64::Encodeからwebrtc::Base64Encodeに変更する- Android ビルドに利用するコンパイラを Android NDK に内包されている clang ではなく、libwebrtc の clang に変更する
sora::AudioDeviceModuleConfigからtask_queue_factoryを削除してenvを追加するwebrtc::CreateOpenSLESAudioDeviceModuleをwebrtc::CreateJavaAudioDeviceModuleに変更する- @miosakuma @torikizi @melpon
- [UPDATE] Android NDK を r28b にあげる
- 16KB ページサイズに対応するため
- @melpon
- [UPDATE] Gradle のバージョンを 8.14.2 にあげる
- @melpon
- [UPDATE] Android Gradle Plugin のバージョンを 8.10.0 にあげる
- @melpon
- [UPDATE] Android SDK Command-line tools のバージョンを 13114758 にあげる
- @melpon
- [UPDATE]
NVIDIA Video Codec SDKを 13.0 にアップデートする- NVIDIA Video Codec SDK で新たに追加された
NvEncOutputFrame構造体に対応するv_packet_をstd::vector<std::vector<uint8_t>>からstd::vector<NvEncOutputFrame>に変更するfor (std::vector<uint8_t>& packet : v_packet_)をfor (NvEncOutputFrame& output : v_packet_)に変更する- ループ内に
std::vector<uint8_t>& packet = output.frame;を追加し、既存処理との互換性を維持する - コーデックごとに実行していたキーフレーム判定を NvEncOutputFrame のフレーム情報を利用して行うように変更する
- @torikizi
- NVIDIA Video Codec SDK で新たに追加された
- [UPDATE] Blend2D を公式サイトからダウンロードするように変更する
- 今までは現時点の master のコミットハッシュを使っていたが、asmjit と一緒にバージョンを管理しないといけなかった
- 公式サイトからのダウンロードだと asmjit を内包してるのでこっちの方が管理が楽そうという判断
- @melpon
- [ADD] ubuntu-22.04_armv8 を追加
- @melpon
- [ADD] rpc ラベルにメッセージが来た時に OnRpc コールバックを呼び出す
- @melpon
- [ADD] run.py の引数に
--disable-cudaを追加- @melpon
- [ADD] インストールするファイルに cmake/android.toolchain.cmake を追加
- @melpon
- [FIX] AMD AMF のデコーダーがオートスケーリング時に映像がおかしくなるのを修正
- @melpon
- [UPDATE] CMake を 4.0.3 にあげる
- @voluntas @torikizi
- [UPDATE] SDL を 2.32.6 に上げる
- @voluntas
- [UPDATE] test と examples の
rtc::をwebrtc::に変更する- @torikizi
- [ADD] .github ディレクトリに copilot-instructions.md を追加
- @torikizi
リリース日: 2025-05-23
- [FIX] 切断のタイミング次第でクラッシュすることがあるのを修正
- DC シグナリングが有効で ignore_disconnect_websocket が true の場合のみ発生する
- Sora から type: switched のメッセージを受け取って WS を切断するタイミングと、ユーザーからの切断のタイミングが被るとクラッシュすることがある
- WS を非同期処理で Close しているが、この処理中にユーザーからの Disconnect 呼び出しをすると、WS の Close 完了前に WS が破棄されてしまって未定義動作となる
- WS を綺麗にシャットダウンするのを諦めて(Close フレームを送らず)、同期的に TCP ソケットを閉じるように修正する
- @melpon
リリース日: 2025-05-01
- [UPDATE] libwebrtc を m136.7103.0.0 にあげる
- Ubuntu で使用する clang のバージョンを 20 にアップデートする
- @miosakuma @torikizi @melpon
- [UPDATE]
NVIDIA Video Codec SDKを 12.2 にアップデートする- SDK のサンプルコードやヘッダーファイルのライセンスが NVIDIA's EULA から MIT に変更されたため NOTICE を変更する
- SDK から
NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQが削除されたため追従する - @torikizi
- [UPDATE] CMake を 4.0.1 にあげる
- @torikizi
- [UPDATE] Blend2D のバージョンを
717cbf4bc0f2ca164cf2f0c48f0497779241b6c5に上げる- @miosakuma
- [UPDATE] AsmJit のバージョンを
e8c8e2e48a1a38154c8e8864eb3bc61db80a1e31に上げる- @miosakuma
- [UPDATE] 以下の関数を deprecated にする
GetDefaultVideoEncoderFactoryConfig()GetSoftwareOnlyVideoEncoderFactoryConfig()GetDefaultVideoDecoderFactoryConfig()GetSoftwareOnlyVideoDecoderFactoryConfig()- 代わりに Sora C++ SDK 2025.2.0 でリリースされた
VideoCodecCapabilityやVideoCodecPreferenceを利用して下さい - @melpon
- [UPDATE] Boost を 1.88.0 にあげる
- @torikizi
- [UPDATE] VPL_VERSION を 2.15.0 にあげる
- @torikizi
- [ADD]
VideoCodecPreferenceにカスタムエンコーダ/デコーダを指定できる機能を追加するVideoCodecImplementationにkCustom_1~kCustom_9を追加IsCustomImplementation()関数を追加- kCustom_1 ~ kCustom_9 の値だったら true を返す関数です
sora::VideoCodecCapability::Parametersにcustom_engine_nameとcustom_engine_descriptionフィールドを追加- カスタムエンコーダ/デコーダの情報を入れるためのフィールド。ユーザーが見やすいようにするための値であって、この値を見て何かしたりはしない。
VideoCodecCapabilityConfigにget_custom_enginesフィールドを追加- カスタムエンコーダ/デコーダを利用したい場合、
get_custom_enginesにそれぞれのカスタムエンコーダ/デコーダが何のコーデックに対応しているのかを返す関数を設定する - 利用できる
VideoCodecImplementationはkCustom_1~kCustom_9のみ。既存の実装を上書きはできない
- カスタムエンコーダ/デコーダを利用したい場合、
SoraVideoCodecFactoryConfigにcreate_video_encoderとcreate_video_decoderフィールドを追加- 実際にカスタムエンコーダ/デコーダのクラスを生成する関数
- @melpon
- [UPDATE] SDL2 のダウンロード先を GitHub に変更する
- @voluntas
- [UPDATE] Boost のダウンロード先を時雨堂の R2 ミラーに変更する
- 公式サイトに負荷をかけないための施策
- @voluntas
- [UPDATE]
third_partyの運用方針を見直しthird_party/は外部から取得したコードであり、アップデート時に変更の追従が困難になるためフォーマッタを今回から適用しないthird_party/NvCodec/NvCodec/に配置していた.clang-formatをthird_partyの直下に移動する- clang-format を適用しない対象を
third_party以下全体にするため
- clang-format を適用しない対象を
- clang-fomat 13.0 以降で
SortIncludes: falseは不要となったため設定を削除する third_partyに README を追加するthird_partyの運用方針を追加する
- @torikizi
- [UPDATE]
third_party/NvCodecのコードをフォーマッタを適用しない状態に戻す- @torikizi
- [UPDATE] test の Android ビルドで C++ 20 を利用するように変更
- cppFlags を
'-std=gnu++20'にアップデートする - @torikizi
- cppFlags を
- [UPDATE] examples の cli11 を 2.5.0 にアップデートする
- @torikizi
- [UPDATE] SDL を 2.32.4 に上げる
- @torikizi
- [UPDATE] Catch2 を 3.8.1 に上げる
- @voluntas
リリース日: 2025-03-18
- [CHANGE]
SoraClientContextConfigからuse_hardware_encoderを削除- これにより、デフォルトで利用するエンコーダ/デコーダは全て libwebrtc の実装のものになります
- ハードウェアエンコーダを有効にしたい場合は
SoraClientContextConfig::video_codec_factory_configを適切に設定して下さい - @melpon
- [CHANGE]
SoraClientContextConfigからforce_i420_conversion_for_simulcast_adapterを削除- 代わりに
SoraClientContextConfig::video_codec_factory_config.encoder_factory_config.force_i420_conversionを利用して下さい - @melpon
- 代わりに
- [CHANGE]
SoraClientContextConfigからopenh264を削除- 代わりに
SoraClientContextConfig::video_codec_factory_config.::capability_config.openh264_pathを利用して下さい - @melpon
- 代わりに
- [CHANGE]
sora/hwenc_vpl/vpl_session.hファイルをsora/vpl_session.hに移動- @melpon
- [CHANGE]
SoraVideoEncoderFactoryConfigのuse_simulcast_adapterを削除- サイマルキャストアダプタは常に有効になります
- @melpon
- [CHANGE]
SoraVideoEncoderFactoryConfigのforce_i420_conversion_for_simulcast_adapterをforce_i420_conversionに変更- @melpon
- [CHANGE] GitHub Actions で macOS 向けビルドで Xcode のバージョンを指定したのを削除する
- libwebrtc の制約で Xcode のバージョンを指定していたが、 m132.6834.5.5 の時点では制約がなくなり、指定しなくてもビルドできるようになったため
- @torikizi
- [CHANGE] Ubuntu 20.04 x86_64 の対応を削除
- @melpon
- [UPDATE] CMake を 3.31.6 にあげる
- @voluntas @torikizi
- [UPDATE] libwebrtc を m132.6834.5.8 にあげる
- @melpon
- [UPDATE] OpenH264 を v2.6.0 に上げる
- @torikizi
- [UPDATE] VPL_VERSION を 2.14.0 に上げる
- @torikizi
- [ADD] 有効なエンコーダの一覧を取得する
GetVideoCodecCapability()関数を追加- @melpon
- [ADD] 利用するエンコーダ/デコーダの実装を細かく指定するためのクラス
VideoCodecPreferenceを追加SoraClientContextConfig::video_codec_factory_config.preference経由で利用できます- @melpon
- [ADD] OpenH264 デコーダに対応する
- @melpon
- [ADD] タグが打たれた場合に sumomo バイナリを Release に追加する
- Release 用の sumomo は C++ SDK のリリースバイナリを使用してビルドする
- リアルタイムメッセージング以外の機能がほぼ全て含まれている sumomo をリリース時に含めるようにする
- @torikizi
- [ADD] NVIDIA Video Codec SDK を AV1 エンコーダー/デコーダーに対応する
- @melpon
- [ADD]
CudaContext::CanCreate()を追加- @melpon
- [ADD] AMD の AMF に対応する
- @melpon
- [FIX]
NvCodecVideoDecoderのImplementationNameをNvCodecに修正する- NvCodecVideoEncoder の
ImplementationNameはNvCodecになっているので、合わせる - @torikizi
- NvCodecVideoEncoder の
- [FIX] GitHub Actions の Windows でのビルドが失敗する問題を修正
- Microsoft Visual C++ のバージョン
14.42.34438以降では<chrono>ヘッダの明示的なインクルードが必要となったため、ビルドエラーが発生していた <chrono>をインクルードするように修正- @torikizi
- Microsoft Visual C++ のバージョン
- [FIX] test/e2e.cpp の利用していない include を削除する
- @torikizi
リリース日: 2025-01-27
- [CHANGE]
boost::optionalを利用していた部分を全てstd::optionalに変更- @melpon
- [CHANGE] SRTP keying material を取得する機能を削除
- @melpon
- [UPDATE] VPL を v2.13.0 に上げる
- @voluntas
- [UPDATE] CMake を 3.30.5 にあげる
- @voluntas
- [UPDATE] Boost を 1.87.0 にあげる
- boost::asio::deadline_timer が間接的にインクルードされなくなったので、websocket.h に boost/asio/deadline_timer.hpp のインクルードを追加して利用可能にする
- boost::json::error_code が削除されたので boost::system::error_code に置き換える
- @voluntas @torikizi @melpon
- [UPDATE] libwebrtc を m132.6834.5.2 にあげる
- H.265 Patch の修正に伴い、C++ SDK の H.265 に関する設定を変更
- examples と test に
rtc::CreateRandomStringのヘッダを追加 SetRtpTimestampをframe.timestampからframe.rtp_timestampに変更scalable_track_source.hとscalable_track_source.cppのabsl::optionalをstd::optionalに変更nvcodec_video_decoder.hとvpl_video_decoder.hに#include <optional>を追加nvcodec_video_decoder.cppとvpl_video_decoder.cppのabsl::nulloptをstd::nulloptに変更- Android の test アプリの cmake バージョンを VERSION と合わせる
requested_resolutionがscale_resolution_down_toに変更されたのでリネームExportKeyingMaterialが廃止されたためExportSrtpKeyingMaterialに変更ExportKeyingMaterialは引数を 6 つ利用できたがExportSrtpKeyingMaterialでは 1 つしか利用できないため互換処理を追加
- @tnoho @torikizi @melpon
- [UPDATE] Xcode のバージョンを 15.4 にあげる
- @tnoho
- [UPDATE] SDL を 2.30.11 に上げる
- @torikizi
- [UPDATE] BLEND2D_VERSION を上げる
- @torikizi
- [UPDATE] ASMJIT_VERSION を上げる
- @torikizi
- [UPDATE] OpenH264 を v2.5.0 に上げる
- @voluntas
- [ADD] シグナリングメッセージを取得できるよう OnSignalingMessage を SoraSignalingObserver に追加する
- @tnoho
- [ADD] Intel VPL で AV1 エンコーダを動くようにする
- @tnoho
- [ADD] ルート証明書を指定可能にする
- @melpon
- [ADD] Ubuntu 24.04 armv8 に対応する
- @melpon
- [ADD] WebSocket の Close を取得できるよう SendOnWsClose を SoraSignalingObserver に追加する
- @tnoho
- [ADD] DataChannel のみの接続で type: close がやってきた場合に正しく切断されるようにする
- @melpon
- [ADD] SoraSignalingConfig に audio_opus_params を追加
- @melpon
- [ADD] SoraSignalingConfig::DataChennel に header を追加
- @melpon
- [ADD] SoraSignalingConfig::ForwardingFilter に name と priority を追加
- @melpon
- [ADD] SoraSignalingConfig に forwarding_filters を追加
- @melpon
- [ADD] scaleResolutionDownTo に対応する
- @melpon
- [ADD] SoraClientContext にオーディオデバイスの設定するオプションを追加
- @melpon
- [ADD] sumomo にビデオデバイスとオーディオデバイスを設定するオプションを追加
- @melpon
- [ADD] SoraSignalingConfig に degradation_preference を追加
- @melpon
- [ADD] sumomo と test/hello に degradation_preference を設定するオプションを追加
- @melpon
- [FIX] HTTP Proxy 利用時の Websocket 初期化で insecure_ メンバ変数が初期化されていなかったのを修正
- @melpon
- [FIX] SoraSignalingConfig の client_cert と client_key に渡す必要がある値を、ファイルパスからファイルの内容に修正
- Android の場合、jar に纏められたファイルからファイルパスが取得できないため
- @melpon
- [FIX] SoraSignalingConfig の client_cert と client_key の型を
std::stringからstd::optional<std::string>に修正- @melpon
- [FIX] WS と DC が両方繋がっている時に切断した時、正常終了にも関わらずエラーが発生することがあるのを修正
- @melpon
- [FIX] Sora から切断された場合に WS reason が 1000 だったら正常終了とする
- @melpon
- [FIX] libdrm-dev と libva-dev の依存が不要になってたので削除
- @melpon
- [CHANGE] GitHub Actions の ubuntu-latest を ubuntu-24.04 に変更
- @voluntas
- [CHANGE] GitHub Actions の build に cron を設定する
- @voluntas
- [UPDATE] Boost のダウンロード URL を変更する
- @voluntas
- [UPDATE] CATCH2 を v3.7.1 にあげる
- @voluntas
- [UPDATE] SDL2 を 2.30.7 にあげる
- @voluntas
- [ADD] sumomo に証明書に関するオプションを追加する
- サーバー証明書の検証を行わないようにするオプション
--insecureを追加 - CA 証明書を指定するオプション
--ca-certを追加- 指定できるファイルは PEM 形式
- クライアント認証に関するオプション
--client-cert,--client-keyを追加- 指定できるファイルは PEM 形式
- @melpon
- サーバー証明書の検証を行わないようにするオプション
- [ADD] Ubuntu 24.04 armv8 向けの example を追加する
- @melpon
- [ADD] VERSION と examples/VERSION のバージョンをチェックする仕組みを追加
- @melpon
- [FIX] examples のビルド時に libgl-dev がない環境で SDL の画面作成が失敗する問題を解消するために、build.yml を修正して libgl-dev のインストールを追加する
- SDL のビルド時に libgl-dev がない環境では、SDL の OpenGL 機能が有効化されず、examples アプリ起動時に SDL の画面作成が失敗する
- libgl-dev をインストールすることで OpenGL 機能が有効化され、examples アプリ起動時に SDL の画面作成が成功するようになる
- 参考リンク : SDL の OpenGL をチェックしている場所
- @torikizi
リリース日: 2024-07-29
- [CHANGE]
--sora-dir,--sora-argsを--local-sora-cpp-sdk-dirと--local-sora-cpp-sdk-argsに変更する- @melpon
- [CHANGE]
--webrtc-build-dir,--webrtc-build-argsを--local-webrtc-build-dirと--local-webrtc-build-argsに変更する- @melpon
- [CHANGE] SoraVideoDecoderFactory の CreateVideoDecoder 関数を Create に変更する
- libwebrtc に定義されている継承元クラスが変更されたことに対する追従
- @enm10k
- [CHANGE] SoraVideoEncoderFactory の CreateVideoEncoder 関数を Create に変更する
- libwebrtc に定義されている継承元クラスが変更されたことに対する追従
- @enm10k
- [CHANGE]
CreateOpenH264VideoEncoder()関数の第1引数の型をconst cricket::VideoCodec&からconst webrtc::SdpVideoFormat&に変更する- @melpon
- [CHANGE] Jetson 対応をサポートブランチに移動する
- @melpon
- [UPDATE] Boost を 1.85.0 にあげる
- @enm10k
- [UPDATE] SDL2 を 2.30.5 にあげる
- @enm10k
- [UPDATE] CMake を 3.29.6 にあげる
- @voluntas
- [UPDATE] CLI11 を 2.4.2 にあげる
- @enm10k
- [UPDATE] libwebrtc を m127.6533.1.1 にあげる
- Android の test アプリがリンクできなくなったため、リンカーを Android NDK のものから libwebrtc のものに変更
- リンカーのバージョンの違いによる互換性の問題でエラーが発生していた
- @melpon @enm10k @torikizi
- [ADD] sumomo に
--openh264と--use-hardware-encoderオプションを追加- @melpon
- [ADD] sumomo に
--video-h264-paramsと--video-h265-paramsオプションを追加- @enm10k
- [ADD] SoraSignalingConfig に
video_h265_paramsを追加- @enm10k
- [ADD] 古い Intel CPU でも H265 エンコーダが動くようにする
- @melpon
- [ADD] Intel VPL で AV1 デコーダを動くようにする
- @melpon
- [ADD] NVIDIA Video Codec SDK を H265 に対応する
- @melpon
- [ADD] Ubuntu 24.04 に対応する
- @melpon
- [ADD] WebSocket での接続時に User-Agent ヘッダーを追加する
- @melpon
リリース日: 2024-04-16
- [CHANGE] テストモジュールについて
SoraSignalingConfigのsora_clientに値を設定しないようにする- @enm10k
- [FIX] VPL デコーダで遅延が起きたりセグフォすることがあるのを修正
- @melpon
リリース日: 2024-04-01
- [CHANGE]
VplVideoDecoderImplのImplementationNameをoneVPLからlibvplに変更する- @enm10k
- [FIX]
VplVideoEncoderImplのimplementation_nameの値が誤っていたためlibvplに修正する- @enm10k
リリース日: 2024-03-29
- [CHANGE] 別リポジトリに分かれていた Sora C++ SDK のサンプル集を examples/ 以下のディレクトリに統合する
- @melpon
- [UPDATE] libwebrtc を
m122.6261.1.0にあげる- Ubuntu のビルドを通すために、 __assertion_handler というファイルをコピーする必要があった
- @miosakuma @enm10k
- [UPDATE] libvpl を v2.10.1 にあげる
- @enm10k
- [ADD] OpenH264 エンコーダを追加
- @melpon
- [ADD] Catch2 を使って E2E テストを追加
- @melpon
- [ADD] Ubuntu 22.04 で Intel VPL のH.265 に対応する
- @enm10k
- [FIX] HWA 利用の判定を
#if defined(USE_*_ENCODER)という使い方で統一するように修正- @melpon
リリース日: 2024-03-13
- [ADD] test/hello.cpp に video, audio フラグを追加
- @melpon
- [FIX] Android ハンズフリー機能において Android 11 以前で Bluetooth SCO が切れてしまう問題を改善
- @tnoho
- [FIX] Sora C++ SDK を利用してビルドする時に自動的に _LIBCPP_HARDENING_MODE が定義されるように修正
- @melpon
- [CHANGE] Lyra を Sora C++ SDK から外し、Lyra に関連するファイルや関数、オプションを除ける
- SoraSignalingConfig::audio_codec_lyra_bitrate オプションを削除
- SoraSignalingConfig::audio_codec_lyra_usedtx オプションを削除
- SoraSignalingConfig::check_lyra_version オプションを削除
- audio_encoder_lyra.{h,cpp} を削除し、AudioEncoderLyra クラスを削除
- audio_decoder_lyra.{h,cpp} を削除し、AudioDecoderLyra クラスを削除
- sora_audio_encoder_factory.{h,cpp} を削除し、CreateBuiltinAudioEncoderFactory 関数を削除
- sora_audio_decoder_factory.{h,cpp} を削除し、CreateBuiltinAudioDecoderFactory 関数を削除
- Version クラスから GetLyraCompatibleVersion 関数を削除
- enum class SoraSignalingErrorCode から LYRA_VERSION_INCOMPATIBLE を削除
- VERSION ファイルから LYRA_VERSION, LYRA_COMPATIBLE_VERSION を削除
- リリースパッケージから
lyra-1.3.2_sora-cpp-sdk-2024.2.0_android.tar.gzなどの Lyra パッケージを生成しないようにする - インストールする内容から
share/cmake/FindLyra.cmakeを削除 - run.py を実行する時のオプションから
--no-lyraオプションを削除 - test/hello 実行時に指定する json フォーマットのオプション mode: lyra を削除し、mode オプションそのものも削除
- @melpon
- [CHANGE] ビルド時に Bazel のインストールを行わないようにする
- Lyra のために Bazel を利用していたので、関連して削除となる
- @melpon
- [ADD] Android 向けに音声出力先変更機能として
SoraAudioManagerを追加する- Android では C++ を経由した OS の API 利用が煩雑となるため、Java で実装し、Sora.aar をビルドして提供を行う
- Sora.aar ファイルは Android のパッケージに含める
- iOS 向けとは異なりインスタンス生成が必要
- API レベル 31 でオーディオデバイスの切り替えや Bluetooth ヘッドセットのスイッチングの API が変更となり、API レベルに応じて処理を切り替える必要があったため
- @tnoho
- [CHANGE]
--webrtcbuild,--webrtc-fetchなどの webrtc ローカルビルドに関するフラグを削除し、代わりに--webrtc-build-dirと--webrtc-build-argsを追加する- これにより、既存の webrtc-build ディレクトリを使ってローカルビルドを行うことができるようになる
- @melpon
- [CHANGE]
SoraClientContextConfigからconfigure_media_dependenciesを削除した- libwebrtc から cricket::MediaEngineDependencies が削除されたため
- @enm10k
- [UPDATE] libwebrtc を
m121.6167.3.0にあげる- @torikizi @enm10k
- [UPDATE] Boost を 1.84.0 にあげる
- @enm10k
- [UPDATE] CMake を 3.28.1 にあげる
- @enm10k
- [UPDATE] CUDA を 11.8 にあげる
- 更新時に発生したビルド・エラーを回避するために
include/sora/fix_cuda_noinline_macro_error.hを追加した - @enm10k
- 更新時に発生したビルド・エラーを回避するために
- [UPDATE] Lyra を 1.3.2 にあげる
- @melpon
- [UPDATE] Github Actions の setup-android と setup-msbuild のバージョンをアップデート
- Node.js 16 の Deprecated に伴う対応
- setup-android を v3 にアップデート
- setup-android のアップデートに伴い ANDROID_SDK_CMDLINE_TOOLS_VERSION のバージョンを
9862592にアップデート9862592は CMDLINE_TOOLS のバージョン 10 に相当- 最新の 11 を指定するとエラーが出ることを懸念し、今回は 10 を指定
- バージョンの組み合わせは setup-android の README を参照
- build.yml に Setup JDK 17 を追加
- JDK のバージョンを指定しない場合、デフォルトで JDK 11 を使用するため、JDK 17 を指定する
- JDK 11 は setup-android のアップデートの影響で利用できなくなるため
- JDK 17 を選択する理由は setup-android の README に記載されているバージョンの組み合わせに合わせるため
- setup-msbuild を v2 にアップデート
- node 20 に対応したバージョンを指定するため、最新の v2 を指定
- リリースノートを参照すると、v2 は node 20 に対応していることがわかる setup-msbuild のリリースノート
- @torikizi
- [ADD] Python コードのフォーマッターに Ruff を使うようにする
- @voluntas
- [ADD]
SoraClientContextConfig,SoraVideoEncoderFactoryConfigにforce_i420_conversion_for_simulcast_adapterを追加する- use_simulcast_adapter = true の際に、エンコーダー内でビデオ・フレームのバッファーを I420 に変換しているが、この変換の有無をフラグで制御可能にした
- force_i420_conversion_for_simulcast_adapter のデフォルト値は true で I420 への変換を行う
- 変換を行わない場合、エンコードの性能が向上するが、バッファーの実装によってはサイマルキャストが利用できなくなる
- @enm10k
- [ADD]
SoraSignalingObserverにOnSwitchedを追加する- @enm10k
- [FIX] Jetson Orin で AV1 を送信中、他のユーザーが後から接続して受信した時に映像が出ない問題を修正
- @melpon @enm10k
- [FIX] test/android のアプリが実行時にエラーで落ちてしまう問題を修正
- "AttachCurrentThread() must be called on this thread." というメッセージでエラーとなっていた
- JVM::Initialize の前に AttachCurrentThreadIfNeeded 呼ぶ必要があった
- @melpon
- [CHANGE] JetPack 5.1.2 に対応
- JetPack 5.1.1, 5.1.2 で動作を確認
- JetPack 5.1 では、互換性の問題で JetsonJpegDecoder がエラーになることを確認
- @enm10k
- [ADD] ForwardingFilter の項目に version と metadata を追加
- version と metadata はオプション項目として追加し、値がない場合は項目を設定しない
- @torikizi
- [FIX] DataChannel シグナリングが有効な場合、一部のシグナリングメッセージのコールバックが上がらないことがあるのを修正
- @melpon
- [FIX] ForwardingFilter の action 項目は本来オプション項目だったが、 action は
std::optional型になっていなかったため修正- @torikizi
- [UPDATE] libwebrtc を
m120.6099.1.2に上げるm120.6099.1.1より x86 シミュレータビルドがなくなったため、CI で ios の test ビルドを行わなくした- @melpon @enm10k @torikizi @miosakuma
- [FIX] libwebrtc を
m119.6045.2.2に上げる- Apple 非公開 API を利用していたため、Apple からリジェクトされる問題を修正
- @voluntas
- [ADD] SRTP keying material を取得する機能を実装
- @melpon
- [FIX] macOS で USB 接続されたカメラが利用できなくなっていた問題を修正する
- 2023.15.0 リリース時の WebRTC の更新に伴い、 macOS で USB 接続されたカメラが取得できなくなっていた
- @enm10k
- [UPDATE] libwebrtc を m119.6045.2.1 に上げる
- @voluntas @torikizi @melpon @enm10k
- [UPDATE] libwebrtc を m119 に上げたことで必要になった関連するライブラリもバージョンを上げる
- Ubuntu で使用する clang のバージョンを 15 にアップデート
- すべてのプラットフォームで set_target_properties の CXX_STANDARD と C_STANDARD を 20 にアップデート
- ANDROID_NDK_VERSION を r26b にアップデート
- CMAKE_VERSION を 3.27.7 にアップデート
- @melpon @enm10k @torikizi
- [ADD] H.265 に対応
- libwebrtc の m119.6045.2.1 で H.265 がサポートされたため、C++ SDK でも H.265 に対応
- macOS / iOS / Android で H.265 が利用可能
- @voluntas @torikizi @melpon @enm10k
- [UPDATE] Boost を 1.83.0 に上げる
- @voluntas
- [UPDATE] libwebrtc を m117.5938.2.0 に上げる
- @melpon @miosakuma @voluntas
- [FIX]
MacAudioOutputHelperでコメントアウトしていた処理をコメントインする- 当初 libwebrtc のサンプルにはない処理で、消していた処理を復活させる
- アプリの起動中に
MacAudioOutputHelperを作成、削除を繰り返しても問題ないようにする - @torikizi
- [FIX] macOS で
AudioOutputHelperを使おうとするとリンクエラーになっていたのを修正- @melpon
- [ADD] iOS 向けに音声出力先変更機能として
AudioOutputHelperを追加- @tnoho
- [FIX] V4L2VideoCapturer でデバイス名の指定が無視されていたのを修正
- @melpon
- [FIX] Android で動かすために必要な libwebrtc の初期化処理を追加
- @melpon
- [CHANGE] MacCapturer の解放前に明示的に Stop() 関数を呼ぶ必要があるようになる
- @melpon
- [FIX] iOS で MacCapturer の解放時に 10 秒間固まることがあるのを修正
- @melpon
- [FIX] Android キャプチャラのエラーハンドリングを厳密にする
- @melpon
- [UPDATE] libwebrtc を m116.5845.6.1 に上げる
- @torikizi
- [UPDATE] m116 で
cricket::Codecは protected になったためcricket::CreateVideoCodecを利用するように修正- @torikizi
- [ADD]
SoraSignaling::GetSelectedSignalingURL()関数を追加- @melpon
- [UPDATE] VPL のバージョンを v2023.3.1 に上げる
- @torikizi
- [FIX] macOS, iOS のキャプチャラの破棄時にクラッシュすることがあるのを修正
- @melpon
- [ADD] Lyra 抜きでビルドする --no-lyra オプションを追加
- @melpon
- [FIX] Lyra に iOS 最小ターゲットを設定して、アプリの最小ターゲットの設定によっては起動直後に落ちることがあったのを修正する
- @melpon
- [UPDATE] libwebrtc を m115.5790.7.0 に上げる
- @melpon @miosakuma
- [FIX] 特定のタイミングで切断が発生すると Closing 状態で止まってしまうのを修正
- @melpon
- [FIX] Connect 直後に Disconnect すると OnDisconnect コールバックが呼ばれないことがあるのを修正
- @melpon
- [ADD] 映像コーデックパラメータを指定可能にする
SoraSignalingConfigに以下のフィールドを追加する:video_vp9_paramsvideo_av1_paramsvideo_h264_params
- 値は単なる JSON 値で C++ SDK は中身のバリーデーションなどは行わない
- @sile
- [UPDATE] CMake を 3.26.4 に上げる
- @torikizi
- [UPDATE] libwebrtc を m114.5735.2.0 に上げる
- @miosakuma
- [FIX] 一部の Windows で VP8 の受信時にクラッシュする問題を修正する
- Query した上で Init しても MFX_ERR_UNSUPPORTED になるため VPL の場合は毎回 Init を呼ぶようにする
- @melpon
- [FIX] ソケット切断時にクラッシュすることがあるのを修正
- @melpon
- [UPDATE] libwebrtc を m114.5735.0.1 に上げる
- @melpon
- [UPDATE] Boost を 1.82.0 に上げる
- @melpon
- [ADD] Sora の Forwarding Filter 機能を使えるようにする
- @melpon
- [FIX] 接続エラー時に Websocket::OnWrite でクラッシュすることがあるのを修正
- @melpon
- [CHANGE] SoraDefaultClient を削除して SoraClientContext を追加
- @melpon
- [ADD] デバイス一覧を取得する機能を追加
- @melpon
- [FIX] CUDA 未対応時に HWA を利用しない設定にしてもクラッシュしてしまうのを修正
- @melpon
- [CHANGE] SoraSignalingConfig から audio_codec_lyra_params を削除して、代わりに audio_codec_lyra_bitrate と audio_codec_lyra_usedtx を追加
- @melpon
- [UPDATE] Lyra で接続する時に、チャンネル全体で同じバージョンの Lyra を使っているかをチェックする
- @melpon
- [UPDATE] JetPack 5.1 に対応する
- @tnoho @melpon
- [UPDATE] oneVPL を v2023.1.3 に上げる
- @voluntas
- [UPDATE] CMake を 3.25.3 に上げる
- @melpon
- [UPDATE] 例外が有効になっていなかった一部の依存ライブラリも例外を有効にする
- @melpon
- [UPDATE] libwebrtc を m111.5563.4.4 に上げる
- @melpon
- [ADD] 2022.11.0 で無効にしていた Jetson の HW MJPEG デコーダを有効にする
- @tnoho @melpon
- [FIX] WS 切断時のタイムアウトが起きた際に無効な関数オブジェクトを呼んでいたのを修正
- @melpon
- [UPDATE] NVIDIA Video Codec SDK を 12.0 に上げる
- @melpon
- [UPDATE] deprecated になった actions/create-release と actions/upload-release の利用をやめて softprops/action-gh-release を利用する
- @melpon
- [FIX] WebSocket 接続時に即エラーになると正常に OnDisconnect が呼ばれないのを修正
- @melpon
- [UPDATE] oneVPL のデコードでリサイズに対応してなかったのを修正
- @melpon
- [UPDATE] libwebrtc を m111.5563.4.2 に上げる
- @melpon @miosakuma
- [ADD] SoraSignalingConfig に audio_streaming_language_code を追加
- @melpon
- [UPDATE] libwebrtc を m109.5414.2.0 に上げる
- @melpon
- [UPDATE] Boost を 1.81.0 に上げる
- @melpon
- [UPDATE] oneVPL を v2023.1.1 に上げる
- @melpon
- [CHANGE] Lyra を静的ライブラリ化
- @melpon
- [ADD] iOS を Lyra に対応
- @melpon
- [UPDATE] Lyra を
1.3.0に上げる- @melpon
- [FIX] macOS 用 Lyra のターゲットがローカルのアーキテクチャに依存していたのを修正
- @melpon
- [ADD] Lyra パラメータを指定可能にする
- @melpon
- [CHANGE] Boost.Filesystem への依存を追加
- @melpon
- [ADD] オーディオコーデック Lyra に対応
- @melpon
- [FIX] CI で .env ファイル名の誤りを修正する
- @miosakuma
- [UPDATE] libwebrtc を
M107.5304@{#4}に上げる- @torikizi
- [FIX] 廃止になった
audio_opus_params_clock_rateを削除する- @torikizi
- [FIX] CI で Windows の場合 $GITHUB_OUTPUT に "\r" が混入するのを除去する
- @miosakuma
- [ADD] SoraSignaling に
GetConnectionID,GetConnectedSignalingURL,IsConnectedDataChannel,IsConnectedWebsocket関数を追加- @melpon
- [CHANGE]
ScalableVideoTrackSource::OnCapturedFrameの戻り値を void から bool にする- @melpon
- [ADD] SoraSignalingConfig に
audio_opus_params_clock_rate,signaling_notify_metadata,disable_signaling_url_randomizationを追加- @melpon
- [UPDATE] Boost のビルド済みバイナリに Filesystem を追加
- @melpon
- [UPDATE] iOS の IPHONE_DEPLOYMENT_TARGET を 10.0 から 13.0 に上げる
- @melpon
- [FIX] ログが毎フレーム出力されてしまっていたのを修正
- @melpon
- [CHANGE] デバイスからキャプチャしたフレームをコールバックする機能を追加
- これに伴ってデバイス生成時のパラメータが変わるので下位互換性は無くなる
- @melpon
- [FIX] Android で SoraDefaultClient が使えなかったのを修正
- @melpon
- [FIX] SoraDefaultClientConfig の
use_audio_deivceはスペルミスなのでuse_audio_deviceに修正- @melpon
- [CHANGE] Jetson の HW MJPEG デコーダを一時的に無効にする
- @melpon
- [CHANGE] OnSetOffer に type: offer メッセージ全体を渡す
- @melpon
- [UPDATE] libwebrtc を m105.5195.0.0 に上げる
- @voluntas @melpon
- [UPDATE] boost を 1.80.0 に上げる
- @voluntas
- [UPDATE] Android NDK を r25b に上げる
- @melpon
- [CHANGE] Android の要求バージョンを
24から29に上げる- @melpon
- [UPDATE] libwebrtc を m104.5112.7.0 に上げる
- @melpon
- [ADD] Sora C++ SDK のリリースに Boost パッケージを含める
- @melpon
- [CHANGE] DataChannel の準備が完了したことを示す通知を追加
- 純粋仮想関数を追加したため破壊的変更となる
- @melpon
- [ADD] mid を取得する関数を追加
- @melpon
- [CHANGE] Intel Media SDK を利用したハードウェアエンコーダ/デコーダを削除
- @melpon
- [ADD] oneVPL を利用したハードウェアエンコーダ/デコーダを追加
- @melpon
- [FIX] NVDEC のデコードの画像サイズが変わった時に即時で追従するように修正
- @melpon
- [FIX] カメラの無い Android 端末でカメラを利用しようとすると落ちるのを修正
- @melpon
- [FIX] デコードする画像が小さすぎる場合に NVDEC がエラーを吐いて止まっていたのを修正
- @melpon
- [FIX] NVDEC のフレームがロックされていなくて未定義動作を起こしていたのを修正
- @melpon
- [FIX] サイマルキャストの場合、ネイティブバッファを I420 に変換するように修正
- @melpon
- [FIX] アライメントされてないと動作しないエンコーダのために、ハードウェアエンコーダやサイマルキャストの場合は crop するように修正
- @melpon
- [FIX] Rotation の解決が入ってなかったのを修正
- @melpon
- [FIX] DataChannel の切れ方によってはアクセス違反になることがあったのを修正
- @melpon
- [ADD] run.py に --relwithdebinfo フラグを追加
- @melpon
- [UPDATE] libwebrtc を m103.5060.5.0 に上げる
- @voluntas @melpon
- [FIX] boost::asio::post に strand を渡してなかったのを修正
- @melpon
- [FIX] DataChannel が有効だと切断時にエラーが起きていたのを修正
- @melpon
- [FIX] Jetson の AV1 HWA のデコーダがうまく動いてなかったのを修正
- @melpon
リリース日: 2022-06-30
- [ADD] Jetson の AV1 HWA に対応
- @melpon
リリース日: 2022-06-22
- [ADD] bundle_id を追加
- @melpon
- [ADD] HTTP Proxy に対応
- @melpon
- [CHANGE] multistream, simulcast, spotlight を optional 型に変更
- @melpon
- [ADD]
MacCapturer::EnumVideoDeviceを追加- @melpon
- [ADD] client_id, spotlight_focus_rid, spotlight_unfocus_rid, simulcast_rid を追加
- @melpon
- [FIX] 公開ヘッダーが NvCodec ヘッダーに依存していたのを修正
- @melpon
- [FIX] Windows で libmfx.lib ライブラリを要求してしまっていたのを修正
- @melpon
- [ADD] Intel Media SDK を使ったハードウェアエンコーダ/デコーダを実装
- @melpon
- [FIX] ubuntu-22.04_x86_64 のリリースバイナリが含まれていなかったのを修正
- @melpon
祝リリース