diff --git a/doc/tasks.md b/doc/tasks.md index a3b40f47..9411e6b5 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -39,8 +39,31 @@ Desktop после пробы держит один готовый блок: pcm_after_mix в среднем ~18.6мс вместо ~38.6мс; после начального пустого callback новых starvation нет. Стартовый callback повысил резерв 2 -> 3, возврат 3 -> 2 -> 1 занял 40с; обучение стартового периода стоит отделить от рабочего starvation. - Основная задержка Samsung не устранена: требуется отдельная проверка AAudio/MMAP с речевыми атрибутами, - без подмены звонка мультимедийным потоком. Принятый backend, аппаратные timestamps и маршруты проверить до интеграции. + Отдельный APK audio-probe проверен на обоих телефонах: VOICE_COMMUNICATION/SPEECH, активный захват, + тишина на выходе, данные микрофона отбрасываются. Основное приложение пока использует AudioTrack. + Samsung: AudioTrack с буфером 20мс даёт outputUs ~103мс в среднем; повторное открытие не включает FAST. + AAudio/MMAP на speaker: shared mono/stereo ~30мс, exclusive mono/stereo ~24мс, буфер 20мс, underrun=0. + Earpiece отсутствует в MMAP-профиле устройства; AAudio падает в legacy shared с буфером 40мс и outputUs ~129мс. + Проверен круг speaker -> earpiece -> speaker: обе смены дают AAUDIO_ERROR_DISCONNECTED; + повторное открытие speaker возвращает MMAP/exclusive и 24.281мс в среднем (22.471..25.700), underrun=0. + Q8: все варианты AAudio остаются legacy, outputUs ~166–172мс при буфере 40мс. + AudioTrack Q8 с 20мс нестабилен (353/352/362 underrun за три этапа по 8с); + контроль с 40мс даёт 160–162мс в среднем и ноль underrun на всех трёх этапах. + Это оценка аудиовыхода по timestamp, включая очередь приложения, не акустическая задержка всего звонка. + Изолированная проба не проверяет DSP-нагрузку реального звонка и качество AEC; перед интеграцией нужны эти проверки. + Следующий этап: один владелец выхода, повторный выбор быстрого backend после подтверждённой смены маршрута, + закрытие/открытие вне realtime callback, новая эпоха аппаратных часов при сохранении шкалы медиа/JB. + Callback должен только выдавать подготовленный PCM. Legacy AAudio не дал выигрыша: сохранять AudioTrack fallback. + Смена маршрута не должна навсегда запрещать новую пробу MMAP; неудачи ограничивать в пределах текущего маршрута. + Не обещать бесшовность аппаратного DISCONNECTED: судьбу PCM, уже переданного старому устройству, нужно определить отдельно. + Сборки ядра, :app:assembleDebug и :audio-probe:assembleDebug прошли; оба диагностических прогона освободили ресурсы. + Логи: /tmp/aaudio-probe-{sm,q8}.log; AudioFlinger: /tmp/aaudio-probe-{sm,q8}-flinger.txt; + AudioPolicy Samsung: /tmp/aaudio-probe-sm-policy.txt. + Повтор: установить audio-probe/build/outputs/apk/debug/audio-probe-debug.apk через adb install -g -r; + открыть com.utun.audioprobe/.ProbeActivity при завершённых звонках и оставить Activity видимой. + Полная матрица запускается без аргументов; для круга Samsung: --es api aaudio --ei channels 1 + --es sharing exclusive --ez roundtrip true --ei seconds 20; контроль Q8: --es api track --ei buffer_ms 40. + Логи adb logcat -s AudioProbe; для нового прогона сначала am force-stop com.utun.audioprobe после завершения предыдущего. [x] **Завершение звонка и видеопорта после обрыва транспорта** — 15.10.2026: Трасса test_call доказала потерю HANGUP при смене эпохи сигналинга: router reset удалял старую очередь.