From f1cccb1c92f5debfc759149d84144235d9b8fd9c Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 20 Oct 2026 20:19:28 +0200 Subject: [PATCH] Document stream controls navigation and Samsung verification --- doc/stream.txt | 6 +++++- doc/tasks.md | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/doc/stream.txt b/doc/stream.txt index 95a776c6..c22e07e0 100644 --- a/doc/stream.txt +++ b/doc/stream.txt @@ -1067,7 +1067,11 @@ Desktop: - Android: собственная плитка использует StreamController.preview — прямой выход Camera2 параллельно encoder Surface. Reader, видеодекодер, Opus playback и вход микшера для неё не создаются; публикация звука другим зрителям сохраняется. Экран публикации и сетка используют общий StreamPreviewPlayback с поворотом по сенсору/экрану. - Нажатие разворачивает любую плитку; повторное нажатие или Back возвращает сетку без пересоздания её Surface. + Нажатие на чужую плитку разворачивает её; повторное нажатие или Back возвращает сетку без пересоздания её Surface. + Нажатие на свою плитку открывает управление поверх сетки; стрелка и системный Back возвращают общий просмотр, + в том числе после остановки публикации. Удалённые readers продолжают работать, собственный preview меняет target. + Позднее освобождение старого preview отсоединяет только свой target и не меняет общую lifecycle-видимость. + На экране публикации остаются только захват, управление и прямой preview; выбор просмотра доступен из шапки чата. ON_STOP отключает только preview output, ON_START подключает его снова; encoder и origin публикации сохраняются. Завершённая собственная плитка удаляется без дренирования; ошибка preview не запускает remote decoder/retry. - PCM всех источников смешивается в один stereo 48kHz output: SoundManager на desktop, diff --git a/doc/tasks.md b/doc/tasks.md index f42ba293..14fb416b 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -4,6 +4,23 @@ ## Текущие задачи +[+] **Android: управление своей трансляцией из сетки с возвратом** — 20.10.2026: + Своя плитка открывает экран управления поверх сетки; стрелка и системный Back возвращают просмотр. + Удалённые readers остаются в композиции; собственный прямой preview передаётся между поверхностями. + На экране публикации убраны отдельные «Смотреть…» и «Смотреть все активные»; вход просмотра остаётся в шапке чата. + При проверке обнаружен и исправлен поздний dispose старой плитки, отключавший новый preview: + dispose снимает observer, AndroidView.onRelease отсоединяет только свой target; ON_STOP по-прежнему отключает output сразу. + Головная C-сборка, APK и Android unit 129/129 PASS. Финальный APK установлен на SM-A525F. + В Stream-Camera-Test (один собственный участник) проверены оба возврата, фон/возврат и stop из управления. + После stop сетка остаётся открытой с ожиданием источников, собственная плитка удалена. + По логам восемь target получили кадры и освобождены; publisher/origin/generation=1 не менялись, + encoder завершил 1902 кадра/dropped=0, собственных viewer/decoder opens нет. + Ошибок stream/video нет; два прежних предупреждения clipping исходящего компрессора, вне изменений UI. + Одновременное сохранение удалённых readers под управлением проверено по структуре композиции, не живым local+remote сценарием. + Тестовая публикация завершена. Логи: /tmp/stream-grid-controls-final-sm.log, + /tmp/stream-grid-controls-evidence.json, /tmp/stream-grid-controls-final-android-build.log, + /tmp/stream-grid-controls-final-core-build.log; исходное воспроизведение: /tmp/stream-grid-controls-sm.log. + [+] **Своя трансляция: глобальная кнопка управления и фильтр выбора** — 20.10.2026: Android/chatgui показывают красную камеру в шапках всех групп, пока локальный publisher действует; Android также показывает её в шапке главного экрана. Сетевой каталог не управляет видимостью кнопки.