Record adaptive audio validation and confirmed stream startup failure

This commit is contained in:
evgeny committed 2026-10-16 17:38:32 +02:00
1 parent 16e547d15d
commit 37eccd06ea
1 file changed
+26 -10
+26 -10
View File
@@ -4,6 +4,17 @@
## Текущие задачи
[+] **Постепенно увеличивать аудиобуфер при подтверждённых сбоях backend** — 16.10.2026:
AudioDevice получает WASAPI DATA_DISCONTINUITY, ALSA EPIPE и PulseAudio hole/overflow/underflow.
Два опроса со сбоями за 5с увеличивают период на 5мс; между изменениями минимум 5с,
первый 1с после запуска пропускается. Запрошенная полная ёмкость ограничена 100мс.
Начальные настройки Linux сохранены (capture 10мс); новая сессия/устройство возвращает исходный запрос.
Backend может округлить фактический размер: он и каждый шаг записываются в лог; повторные сбои агрегируются за 5с.
Перезапуск захвата выполняется без блокировки GUI, с сохранением RX звонка/рации и безопасным stop во время close.
Проверены реальные callback-уведомления, нижняя граница/лимит, reopen/backoff и uninit=700мс.
GUI собран; 7/7 аудиотестов PASS: /tmp/audio-buffer-final-tests.log.
Проверка слышимого результата с Windows-драйвером остаётся на следующем звонке пользователя.
[+] **Проверять поступление PCM микрофона в desktop-звонках и рации** — 16.10.2026:
Секунда без первого/очередного корректного PCM отключает захват с понятным сообщением GUI.
Цифровая тишина допустима; отсутствие callbacks, nullptr и frames=0 проверяются отдельно.
@@ -17,16 +28,21 @@
/tmp/mic-stream-core-check-unrestricted.log, /tmp/stream-h265-progress.log.
[ ] **Устранить неподвижный кадр Windows-трансляции на Android и зависание stop** — 16.10.2026:
Новые 4.log/6.log: Realtek PCM поступает; после согласия на CPU открывается libx265 3440×1440.
В 4.log остановка заканчивается сообщением закрытия микрофона, завершение video worker не видно.
Добавлены стадии video worker, счётчики преобразования/кодирования/публикации и этапы stop/join.
Соответствующий Samsung-лог: epoch=3fdca693c4ec22b6, KEY PTS=19237089, следующий output=19876744.
Декодированы два кадра, показан один; written=played=0, аудиоустройство закрыто, clock стоит на KEY,
сетевой запас растёт более 46с. Причина отсутствия первого PCM пока не установлена.
Добавлены первая/ожидающая аудиометка cursor и audioInputs/audioPts/needsAudio в Android-сводке.
Диагностический APK собран, unit-тесты прошли, установлен на Samsung RZ8R72MG64B.
Повторное открытие невозможно: источник уже отсутствует в канале «ннн»; запрошен новый запуск/stop Windows.
Логи: /tmp/stream-viewer-sm.log, /tmp/stream-viewer-diagnostic.log. Исправление этих двух зависаний ещё не подтверждено.
Новый 4.log и Samsung epoch=d8252b9a534ff713 установили цикл ожидания:
KEY=20669261, первый звук=21097059 (позже на 427798мкс), lookahead=80мс, written=played=0.
Cursor теперь прогревает аудио от фиксированной первой аудиометки, сохраняя ограниченный lookahead.
Регрессия с этими PTS и реальными RS/Opus/SoundTouch выдаёт PCM и продвигает часы; reset проверен отдельно.
В Windows videoLoop пишет stopped, но GUI застревает на join после возврата из функции.
Join video/audio вынесен в отдельный worker; GUI работает до полного выхода потоков, включая native TLS.
FIN отправляется после workers параллельно асинхронному закрытию микрофона; owner/lease сохраняются до завершения.
Проверяется cleanup native TLS с BlockingQueuedConnection к GUI, обычный stop и destructor.
Общие playback-тесты: 2/2 PASS. check.sh: 156/156, proxy 9/9, burst/load PASS (134с).
APK и Android unit-тесты собраны, Samsung RZ8R72MG64B обновлён. Старый источник виден в каталоге,
но отдаёт только остаток seq=918 без KEY, после чего новый viewer получает open timeout.
Нужна свежая трансляция/stop из Windows после пересборки; оба исправления на исходной паре устройств ещё не подтверждены.
Отдельно libx265 3440×1440 в Windows выдаёт примерно 2–3fps: это ограничение CPU остаётся.
Логи: /tmp/stream-viewer-new-run.log, /tmp/late-audio-test.log, /tmp/stream-viewer-after-update.log,
/tmp/stream-start-playback-tests.log, /tmp/stream-audio-stop-full-check.log.
[+] **Проверять микрофон и спрашивать перед переходом трансляции на CPU** — 16.10.2026:
По 4.log/6.log: GPU-кодировщики недоступны, WASAPI-микрофон камеры выдаёт frames=0,