Record adaptive playback validation and ring reader lifecycle
This commit is contained in:
1 parent
2aafe172d6
commit
84246bea89
2 files changed
+29
No files matched your search
@@ -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 меняет эпохи обмена, сохраняя рабочие маршруты. Эпохи
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in new issue
Block a user