Browse Source

Record completed desktop broadcast implementation and checks

master
evgeny 5 days ago
parent
commit
47119c73a4
  1. 3
      doc/service_lifecycle.md
  2. 21
      doc/tasks.md

3
doc/service_lifecycle.md

@ -127,6 +127,9 @@ Qt capture callback хранит только последний кадр, video
закрывает оставшийся publisher. Workers никогда не держат borrowed instance/handle.
Microphone lease публикации эксклюзивен; прежние call/radio/recorder leases совместные.
Восстановление устройства сохраняет владение и не разрешает другой capture до stop/failure.
Fatal ошибка audio worker передаётся в GUI с session ID и завершает всю публикацию;
откат видеоконфигурации применяется только к video/capture. Поздний отказ старого publisher
не завершает новую сессию. Причина ошибки сохраняется в окне после окончания drain.
Статус транспорта UP подтверждает восстановление физического пути. READY сессии
группы означает согласованный JOIN/ACCEPT и завершённый обмен её таблицей; именно

21
doc/tasks.md

@ -4,6 +4,27 @@
## Текущие задачи
[+] **Live: публикация с desktop ChatGUI** — 14.10.2026:
Камера, микрофон, экран и окно через Qt >=6.6 Multimedia/FFmpeg; Wayland/XWayland использует системный портал.
Отдельный controller сохраняет эфир при закрытии окна, сырое превью обновляется до 30Hz независимо от encode.
Выбор рабочего H.264/H.265/VP9/AV1/H.266, разрешения/FPS, bitrate и поворота 0/90/270 с отметкой верха.
Encoder проверяет два принудительных KEY, затем открывает чистую сессию; hardware имеет приоритет.
Смена видеонастроек сохраняет capture, звук и source_epoch; libx264 меняет bitrate без смены encoder.
Ошибка видеорежима откатывает последнюю подтверждённую конфигурацию; fatal Opus завершает эфир и освобождает микрофон.
Stereo Opus/128kbps с общим gain и текущими настройками компрессора рации; mono input обозначается явно.
Общий C stream_publisher для Android/desktop: ограниченные очереди/admission/KEY recovery, uAV2/RS, FIN/drain 2s,
согласованные 100ms TX snapshots (video queue, all-connection inflight, send buffer, ACK_1s). Протокол не меняется.
Microphone lease публикации эксклюзивен, прежняя совместная работа голосовых функций сохраняется.
151 тест ядра и proxy/integration/burst/load прошли; полный check.sh — 129s. Все 32 CTest ChatGUI прошли.
Publisher отдельно: 11 проверок прошли, экранный сценарий запущен отдельно под Xvfb/private D-Bus — без пропусков.
Проверены реальные H.264/H.265/VP9/AV1 encoder/decoder, сохранение decoder при изменении libx264 bitrate,
настоящий X11 screen/window capture, непрерывный неподвижный экран, сырое превью, два стереотона,
H.264 → VP9 и rollback без смены audio/source_epoch, Opus failure, FIN и concurrent detach/leak count.
vibechat и APK arm64-v8a/x86_64 собраны, Kotlin unit tests прошли; Windows runtime/installer fixtures прошли.
Физическая камера, захват через Wayland portal и Windows runtime вручную не проверялись; VVC encoder отсутствует.
Устройства/colo2 не обновлялись. Архитектура: `doc/stream.txt`, `doc/service_lifecycle.md`.
Логи: `/tmp/desktop-stream-{full-check,final-gui-tests,final-publish-test,screen-test,android-build,runtime-test,installer-test}.log`.
[+] **Live: выбор видеокодека/битрейта и статистика отправки 10Hz** — 14.10.2026:
Android показывает доступные Surface encoder в порядке H.264/H.265/VP9/AV1/H.266,
проверяя профиль, разрешение/FPS и диапазон bitrate; аппаратные encoder имеют приоритет.

Loading…
Cancel
Save