Browse Source

Record platform video integration and verified hardware contract blockers

master
evgeny 5 days ago
parent
commit
a06bbc34df
  1. 53
      doc/call_video.txt
  2. 8
      doc/tasks.md

53
doc/call_video.txt

@ -412,7 +412,52 @@ PTS, профиль и level проверены на всех участках;
/tmp/call-envelope-full-check-final.log. ChatGUI и Android assembleDebug собраны: /tmp/call-envelope-full-check-final.log. ChatGUI и Android assembleDebug собраны:
/tmp/call-envelope-gui-build-verified.log, /tmp/call-envelope-android-build-final.log. /tmp/call-envelope-gui-build-verified.log, /tmp/call-envelope-android-build-final.log.
Текущая граница готовности: согласование и desktop codec готовы как компоненты. Интеграция платформ и аппаратная проверка, 14.10.2026
Далее нужны платформенные пробы CAPS, capture/worker/bridge, decoder/render по audio Добавлен общий call_video_port: один TX mailbox, RX до восьми кадров/4MiB,
clock, Android MediaCodec и управление камерой/разрешением/кодеком в окне звонка. команды формата/bitrate с ID звонка, отменяемый post, безопасный detach ядра.
Реальные звонки между платформами и аппаратные codecs ещё не проверены. Сетевой test_call проверяет обе стороны port, владение RX, backpressure TX,
изменение диапазона и отмену ожидающего post: 2/2 PASS; /tmp/call-video-port-network.log.
ChatGUI: отдельные TX/RX workers, Qt camera, FFmpeg decoder с проверкой выхода,
очередь показа по call_audio_get_clock. Окно содержит камеру, разрешение, codec,
диапазон bitrate и видео. Сборка успешна; production decoder проверен на прежних
360 кадрах каждого codec с переходами bitrate, 5/5 QtTest cases PASS:
/tmp/call-video-desktop-integration-build.log, /tmp/call-video-decoder-test.log.
Android: JNI к общему port, Camera2/ImageReader YUV, смена MediaCodec на IDR без
перезапуска камеры при смене bitrate, RX Surface decoder по аудиочасам с drain
старого generation. CallService владеет видео и camera foreground; CallScreen
содержит управление/разрешение камеры/Surface. AssembleDebug успешен, установлено
на D2AR10P3600820 и RZ8R72MG64B. Полный видеозвонок ещё НЕ принят и не проверен.
Фактический VBV аппаратного encoder также пока не подтверждён: MediaCodec не даёт
универсального управления CPB, принятие configure не доказывает этот предел.
Аппаратный блокер подтверждён явной debug instrumentation CallVideoProbe:
adb -s SERIAL shell am instrument -w com.utun.chat/com.utun.chat.data.CallVideoProbe
Samsung RZ8R72MG64B: c2.qti.avc.encoder проходит реальный encode/decode при явном
AVCProfileConstrainedBaseline. c2.qti.hevc.encoder/OMX.qcom.video.encoder.hevc:
SPS profile=1, tier=1, level=93 при запросе Main tier (первые байты 42 01 01 21).
D2AR10P3600820: c2.unisoc.avc.encoder/OMX.sprd.h264.encoder возвращают SPS
profile=66, constraints=128, level=31, а не Constrained Baseline; явный запрос
AVCProfileConstrainedBaseline этого не меняет. HEVC Main/Main tier/level=93
имеет sps_max_dec_pic_buffering_minus1=2 (три decoded pictures), reorder=0.
Текущий Android validator требует DPB<=2; это более жёсткое требование, чем
reference=1: размер DPB нельзя автоматически приравнивать числу активных references.
Логи: /tmp/call-video-probe2-D2AR10P3600820.log,
/tmp/call-video-probe2-RZ8R72MG64B.log. Первый телефон не объявляет ни одного codec,
Samsung объявляет только AVC. Нельзя считать такое состояние готовыми видеозвонками.
Дополнительно нужно разделить probe encode/decode: сейчас Android и desktop
консервативно объявляют decoder только после успешного собственного encoder.
Это лишает совместимого приёма устройства с неподходящим передатчиком.
Приёмный decoder следует проверять независимо эталонными потоками и общими limits.
Нужно проверить нормализацию HEVC tier по стандарту: High tier для level 3.1
нельзя просто разрешить как ещё один корректный режим.
Рекомендуемая доработка: H.264 Baseline (включая Constrained Baseline), HEVC Main,
отдельные проверенные encode/decode, DPB по уровню и фактическим SPS при reorder=0.
Сохранить проверку реального потока, ограниченные очереди и передачу bitrate на IDR;
не исправлять маркировку SPS без доказательства соответствия. Другой вариант —
поставлять на Android свои software codecs, сохранив прежний строгий контракт.
Дальнейшая реализация остановлена по правилу AGENTS.md о выявленной нестыковке.
После решения нужны проверки CPB/bitrate, камеры/смены Surface/lifecycle, полный
check.sh, Kotlin unit-тесты и реальные звонки Android↔Android↔ChatGUI.

8
doc/tasks.md

@ -40,7 +40,13 @@
При сужении peer CAPS ожидающий кадр отбрасывается и admission закрывается; сетевой тест 2/2 PASS. При сужении peer CAPS ожидающий кадр отбрасывается и admission закрывается; сетевой тест 2/2 PASS.
Реальная codec-проверка повторена с выбранным общим кодом level 3.0: 5/5 cases PASS, 360 кадров на codec. Реальная codec-проверка повторена с выбранным общим кодом level 3.0: 5/5 cases PASS, 360 кадров на codec.
Итоговые ChatGUI/Android assembleDebug собраны; check.sh 154/154, proxy 9/9, burst/load PASS (128с). Итоговые ChatGUI/Android assembleDebug собраны; check.sh 154/154, proxy 9/9, burst/load PASS (128с).
Codec component ещё не подключён к звонку: нужны платформенные пробы CAPS, capture/bridge/render и Android backend. Подключены общий ограниченный call_video_port, desktop camera/encoder/decoder/audio-clock render и окно управления;
Android JNI/Camera2/YUV/MediaCodec/RX Surface, CallService и экран управления. Обе сборки проходят.
Новые сетевой port-тест 2/2 и production desktop decoder 5/5 проходят; полный видеозвонок ещё не принят.
Аппаратная проба выявила блокер: Samsung AVC проходит, HEVC выдаёт High tier вместо Main;
второй телефон AVC выдаёт Baseline вместо Constrained Baseline, HEVC Main требует DPB=3.
Нужно отделить decoder probe от encoder, не приравнивать DPB к reference count и уточнить контракт profiles/DPB/CPB.
Диагностика и варианты в ТЗ; дальнейшая реализация остановлена по правилу AGENTS.md о нестыковке.
Контракты, этапы и проверки: `doc/call_video.txt`. Контракты, этапы и проверки: `doc/call_video.txt`.
[+] **Android live: увеличение и перемещение видео как в просмотрщике файлов** — 14.10.2026: [+] **Android live: увеличение и перемещение видео как в просмотрщике файлов** — 14.10.2026:

Loading…
Cancel
Save