|
|
|
|
@ -175,6 +175,20 @@ RX продолжает работать, рация снимает PTT, авт
|
|
|
|
|
Сброс контекста и уничтожение владельца дожидаются worker до освобождения miniaudio-контекста. |
|
|
|
|
Штатное закрытие исправного устройства сохраняет синхронный порядок. |
|
|
|
|
|
|
|
|
|
`AudioDevice` подстраивает буфер по подтверждённым backend XRUN: WASAPI DATA_DISCONTINUITY |
|
|
|
|
на входе, ALSA EPIPE, PulseAudio capture hole/overflow и playback underflow. Notification |
|
|
|
|
только увеличивает атомарный счётчик, решение и лог выполняются в GUI recovery timer. |
|
|
|
|
Исходные параметры, включая Linux capture period=10мс, сохраняются до повторных сбоев. |
|
|
|
|
Первая секунда после start исключена; нужны ошибки в двух опросах за 5с. Период увеличивается |
|
|
|
|
на 5мс, не чаще раза в 5с, до общей запрошенной ёмкости 100мс с учётом числа периодов. |
|
|
|
|
Фактический размер согласует backend; исходный или уже достигнутый больший размер не уменьшается. |
|
|
|
|
При достижении предела повторные сбои логируются без новых перезапусков. Подобранный запрос |
|
|
|
|
сохраняется при recovery, сбрасывается при смене устройства/сессии; стабильный звук не вызывает reopen. |
|
|
|
|
Подстройка микрофона закрывает устройство асинхронно, останавливая TX worker и сохраняя RX. |
|
|
|
|
Общая capture-сессия отсоединяет callbacks до close и заново подготавливает потребителей после init. |
|
|
|
|
Новая подписка во время close откладывается, stop удаляет её без ожидания backend. |
|
|
|
|
Первое переоткрытие после подстройки не использует backoff; при ошибке открытия действует обычный retry. |
|
|
|
|
|
|
|
|
|
В desktop-видеозвонке Windows/Linux камера живёт в отдельном процессе того же |
|
|
|
|
`vibechat --call-camera-worker`. Служебный вход выполняется до конфига, БД и |
|
|
|
|
single-instance lock. Перечисление устройств, Qt/V4L2, преобразование и освобождение |
|
|
|
|
|