Move captured frame conversion to persistent worker

This commit is contained in:
evgeny committed 2026-10-16 18:08:42 +02:00
1 parent 5c9bf9e47c
commit 7a2fa9e199
3 files changed
+74 -31

No files matched your search

+3 -3
View File
@@ -144,9 +144,9 @@ stats timer и stream handle освобождаются до контекста
Desktop `MainWindow` владеет `StreamPublishEngine`, а окно управления лишь отображает
его состояние. Закрытие окна сохраняет эфир, новый запуск запрещён до конца FIN drain.
Qt capture callback конвертирует кадр в `QImage` до передачи worker и сохраняет последний
`QVideoFrame` отдельно для preview. Конвертация и освобождение media frame не выполняются
в короткоживущем video worker, поскольку Qt multimedia TLS может задержать его exit на Windows.
Qt capture callback сохраняет последний `QVideoFrame` для preview и ограниченно ставит кадр
в очередь отдельного долгоживущего image worker. Он конвертирует `QVideoFrame` в `QImage`;
video worker получает готовый image и не создаёт Qt Multimedia TLS, которое могло задержать его exit на Windows.
Video/audio workers выполняют encode/DSP вне GUI и hardware callbacks. Отдельные поколения источника и encoder позволяют менять
видеокодек/bitrate/rotation без повторного выбора экрана в портале. Ошибки Qt capture
обрабатываются через queued callback, чтобы не уничтожать backend из собственного callback.