Browse Source

Record adaptive playback validation and ring reader lifecycle

master
evgeny 7 days ago
parent
commit
84246bea89
  1. 9
      doc/service_lifecycle.md
  2. 20
      doc/tasks.md

9
doc/service_lifecycle.md

@ -95,6 +95,15 @@ Worker резервирует completion до запуска и передаёт
транскодирование или распознавание речи может задержать stop; принудительного
прерывания этих библиотек нет.
Live media хранится в RS-кольце с общим индексом PTS; каждый локальный handle владеет
отдельным cursor. Пауза player не останавливает сетевой ingest и не закрепляет старые
части против вытеснения. После FIN publisher может снять своё владение, сохранив
завершённый источник для оставшихся локальных readers. Последний close освобождает
источник, индекс и кольцо. Новая публикация отсоединяет readers прежней эпохи.
При stop/destroy отменяются delivery и media-index callbacks до освобождения store;
destroy отсоединённого cursor не обращается к store. Frontend прекращает audio callback
и worker до освобождения своего DSP; borrowed handle/RS pointers между потоками не передаются.
Статус транспорта UP подтверждает восстановление физического пути. READY сессии
группы означает согласованный JOIN/ACCEPT и завершённый обмен её таблицей; именно
его ждёт recovery. REINIT меняет эпохи обмена, сохраняя рабочие маршруты. Эпохи

20
doc/tasks.md

@ -4,6 +4,26 @@
## Текущие задачи
[+] **Live: воспроизведение из RS-кольца и минутная адаптация задержки** — 14.10.2026:
Android и desktop используют общее кольцо кодированных данных, метаданные PTS/KEY и отдельные
cursor каждого reader. Пауза player не останавливает live ingest/selector; длинные кадры собираются
ограниченными проходами с отложенным продолжением без ожидания новых пакетов.
Убрана фиксированная стартовая буферизация 150ms; вне кольца остаются ближайшие кадры и рабочая порция PCM.
Общий контроллер хранит 60 секундных минимумов запаса. История корректируется по фактическому
простою/услышанному материалу, включая аппаратную очередь и расход ранее поставленного ускоренного PCM.
После полной здоровой минуты плавный темп до x1.1 уменьшает задержку до безопасного остатка;
SoundTouch сохраняет высоту звука и стереобаланс. Обычная нехватка сохраняет decoder references;
GAP, вытеснение и разрыв медиапоследовательности начинают новый KEY и новую историю.
FIN дочитывается каждым reader; close завершённого publisher сохраняет кольцо для локальных owners.
Проверены шестисекундная пауза сетевого reader без restart, точные remote/local FIN drain,
независимые cursors, поздняя повреждённая RS-часть, большой кадр, разрывы, конфигурация и границы PTS.
Реальные H.264/Opus: 30fps при audio latency 200ms, preroll, revision/rotation, stereo x1.1 без изменения тона,
физические аудиочасы, громкость и баланс памяти. Диагностика показывает запас/минимум, коррекцию, темп и wait/resume.
150 тестов ядра прошли без ошибок/пропусков; полный check.sh с proxy/burst/load — 129s.
Три Qt stream/audio timing теста прошли; vibechat и APK arm64-v8a/x86_64 собраны.
Устройства/colo2 в этой задаче не обновлялись. Архитектура: `doc/stream.txt`, lifecycle: `doc/service_lifecycle.md`.
Логи: `/tmp/stream-playback-{clock-test,full-check}.log`, `/tmp/stream-final-{gui-tests,desktop-build,android-build}.log`.
[+] **Live: переменный размер RS и одна подпись внутри пачки** — 13.10.2026:
RS принимает фактическую длину, уменьшает все части одной пачки до одинакового минимального размера
и дополняет максимум k-1 нулями; один контекст/матрица используются повторно, без аллокаций RS на encode/decode.

Loading…
Cancel
Save