Browse Source

Document fullscreen live viewer behavior and SM checks

master
evgeny 4 days ago
parent
commit
7ff95623c1
  1. 5
      doc/stream.txt
  2. 10
      doc/tasks.md

5
doc/stream.txt

@ -854,6 +854,11 @@ Android:
Состояния ожидания KEY и decoder разделены; логи показывают inputs/decoded/shown, рабочие slots, inflight и decoderLeadUs.
Короткие audio gaps заполняются Opus PLC, большой разрыв сбрасывает timeline.
Локальный preview получает прямой Camera2 output в TextureView одновременно с encoder Surface.
Удалённый Android viewer открыт во весь экран: TextureView вписан по aspect без обрезки и изменения пропорций.
После первого KEY ориентация окна следует aspect с учётом rotation источника (sensor landscape/portrait).
Имя канала/источника, статус и крестик расположены поверх видео; при live скрываются через 3s, касание переключает видимость.
Во время подключения/ошибки управление видно. Смена видимости не меняет геометрию TextureView и не пересоздаёт reader.
Выход восстанавливает прежнюю requestedOrientation и видимость системных панелей; ON_STOP освобождает viewer.
Собственный источник не открывает viewer/cursor, decoder, AudioTrack и playback controller.
Preview ориентируется по сенсору камеры и текущему положению экрана; ручной поворот трансляции его не вращает.
TextureView уже применяет ориентацию сенсора. UI Matrix компенсирует только -displayDegrees,

10
doc/tasks.md

@ -4,6 +4,16 @@
## Текущие задачи
[+] **Android live: полноэкранный просмотр с автоповоротом и скрываемым управлением** — 14.10.2026:
StreamViewerScreen выбирает sensor landscape/portrait по aspect первого KEY, уже учитывающему rotation источника.
Видео вписано целиком в экран, без зависимости от надписей; имя, статус и крестик закрытия находятся поверх изображения.
Управление скрывается через 3s live и возвращается касанием; при подключении/ошибке остаётся видно.
Выход восстанавливает ориентацию и системные панели. Capture preview сохраняет отдельное управление публикацией.
На SM подтверждены landscape, TextureView 1920x1080 в экране 2400x1080, скрытие/возврат управления,
неизменные bounds видео, закрытие крестиком и возврат в portrait. Поворот не пересоздал viewer; более 2000 кадров, underruns=0.
APK установлен на SM; 70 Kotlin-тестов, 151 тест ядра, proxy 9/9, burst и load прошли.
Логи: /tmp/stream-viewer-android-build.log, /tmp/stream-viewer-check.log, /tmp/stream-viewer-sm.log.
[ ] **Тесты: диагностировать нестабильную проверку TX snapshot в test_android_stream** — 14.10.2026:
В полном прогоне один раз упала строка 177: snapshot успешен и 0 < video_bytes < 500000 после test_clock_run_for(ua, 1000).
Сам publisher обновляет snapshot таймером 1000; текущий CHECK не выводит result/sample_us/video_bytes.

Loading…
Cancel
Save