Browse Source

Record keyframe recovery fixes and remaining architecture review

master
evgeny 5 days ago
parent
commit
d2f8e57118
  1. 25
      doc/tasks.md

25
doc/tasks.md

@ -4,17 +4,20 @@
## Текущие задачи
[ ] **Live: согласовать выдачу cursor с проверкой revision/KEY в media store** — 14.10.2026:
При переносе тестов старого stream_media_receiver на рабочий store/cursor выявлено расхождение:
после KEY revision=1, неполного кадра revision=1 и обычного кадра revision=2 индекс остаётся на старом PTS,
но cursor выдаёт кадр revision=2 без KEY. Desktop отбрасывает его собственной проверкой waitKey.
Воспроизведение: `make -C tests test_stream_media`, затем `tests/test_stream_media --revision-transition`.
Диагностический режим намеренно падает: indexed_video_us=1000000, result=0, revision=2, frame=3, flags=0.
Обычный запуск test_stream_media сохраняет прежние проверки; старый receiver пока не удалён.
Согласовать допуск видео в store/cursor без сброса аудио и без запрета старой revision отстающим readers;
проверить фрагменты, KEY, GAP и чтение истории. После исправления включить регрессию в обычный запуск,
перенести остальные тесты receiver на store/cursor и удалить неиспользуемый API.
Продолжение архитектурного плана: общий viewer reader, измерение запросов кандидатов, граница relay/network.
[+] **Live: согласовать выдачу cursor с проверкой revision/KEY в media store** — 14.10.2026:
Каждый cursor хранит revision последнего выданного полного видео и пропускает новую только с полным KEY.
Неполный кадр прежней revision удаляется; аудио и чтение старой истории другими readers сохраняются.
После GAP, нарушения последовательности фрагментов и вытеснения reader начинает с полного KEY;
зависимые кадры и частичный KEY не выдаются. Готовый KEY не ждёт таймера.
Регрессии включены в обычный test_stream_media; отдельный запуск: `tests/test_stream_media --revision-transition`.
Неиспользуемый stream_media_receiver удалён; сборка, FEC, конфликты формата и восстановление проверяются на store/cursor.
Desktop/Android используют общий stream_media_open с проверкой выбранной эпохи и откатом нового owner при ошибке.
Дополнительный reader-объект не нужен: владение и курсор уже находятся в STREAM_HANDLE.
[ ] **Live: оценить оставшиеся оптимизации архитектурного плана** — 14.10.2026:
Измерить стоимость получения кандидатов и повторных проверок участников; оптимизировать подтверждённые затраты.
Кэш авторизации требует полной инвалидации при изменении участников, подписантов и ключей канала.
Отделять relay от network только при упрощении владения; не выносить общие внутренние структуры ради размера файла.
[+] **Live: прямое превью Android без собственного decoder** — 14.10.2026:
Камера одновременно выводит в encoder Surface и TextureView; собственное превью больше не открывает

Loading…
Cancel
Save