Document direct local multiview preview and Samsung verification

This commit is contained in:
evgeny committed 2026-10-20 19:27:38 +02:00
1 parent 5c1619420a
commit 6c74749dd4
2 files changed
+22

No files matched your search

+6
View File
@@ -1059,6 +1059,12 @@ Desktop:
Плоский keyed Layout сохраняет Surface при перекладке. ON_STOP/закрытие освобождает readers;
Surface/SurfaceTexture освобождаются только после выхода decoder worker.
Перед Android-звонком новые viewers заблокированы; подготовка ждёт workers и закрытия общего AudioTrack вне UI-потока.
- Android: собственная плитка использует StreamController.preview — прямой выход Camera2 параллельно encoder Surface.
Reader, видеодекодер, Opus playback и вход микшера для неё не создаются; публикация звука другим зрителям сохраняется.
Экран публикации и сетка используют общий StreamPreviewPlayback с поворотом по сенсору/экрану.
Нажатие разворачивает любую плитку; повторное нажатие или Back возвращает сетку без пересоздания её Surface.
ON_STOP отключает только preview output, ON_START подключает его снова; encoder и origin публикации сохраняются.
Завершённая собственная плитка удаляется без дренирования; ошибка preview не запускает remote decoder/retry.
- PCM всех источников смешивается в один stereo 48kHz output: SoundManager на desktop,
StreamAudioMixer/AudioTrack на Android. Opus, SoundTouch, темп, PTS и A/V clock у каждого свои.
Общий limiter имеет быстрый attack и release 100ms; тихая новая плитка не уменьшает громкость остальных.
+16
View File
@@ -4,6 +4,22 @@
## Текущие задачи
[+] **Android multiview: собственная трансляция напрямую и без местного звука** — 20.10.2026:
Собственная плитка получает Camera2 preview до кодирования, без reader/decoder/Opus playback/mixer input.
Общий StreamPreviewPlayback используется экраном публикации и сеткой; полноэкранный режим сохраняет target.
Собственная плитка не запускает remote retry и не ждёт декодируемый хвост при удалении.
Головная сборка, APK и Android unit 129/129 PASS; APK установлен на SM-A525F.
Проверено в существующем Stream-Camera-Test (единственный участник — свой узел), 20:19:51–20:24:57:
публикация со звуком, переход preview → сетка → fullscreen → сетка, фон/возврат, stop при развёрнутой плитке.
Во всём сеансе generation=1/origin неизменны, encoder 9048 кадров/dropped=0;
fullscreen target=249460734, кадры 369→5389 без новой camera session. Все три preview target освобождены.
Локальных viewer/decoder/mixer opens=0; завершение автоматически удалило выбранную плитку и вернуло панели окна.
Затем две удалённые трансляции: 1126/780 показанных кадров, один mixer input/AudioTrack;
tap/Back, viewer failed/released/retry=0. Одновременный local+remote в общем канале отдельно не проверялся.
В исходящем звуке прежний компрессор сообщил 11 clipping предупреждений; ошибок video/stream не было.
Логи /tmp/sm-self-live.log, /tmp/sm-self-evidence.json; проверка /tmp/sm-self-evidence.py;
сборки /tmp/sm-self-core-build.log, /tmp/sm-self-android-build.log; снимок /tmp/sm-self-fullscreen.png.
[+] **Android multiview: нажатие разворачивает плитку** — 20.10.2026:
Нажатие на видео разворачивает его на весь экран; повторное нажатие или Back возвращает сетку.
Общий immersive-режим восстанавливает панели окна; видео вписывается без обрезки с поворотом 0/90°.