Browse Source

Record hardware bitrate verification and final call video checks

master
evgeny 5 days ago
parent
commit
401ca96d7d
  1. 15
      doc/call_video.txt
  2. 3
      doc/tasks.md

15
doc/call_video.txt

@ -67,6 +67,7 @@ Desktop готовит кандидата в отдельном потоке, п
Готовый кандидат применяется только на IDR; при незавершённой подготовке текущий Готовый кандидат применяется только на IDR; при незавершённой подготовке текущий
GOP продолжается. Android сначала меняет bitrate через MediaCodec.setParameters GOP продолжается. Android сначала меняет bitrate через MediaCodec.setParameters
без остановки; подтверждает только проверенный KEY с PTS не раньше команды. без остановки; подтверждает только проверенный KEY с PTS не раньше команды.
Уже закодированные P-кадры перед этим KEY сохраняются: runtime bitrate не разрушает references.
При отказе runtime API Android переоткрывает encoder последовательно (аппаратный При отказе runtime API Android переоткрывает encoder последовательно (аппаратный
ресурс может быть единственным), при ошибке восстанавливает прежнюю конфигурацию ресурс может быть единственным), при ошибке восстанавливает прежнюю конфигурацию
и подтверждает фактически восстановленный bitrate. В этой резервной ветке возможна и подтверждает фактически восстановленный bitrate. В этой резервной ветке возможна
@ -556,3 +557,17 @@ H.264 commit 5–7мс; H.265 51–76мс включая кодирование
Измерение /tmp/call-video-background-test.log; для H.265 стоимость кодирования остаётся существенной. Измерение /tmp/call-video-background-test.log; для H.265 стоимость кодирования остаётся существенной.
Android assembleDebug и 81 unit-тест проходят. Полный звонок с камерами после этих правок Android assembleDebug и 81 unit-тест проходят. Полный звонок с камерами после этих правок
требует ручной приёмки; автоматические проверки не подтверждают его целиком. требует ручной приёмки; автоматические проверки не подтверждают его целиком.
Аппаратная смена bitrate без перезапуска подтверждена на шумовом YUV с ограниченным контрастом:
Samsung AVC: 3.985M -> 306.8k -> 3.990M; Unisoc HEVC: 4.031M -> 291.9k -> 4.042M;
Unisoc AVC: 3.993M -> 29.3k -> 3.994M бит/с. В каждой пробе получены все 360 кадров
с точными PTS и проверенными KEY. При сильной квантизации шум пропадает; фактический
выход ниже target допустим. Проверяются верхняя граница low-rate и восстановление high-rate,
а не наличие filler до target. Полностью случайный 8-bit шум в первой пробе Samsung
превысил 4M: аппаратный CBR не является жёстким ограничителем выходного потока.
Сетевой admission/ограничитель очереди остаётся необходимым.
Логи: /tmp/call-video-dynamic-sm-detail2.log, /tmp/call-video-dynamic-sp-final.log,
/tmp/call-video-sp-rates-final.log. CallVideoProbe принимает -e codec 1/2 для отдельной пробы.
Итоговый APK установлен на оба телефона. check.sh: 154/154, proxy 9/9, burst/load PASS (119с),
/tmp/call-video-core-final-check-unsandboxed.log. Первый запуск в sandbox не мог открыть сокеты;
успешный полный прогон выполнен с разрешённым сетевым доступом.

3
doc/tasks.md

@ -60,6 +60,9 @@
Фризы: обе платформы сохраняют decoder при коррекции audio epoch; production RX 90/90 кадров, Фризы: обе платформы сохраняют decoder при коррекции audio epoch; production RX 90/90 кадров,
32 коррекции часов, 0 KEY requests/rejections. Android Camera2 больше не теряет кадры на пороге 33333мкс. 32 коррекции часов, 0 KEY requests/rejections. Android Camera2 больше не теряет кадры на пороге 33333мкс.
Desktop готовит encoder при смене bitrate в фоне, применяет на IDR; Qt codecs 10/10 PASS. Desktop готовит encoder при смене bitrate в фоне, применяет на IDR; Qt codecs 10/10 PASS.
Runtime bitrate проверен на Samsung AVC и Unisoc HEVC/AVC: все 360 кадров каждого потока,
ограничение low-rate и возврат к 4M. Android сохраняет P-кадры, ожидающие нового KEY.
Итог: Android 81/81, check.sh 154/154 + proxy 9/9 + burst/load PASS; APK обновлён на обоих телефонах.
Осталась ручная приёмка полного звонка с камерами, Surface, A/V и переключениями после исправления. Осталась ручная приёмка полного звонка с камерами, Surface, A/V и переключениями после исправления.
Аппаратные probes используют синтетические кадры. Аппаратные probes используют синтетические кадры.
Контракты, этапы и проверки: `doc/call_video.txt`. Контракты, этапы и проверки: `doc/call_video.txt`.

Loading…
Cancel
Save