From 4f91f575a13e5273c559e37e88a3f5bb9b8201ef Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 15 Oct 2026 01:53:47 +0200 Subject: [PATCH] Document Android call video navigation and preview limits --- doc/call_video.txt | 16 +++++++++++----- doc/tasks.md | 4 ++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/doc/call_video.txt b/doc/call_video.txt index 3f17b975..5672ed87 100644 --- a/doc/call_video.txt +++ b/doc/call_video.txt @@ -531,22 +531,28 @@ ChatGUI пересобран; test_call_video_encoder — 10/10 PASS в кажд Работающий GUI автоматически не перезапускался; проверка полного звонка после исправления остаётся. UI и периодические фризы (15.10.2026) -Android: принимаемое видео занимает весь экран, своя камера — миниатюрой поверх него. -Ориентация экрана выбирается по размерам принятого кадра с учётом rotation; весь кадр +Android: принимаемое видео сначала занимает весь экран, своя камера — миниатюрой поверх него. +Назад возвращает к управлению звонком с двумя доступными миниатюрами (своей и собеседника). +Нажатие миниатюры открывает выбранное видео на весь экран; второе остаётся в углу и позволяет +поменять их местами. Выход в управление не выключает передачу/приём и не пересоздаёт TextureView/Surface. +Ориентация экрана выбирается по размерам выбранного кадра с учётом rotation; весь кадр вписывается максимально крупно с исходными пропорциями, без crop и растяжения. -При несовпадении пропорций остаются поля. Выход из экрана звонка восстанавливает прежнюю +При несовпадении пропорций остаются поля. Возврат к управлению звонком восстанавливает прежнюю ориентацию; краткое переподключение Surface не вызывает обратного поворота. При видео экран остаётся включённым, proximity-overlay отключён. Если выбран EARPIECE, переход на SPEAKER ждёт подтверждённого FAR; UNKNOWN/NEAR переключение запрещают. Выключение видео, конец звонка и ручной выбор выхода отменяют ожидание. HEADSET не меняется, автоследование за гарнитурой сохраняется. Отсутствующий датчик означает отсутствие proximity; при отказе регистрации состояние остаётся UNKNOWN с предупреждением, автоматического переключения нет. -Без RX локальная камера видна только миниатюрой на экране аудиозвонка; без кадров +Без RX локальная камера сначала видна миниатюрой на экране аудиозвонка; без кадров место под видео не резервируется. Касание показывает кнопки, через 5с они скрываются. Имя/статус/диагностика не рисуются поверх видео; параметры вынесены в «Настройки звонка». +Кнопки и миниатюры учитывают вырез и systemBarsIgnoringVisibility, включая боковую панель +навигации и временно скрытые системные кнопки. Видео по-прежнему использует весь экран. TextureView и Surface сохраняются при показе кнопок; decoder освобождает старый Surface до его release. Запоздалый detach предыдущего Surface не отключает новый. -Preview берётся из того же Camera2 YUV кадра (до 5 fps), без второй камеры. +Preview берётся из того же Camera2 YUV кадра (до 5 fps, ширина до поворота 192 px), без второй камеры. +Развёрнутое своё видео пока использует это же превью; приём сохраняет исходное качество и частоту кадров. Desktop: первый RX кадр открывает отдельное изменяемое окно видео, без автоматического fullscreen. Окно звонка с управлением и всеми настройками сохраняет свою геометрию и состояние настроек. Видео сохраняет пропорции, своя миниатюра — в углу окна видео. F11/двойной щелчок переключают diff --git a/doc/tasks.md b/doc/tasks.md index c10e8a21..5321c216 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -59,6 +59,10 @@ desktop — отдельное изменяемое окно видео со своей миниатюрой в углу; звонок и настройки — в своём окне. Только при отсутствии RX своя миниатюра остаётся в окне звонка. Закрытие видеоокна не завершает звонок. Android выбирает ориентацию экрана под RX и вмещает весь кадр с исходными пропорциями, без обрезки. + Android: Назад из видео открывает управление звонком; две миниатюры разворачиваются нажатием, + второе видео остаётся в углу. RX TextureView/Surface сохраняются при смене режима. + Кнопки учитывают системные панели (включая боковую навигацию) и вырез экрана. + Своё развёрнутое видео пока использует прежнее превью 192 px / 5 fps; RX без снижения качества. Видео удерживает экран включённым без proximity-overlay; EARPIECE -> SPEAKER только после FAR, UNKNOWN/NEAR ждут, ручной выбор/выключение видео/конец звонка отменяют ожидание. HEADSET сохраняется. Фризы: обе платформы сохраняют decoder при коррекции audio epoch; production RX 90/90 кадров,