Skip to content

Conversation

@voluntas
Copy link
Member

@voluntas voluntas commented Aug 8, 2025

No description provided.

voluntas added 29 commits August 7, 2025 00:53
- コマンドラインオプション --fake-capture-device を追加
  - USE_FAKE_CAPTURE_DEVICE マクロでガード
- Blend2D ライブラリの依存関係を追加(バージョン 0.12.0)
- Safari モードのフェイク映像キャプチャを実装
  - タイマー、フレーム番号、アニメーション表示(フォント埋め込みは未実装)
  - 移動するカラーボックスのアニメーション
  - 円グラフのアニメーション
- run.py に --disable-fake-capture-device オプションを追加
- CMake で USE_FAKE_CAPTURE_DEVICE フラグを追加
- FindBlend2D.cmake を追加
- install_blend2d_official と _build_blend2d に分離(Zakuro と同じ構造)

Zakuro の実装を参考にして、テスト用のフェイク映像デバイスを
実装しました。実際のカメラデバイスなしで動作確認が可能になります。
--disable-fake-capture-device でビルドした場合は完全に無効化されます。
フォントがない前提で動作するようにフォント関連のコードを削除:
- DrawTexts メソッドと関連する BLFont メンバー変数を削除
- has_font_ フラグと条件分岐を削除
- デジタル時計のみを表示するシンプルな実装に変更
USE_FAKE_CAPTURE_DEVICE が定義されていない場合のダミー実装を削除して、常に Blend2D がある前提でのシンプルな実装に変更
- FakeAudioCapturer を新規作成(AudioDeviceModule を実装)
- FakeVideoCapturer に FakeAudioCapturer への参照を追加
- 円(パイチャート)が一周完了時に 1000Hz のビープ音(100ms)を生成
- RTCManager で fake_capture_device 時に FakeAudioCapturer を使用
- main.cpp で FakeVideoCapturer と FakeAudioCapturer を連携

ビープ音は WebRTC のオーディオストリームとして送信される
ビルドエラーを修正するため、USE_FAKE_CAPTURE_DEVICE が有効な場合に fake_audio_capturer.cpp をソースファイルに追加
api/make_ref_counted.h をインクルードして webrtc::make_ref_counted を利用可能にした
音声のずれを修正するため以下の改善を実施:
- sleep_until を使用した正確な 10ms 間隔のオーディオ生成
- sin 波の位相を連続させて音の途切れを防止
- 円が 0 度を通過した瞬間を正確に検出してビープ音をトリガー
- 不要な last_beep_frame_ メンバー変数を削除
Platform クラスには name 属性が存在しないため、
適切な target.package_name を使用するように修正
Platform クラスには name 属性が存在しないため、
適切な target.package_name を使用するように修正

- run.py の 353 行目付近: disable_blend2d の判定部分
- run.py の 564 行目付近: disable_fake_capture の判定部分
@voluntas voluntas force-pushed the feature/fake-audio-and-video-capture branch from eeff865 to d84bd9e Compare August 8, 2025 03:19
voluntas and others added 19 commits August 8, 2025 12:39
- VS Code の C++ 設定に USE_FAKE_CAPTURE_DEVICE マクロを追加
- Blend2D の画像データ取得失敗時にエラーログを出力するように修正
- stop_audio_thread_ へのアクセスに適切なメモリオーダーを指定する
- frame_counter_ を atomic 型に変更してメモリオーダーを指定する
- ビデオキャプチャーで連続エラー時に自動停止する機能を追加する
DrawAnimations メソッド内で current_frame 変数が二重に宣言されていた問題を修正。
159行目の重複宣言を削除し、152行目で宣言された変数を使用するように変更。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants