Releases: shiguredo/momo
Releases · shiguredo/momo
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
2024.1.4
2024.1.3
2025.1.0-canary.11
[canary] Update VERSION to 2025.1.0-canary.11
2025.1.0-canary.9
[canary] Update VERSION to 2025.1.0-canary.9
2025.1.0-canary.8
[canary] Update VERSION to 2025.1.0-canary.8