AudioOut
AudioOut воспроизводит гостевой PCM на устройстве Windows на 48 кГц. Устаревшие порты имеют собственные потоки и очереди, поэтому музыка и эффекты идут вместе, а при недоборе сохраняется порядок семплов.
Заметки репозитория по 10 октября 2026 г.
Порты и устройство хоста
Игра подаёт буфер и ожидает, что вызов продлится примерно столько, сколько звучит буфер. Это ожидание идёт от того, что устройство хоста освобождает место, а не от сна, который выбрасывает семплы. AudioOut, AudioIn и AudioOut2 открывают порты с темпом, очереди, метаданные динамиков и состояние подключённого основного устройства. Пакет проверяет каждый порт, а затем подаёт слышимый квант один раз, поэтому тихий вспомогательный порт не умножает длительность.
Устаревшие порты AudioOut владеют отдельными потоками Windows и очередями PCM. Музыка и эффекты могут играть одновременно. Выход пакета подаёт каждый активный порт. После недобора активное кольцо сохраняет порядок семплов, а короткое затухание убирает щелчок при возобновлении. Устройство WinMM предварительно прокручивает настоящий PCM и использует период таймера в одну миллисекунду.
Задержка
Обычный запас начинается с 42 мс и растёт шагами по четыре буфера, примерно до 170 мс, только когда запущенная игра действительно опустошает устройство. Измеренный профиль для PPSA25872 начинается со 128 мс, потому что его микшер может останавливаться примерно на 100–120 мс во время запуска и работы со сценой. Этот больший запас не навязывается другим играм.
Неконечные семплы заменяются, прежде чем дойдут до устройства. Этот очиститель защищает динамики. Он не может починить фильтр, который уже сохранил NaN. Страница ACM описывает ошибку свёртки, которая производила эти значения в Subnautica.
Где существует вывод
Неудача открытия устройства игре не сообщается. Отсутствующая звуковая карта — факт о хосте. Вызывающий откатывается к тихому ожиданию с темпом, чтобы время игры всё ещё шло. То же происходит, если устройство умирает посреди работы. Вывод реализован на Windows. Другие сборки держат порты тихими и с верным темпом.
Прямое запасное смешивание декодированных клипов превью по умолчанию выключено. Воспроизведение превью рядом с собственным миксом AudioOut игры слышится как эхо. PS5_AUDIO_FALLBACK_MIX=1 включает этот микс. Лаунчер может заглушить устройство своей настройкой звука, которая приходит как PS5_AUDIO_DISABLED.
Что реализовано
- Воспроизведение на хосте в 48 кГц с портами AudioOut, AudioIn и AudioOut2, идущими в темпе.
- Отдельные потоки Windows для устаревших портов, чтобы одновременные музыка и эффекты сохраняли порядок.
- Запас, который начинается с 42 мс и растёт только когда устройство опустошается, примерно до 170 мс.
- Замена неконечных семплов и тихий откат с темпом, когда ни одно устройство не открывается.
Чего ещё нет
- Вывод на хосте есть только на Windows.
- Вибрация контроллера не ведётся с тактильной звуковой дорожки.
- Очиститель не восстанавливает историю фильтра, которая уже отравлена.
Связанные механизмы
Чему посвящены эти страницы