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) UI и периодические фризы (15.10.2026)
Android: принимаемое видео занимает весь экран, своя камера — миниатюрой поверх него. Android: принимаемое видео занимает весь экран, своя камера — миниатюрой поверх него.
Ориентация экрана выбирается по размерам принятого кадра с учётом rotation; весь кадр
вписывается максимально крупно с исходными пропорциями, без crop и растяжения.
При несовпадении пропорций остаются поля. Выход из экрана звонка восстанавливает прежнюю
ориентацию; краткое переподключение Surface не вызывает обратного поворота.
При видео экран остаётся включённым, proximity-overlay отключён. Если выбран EARPIECE,
переход на SPEAKER ждёт подтверждённого FAR; UNKNOWN/NEAR переключение запрещают.
Выключение видео, конец звонка и ручной выбор выхода отменяют ожидание. HEADSET не меняется,
автоследование за гарнитурой сохраняется. Отсутствующий датчик означает отсутствие proximity;
при отказе регистрации состояние остаётся UNKNOWN с предупреждением, автоматического переключения нет.
Без RX локальная камера видна только миниатюрой на экране аудиозвонка; без кадров Без RX локальная камера видна только миниатюрой на экране аудиозвонка; без кадров
место под видео не резервируется. Касание показывает кнопки, через 5с они скрываются. место под видео не резервируется. Касание показывает кнопки, через 5с они скрываются.
Имя/статус/диагностика не рисуются поверх видео; параметры вынесены в «Настройки звонка». Имя/статус/диагностика не рисуются поверх видео; параметры вынесены в «Настройки звонка».
@ -546,6 +555,10 @@ fullscreen только для видео, Esc возвращает его об
Preview берётся из того же QVideoFrame (до 10 fps). Только при отсутствии RX своя миниатюра Preview берётся из того же QVideoFrame (до 10 fps). Только при отсутствии RX своя миниатюра
показывается в окне звонка; без кадров пустого видеоблока нет. После 5с без показанных кадров RX скрывается: показывается в окне звонка; без кадров пустого видеоблока нет. После 5с без показанных кадров RX скрывается:
отдельного VIDEO_OFF в протоколе пока нет. отдельного 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, Подтверждённая причина фризов раз в 1–2с: коррекция capture timestamp меняла audio source_epoch,
а обе платформы сбрасывали video decoder и ждали KEY. Теперь source_epoch обновляет а обе платформы сбрасывали video decoder и ждали KEY. Теперь source_epoch обновляет

3
doc/tasks.md

@ -58,6 +58,9 @@
UI исправлен: Android fullscreen RX + своя миниатюра, управление и диагностика отделены; UI исправлен: Android fullscreen RX + своя миниатюра, управление и диагностика отделены;
desktop — отдельное изменяемое окно видео со своей миниатюрой в углу; звонок и настройки — в своём окне. desktop — отдельное изменяемое окно видео со своей миниатюрой в углу; звонок и настройки — в своём окне.
Только при отсутствии RX своя миниатюра остаётся в окне звонка. Закрытие видеоокна не завершает звонок. Только при отсутствии RX своя миниатюра остаётся в окне звонка. Закрытие видеоокна не завершает звонок.
Android выбирает ориентацию экрана под RX и вмещает весь кадр с исходными пропорциями, без обрезки.
Видео удерживает экран включённым без proximity-overlay; EARPIECE -> SPEAKER только после FAR,
UNKNOWN/NEAR ждут, ручной выбор/выключение видео/конец звонка отменяют ожидание. HEADSET сохраняется.
Фризы: обе платформы сохраняют 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.

Loading…
Cancel
Save