|
|
|
|
@ -4,6 +4,24 @@
|
|
|
|
|
|
|
|
|
|
## Текущие задачи |
|
|
|
|
|
|
|
|
|
[ ] **Тесты: диагностировать нестабильную проверку TX snapshot в test_android_stream** — 14.10.2026: |
|
|
|
|
В полном прогоне один раз упала строка 177: snapshot успешен и 0 < video_bytes < 500000 после test_clock_run_for(ua, 1000). |
|
|
|
|
Сам publisher обновляет snapshot таймером 1000; текущий CHECK не выводит result/sample_us/video_bytes. |
|
|
|
|
Отдельный повтор и следующий полный прогон прошли. Добавить значения и проверить ожидание конкретного снимка; |
|
|
|
|
причина не установлена, Kotlin-аудиовывод этот C-тест не вызывает. |
|
|
|
|
Логи прогонов: /tmp/stream-audio-check-host.log, /tmp/stream-audio-native-retry.log, /tmp/stream-audio-check-final.log. |
|
|
|
|
|
|
|
|
|
[+] **Android live: убрать остановку просмотра SM при запуске AudioTrack** — 14.10.2026: |
|
|
|
|
StreamAudioOutput владеет устройством и одним остатком PCM; WRITE_NON_BLOCKING вызывается один раз за проход worker. |
|
|
|
|
Видео и control продолжают обслуживаться при частичной/нулевой записи; 100ms ожидание внутри write удалено. |
|
|
|
|
Аппаратные часы берутся из playbackHeadPosition без экстраполяции; пауза сохраняет PCM, GAP сбрасывает весь timeline. |
|
|
|
|
Запас PCM соответствует фактическому bufferSizeInFrames, короткий EOF получает ограниченную тишину без сдвига media PTS. |
|
|
|
|
Проверены 13 регрессий аудиовывода; все 70 Kotlin-тестов и assembleDebug прошли. |
|
|
|
|
APK установлен только на SM. Первый просмотр: 1203 показанных кадра за 43s, discarded=0 и underruns=0; |
|
|
|
|
повторное открытие также работает, аппаратный старт занял 206ms и 185ms вместо прежнего ошибочного лимита 100ms. |
|
|
|
|
Повтор полного прогона ядра: 151/151; отдельный нестабильный CHECK статистики вынесен выше. |
|
|
|
|
Контракт: doc/stream.txt. Логи: /tmp/stream-audio-sm-final.log, /tmp/stream-audio-android-build.log. |
|
|
|
|
|
|
|
|
|
[+] **Live: согласовать выдачу cursor с проверкой revision/KEY в media store** — 14.10.2026: |
|
|
|
|
Каждый cursor хранит revision последнего выданного полного видео и пропускает новую только с полным KEY. |
|
|
|
|
Неполный кадр прежней revision удаляется; аудио и чтение старой истории другими readers сохраняются. |
|
|
|
|
|