Releases: shiguredo/momo
Releases · shiguredo/momo
2025.2.0-canary.2
[canary] Update VERSION to 2025.2.0-canary.2
2025.2.0-canary.1
[canary] Update VERSION to 2025.2.0-canary.1
2025.2.0-canary.0
[canary] Update VERSION to 2025.2.0-canary.0
2025.1.0
2025.1.0
リリース日: 2025-09-04
- [CHANGE] リリースパッケージのディレクトリを展開した際
momo-<version>_<platform>となるように変更する - [CHANGE] VERSION ファイルから依存ライブラリ情報を DEPS ファイルに分離する
- VERSION ファイルには momo のバージョンのみを記載するように変更
- 依存ライブラリのバージョン情報は新たに作成した DEPS ファイルで管理
- @voluntas
- [CHANGE] run.py のビルドコマンドを build サブコマンドに変更
- 従来の
python3 run.py <platform>によるビルドをpython3 run.py build <platform>に変更 - @voluntas
- 従来の
- [CHANGE] Sora mode の type: connect から multistream 項目を削除
- Sora が multistream 項目を廃止したため削除
- @voluntas
- [CHANGE] SDL2 から SDL3 へ移行
- SDL を 2.30.8 から 3.2.18 に上げる
- SDL3 の API 変更に伴い、以下の修正を実施:
- ヘッダーインクルードを
<SDL.h>から<SDL3/SDL.h>に変更 SDL_main.hの明示的なインクルードを追加SDL_Initの戻り値チェックを 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に変更
- ヘッダーインクルードを
- ビルド設定の修正:
- Windows: Game Input API を無効化し、静的ランタイムライブラリ(/MT)を使用
- Linux クロスコンパイル: X11/Wayland チェックをスキップするため
SDL_UNIX_CONSOLE_BUILD=ONを追加
- @voluntas
- [CHANGE] YUY2 は V4L2 で NV12 に変換するようにする
- [CHANGE] test モードを p2p モードに名前変更
- コマンドラインオプションを
testからp2pに変更 - HTML ファイル名を
test.htmlからp2p.htmlに変更 - ドキュメントファイル名を
USE_TEST.mdからUSE_P2P.mdに変更 - @voluntas
- コマンドラインオプションを
- [UPDATE] blend2d のダウンロード先を時雨堂ミラーに変更し SHA256 ハッシュチェックを追加
- ダウンロード URL を https://oss-mirrors.shiguredo.jp/ に変更
- boost と同様にダウンロード時の SHA256 ハッシュチェック機能を実装
- @voluntas
- [UPDATE] V4L2 ビデオキャプチャの探索方法を改善
/sys/class/video4linux経由で全ビデオデバイスを探索するように変更/dev/video64以降の番号のデバイスにも対応- フォーマットをサポートするデバイスのみを使用するようにフィルタリング
- デバイスの数値順ソート処理を追加
- @voluntas
- [CHANGE]
--force-i420オプションの挙動を変更 - [UPDATE] フレームレートの最大値を 60fps から 120fps に引き上げる
- 高フレームレートカメラのサポートを改善
- @voluntas
- [UPDATE] WebRTC を m138.7204.0.4 に上げる
- アップデートに伴い、nvcodec_video_encoder.cpp に
video_frame.hのインクルードを追加 - jetson_video_encoder と nvcodec_video_encoder、vpl_video_encoder の
frame.timestamp()をframe.rtp_timestamp()に変更 rtc::名前空間とcricket::名前空間をwebrtc::名前空間に統一するabsl::optionalをstd::optionalに変更- main.cpp に
<thread>のインクルードを追加 webrtc::SleepMs()をwebrtc::Thread::SleepMs()に変更<rtc_base/third_party/base64/base64.h>を<rtc_base/base64.h>に変更し、webrtc::Base64::Encode()をwebrtc::Base64Encode()に変更<api/audio/builtin_audio_processing_builder.h>のインクルードを追加し、dependencies.audio_processingをdependencies.audio_processing_builderに変更し、生成方法もwebrtc::AudioProcessingBuilder().Create()からstd::make_unique<webrtc::BuiltinAudioProcessingBuilder>()に変更dependencies.task_queue_factoryは deprecated なので削除し、、代わりにenvを利用する- 利用する clang のバージョンを 18 から 20 に上げる
- Windows 版では D3D11.lib をリンクする
webrtc::SdpVideoFormat::Parametersは deprecated なのでwebrtc::CodecParameterMapを利用するwebrtc::MediaType::MEDIA_TYPE_VIDEOは deprecated なのでwebrtc::MediaType::VIDEOを利用する- @torikizi, @melpon
- アップデートに伴い、nvcodec_video_encoder.cpp に
- [UPDATE] CMake を 4.1.0 に上げる
- [UPDATE] OpenH264 を 2.6.0 に上げる
- [UPDATE] CLI11 を 2.5.0 に上げる
- [UPDATE] Boost を 1.89.0 に上げる
- buildbase.py に SHA256 ハッシュチェック機能を追加
- @voluntas
- [UPDATE] NVIDIA VIDEO CODEC SDK を 13.0 に上げる
- [ADD]
--fake-capture-deviceオプションを追加する- Blend2D を使用したフェイクビデオキャプチャーデバイス機能を追加
- デジタル時計、アニメーション、7 セグメントディスプレイを表示
- ビデオと同期したビープ音を生成するフェイクオーディオデバイスも追加
- macOS と Ubuntu x86_64 プラットフォームのみ対応
- @voluntas
- [ADD] run.py に format サブコマンドを追加
python3 run.py formatで clang-format を実行可能に- @voluntas
- [ADD] run.py の引数に
--disable-cudaを追加 - [ADD] libcamera のコントロール機能を追加
--libcamera-controlオプションで key value 形式でコントロールを指定可能- AfMode, AfRange, AfSpeed などの enum 型コントロールに対応
- 文字列ベースでコントロールを設定できる API を実装
- @voluntas
- [ADD] Ayame モードに
--directionオプションを追加sendrecv(デフォルト)、sendonly、recvonlyの 3 種類の送受信方向を指定可能- WebRTC の RTCRtpTransceiver の direction プロパティを制御
- 配信用途や視聴用途での利用を想定
- @voluntas
- [ADD] ayame モードに映像・音声コーデックを指定するオプションを追加
--video-codec-typeオプションで VP8, VP9, AV1, H264, H265 から選択可能--audio-codec-typeオプションで OPUS, PCMU, PCMA から選択可能
- [ADD] Intel VPL エンコーダーのキーフレーム間隔設定を追加
- GopPicSize にフレームレート × 20 を設定し、20 秒間隔でキーフレームを生成
- IdrInterval を 0 に設定し、すべての I フレームを IDR フレームにする
- 例: 120fps の場合は 2400 フレームごとにキーフレームが生成される
- @voluntas
- [ADD]
--force-nv12オプションを追加- V4L2 キャプチャーで NV12 フォーマットの使用を強制
- NV12 が利用できない場合はエラーで停止
- NV12 フォーマットは変換せずそのまま使用
- @voluntas
- [ADD]
--force-yuy2オプションを追加 - [ADD] V4L2 ビデオキャプチャデバイスの一覧を取得する
EnumV4L2CaptureDevices()関数を追加FormatV4L2Devices()にこのデバイス一覧を渡すと出力可能な文字列にできる- @melpon
- [ADD] Linux 環境で
--list-devicesオプションを追加- 利用可能なビデオデバイスの一覧を表示する機能
- カメラごとにグループ化して表示
- 各デバイスのサポートフォーマット、解像度、フレームレートを詳細表示
- @voluntas
- [FIX] macOS ビルド時の SDL3 ライブラリのバージョン不一致警告を修正
- SDL3 ビルド時に CMAKE_OSX_DEPLOYMENT_TARGET を WebRTC と同じ値に設定
- SDL3 が macOS 15.0 でビルドされ、Momo が macOS 12.0 をターゲットにしていたことによる警告を解消
- @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 にも追加
- これにより、Intel VPL でも AV1 エンコード時に RTP パケットに適切な依存関係情報が含まれるようになる
- @voluntas
misc
- [ADD] Intel VPL を使った E2E テストジョブを追加
- GitHub Actions で self-hosted runner を使用して Intel VPL エンコーダーをテストする仕組みを追加
- test_sora_mode_intel_vpl.py テストファイルを追加
- @voluntas
- [UPDATE] GitHub Actions の ubuntu-latest を ubuntu-22.04 に変更する
- ubuntu-24.04 には意図的に上げていない
- @voluntas
- [UPDATE] actions/download-artifact と actions/checkout をアップデートする
2025.1.0-canary.15
[canary] Update VERSION to 2025.1.0-canary.15
2025.1.0-canary.14
[canary] Update VERSION to 2025.1.0-canary.14
2025.1.0-canary.13
[canary] Update VERSION to 2025.1.0-canary.13
2025.1.0-canary.12
[canary] Update VERSION to 2025.1.0-canary.12