diff --git a/doc/stream.txt b/doc/stream.txt index 9f98531c2..69691a845 100644 --- a/doc/stream.txt +++ b/doc/stream.txt @@ -1054,11 +1054,11 @@ Desktop: снова без завершения эфира. Qt >=6.6 Multimedia/MultimediaWidgets и FFmpeg нужны для публикации; без них сохраняются остальные функции чата. CMake сохраняет признак capture в отдельном marker, deployment/Windows installer включают Multimedia runtime, FFmpeg plugin и транзитивные DLL. -- Видео: QCamera, QScreenCapture или QWindowCapture передают последний QVideoFrame в QVideoSink. +- Видео: в отдельном capture-процессе QCamera, QScreenCapture или QWindowCapture передают последний QVideoFrame в QVideoSink. Под Wayland/XWayland экран выбирается через системный портал. Открытие портала не ограничивается таймаутом подтверждения KEY до появления первого сырого кадра. Callback только заменяет последний кадр под mutex, Qt-очередь кадров не растёт. - Сырое превью обновляется отдельно до 30Hz; encode/conversion и сетевой publisher его не задерживают. + После конвертации CPU-превью обновляется отдельно до 30Hz; encode и сетевой publisher его не задерживают. Для камеры сохраняется относительная шкала backend PTS с привязкой к монотонному origin; при отсутствии PTS используется время захвата callback. Это оценка, а не аппаратный timestamp сенсора. Неподвижный экран кодируется повторно с новым монотонным PTS; последний raw кадр допустим и после @@ -1155,7 +1155,7 @@ Desktop: Пропавший источник дочитывает FIN/готовый хвост: дедлайн равен остатку media + 2s, не более 30s. После удаления последней плитки окно остаётся открытым и ждёт новые источники. - Desktop: квадратная сетка ceil(sqrt(count)), в том числе 2x2, 3x3, 4x4; при >16 расширяется дальше. - Собственная плитка получает последний QVideoFrame от StreamPublishEngine до кодирования, + Собственная плитка получает последний CPU QImage от StreamPublishEngine до кодирования, без reader/decoder/Opus playback и входа в микшер. Нажатие открывает управление своей публикацией; закрытие управления или Esc возвращает фокус сетке, не останавливая публикацию. Нажатие на чужое видео разворачивает одну плитку во весь экран; повторный клик, Esc или кнопка