Browse Source

Document video orientation and proximity-gated speaker activation

master
evgeny 5 days ago
parent
commit
e7ff764ed0
  1. 13
      doc/call_video.txt
  2. 3
      doc/tasks.md

13
doc/call_video.txt

@ -532,6 +532,15 @@ ChatGUI пересобран; test_call_video_encoder — 10/10 PASS в кажд
UI и периодические фризы (15.10.2026)
Android: принимаемое видео занимает весь экран, своя камера — миниатюрой поверх него.
Ориентация экрана выбирается по размерам принятого кадра с учётом rotation; весь кадр
вписывается максимально крупно с исходными пропорциями, без crop и растяжения.
При несовпадении пропорций остаются поля. Выход из экрана звонка восстанавливает прежнюю
ориентацию; краткое переподключение Surface не вызывает обратного поворота.
При видео экран остаётся включённым, proximity-overlay отключён. Если выбран EARPIECE,
переход на SPEAKER ждёт подтверждённого FAR; UNKNOWN/NEAR переключение запрещают.
Выключение видео, конец звонка и ручной выбор выхода отменяют ожидание. HEADSET не меняется,
автоследование за гарнитурой сохраняется. Отсутствующий датчик означает отсутствие proximity;
при отказе регистрации состояние остаётся UNKNOWN с предупреждением, автоматического переключения нет.
Без RX локальная камера видна только миниатюрой на экране аудиозвонка; без кадров
место под видео не резервируется. Касание показывает кнопки, через 5с они скрываются.
Имя/статус/диагностика не рисуются поверх видео; параметры вынесены в «Настройки звонка».
@ -546,6 +555,10 @@ fullscreen только для видео, Esc возвращает его об
Preview берётся из того же QVideoFrame (до 10 fps). Только при отсутствии RX своя миниатюра
показывается в окне звонка; без кадров пустого видеоблока нет. После 5с без показанных кадров RX скрывается:
отдельного VIDEO_OFF в протоколе пока нет.
Desktop UI smoke: отдельные окна, сохранение геометрии/настроек звонка, resize видео,
F11/Esc, закрытие/повторное открытие без hangup, local-only и завершение — PASS
(/tmp/call-video-separate-preview.log). ChatGUI собран; Android assembleDebug и 81 unit-тест — PASS.
Автоматическое ожидание FAR и поворот экрана требуют проверки в следующем реальном звонке.
Подтверждённая причина фризов раз в 1–2с: коррекция capture timestamp меняла audio source_epoch,
а обе платформы сбрасывали video decoder и ждали KEY. Теперь source_epoch обновляет

3
doc/tasks.md

@ -58,6 +58,9 @@
UI исправлен: Android fullscreen RX + своя миниатюра, управление и диагностика отделены;
desktop — отдельное изменяемое окно видео со своей миниатюрой в углу; звонок и настройки — в своём окне.
Только при отсутствии RX своя миниатюра остаётся в окне звонка. Закрытие видеоокна не завершает звонок.
Android выбирает ориентацию экрана под RX и вмещает весь кадр с исходными пропорциями, без обрезки.
Видео удерживает экран включённым без proximity-overlay; EARPIECE -> SPEAKER только после FAR,
UNKNOWN/NEAR ждут, ручной выбор/выключение видео/конец звонка отменяют ожидание. HEADSET сохраняется.
Фризы: обе платформы сохраняют decoder при коррекции audio epoch; production RX 90/90 кадров,
32 коррекции часов, 0 KEY requests/rejections. Android Camera2 больше не теряет кадры на пороге 33333мкс.
Desktop готовит encoder при смене bitrate в фоне, применяет на IDR; Qt codecs 10/10 PASS.

Loading…
Cancel
Save