Представлен релиз звукового сервера PulseAudio 9.0, который выступает в роли посредника между приложениями и различными низкоуровневыми звуковыми подсистемами, абстрагируя работу с оборудованием. PulseAudio позволяет управлять громкостью и смешиванием звука на уровне отдельных приложений, организовывать поступление, смешивание и вывод звука при наличии нескольких входных и выходных каналов или звуковых карт, позволяет на лету менять формат звукового потока и использовать плагины, дает возможность прозрачно перенаправлять звуковой поток на другую машину. Код PulseAudio распространяется в рамках лицензии LGPL 2.1+. Поддерживается работа в Linux, Solaris, FreeBSD, OpenBSD, DragonFlyBSD, NetBSD, macOS и Windows.

Ключевые улучшения PulseAudio 9.0:

  • Улучшение автоматической маршрутизации звука. В новой версии устранены побочные эффекты, всплывшие после включения в PulseAudio 8 новой системы автоматического переключения на другой профиль при отключении звукового устройства. Например, при отключении наушников PulseAudio может переключиться на S/PDIF и не вернуть звук обратно на наушники после их повторного подключения. Ещё одной проблемой является временное отключения HDMI при переходе монитора в спящий режим - в ответ на такое отключение PulseAudio может переключить вывод звука на другой порт HDMI и не вернуть его обратно после возобновления активности первого монитора. Подобные проблемы теперь устранены;
  • Серия изменений в системе подавления эха WebRTC:
    • Добавлен новый фильтр "beamforming", учитывающий пространственное размещение микрофонов. Фильтр активируется через задание параметра "beamforming=true" при загрузке компонента module-echo-cancel и требует задания данных о геометрии микрофонов и направлении источника звука, которые передаются через параметры "mic_geometry" и "target_direction".
    • Реализован режим расширенного фильтра ("extended filter"), при котором система подавления эха менее чувствительна к поступающим от оборудования некорректным данным о задержках. По умолчанию режим отключен и включается после передачи опции "extended_filter=true".
    • Обеспечена возможность отключения механизма определения голосовой активности (параметр "voice_detection=false");
    • Добавлена возможность настройки начальной громкости при использовании AGC (automatic gain control) через указание опции "agc_start_volume=[0-255]".
  • Серия улучшения в работе модулей module-role-cork и module-role-ducking: добавлена поддержка потоков с установленным свойством "media.role", добавлена специальная роль "any_role" (позволяет выбрать все потоки, за исключением текущего), обеспечена возможность выбора разных уровней приглушения громкости для разных потоков;
  • Отключён по умолчанию активированный в PulseAudio 7 новый метод синтеза LFE-канала (низкочастотные эффекты для сабвуфера) из обычного звукового контента, не имеющего отдельного LFE-канала. В PulseAudio 7.x и 8.x LFE-канал формировался на основе фильтрации низкочастотных гармоник в оригинальном контенте. В PulseAudio 9 возвращен старый метод усреднения имеющихся каналов c приглушением LFE, так как новый метод пока не работает корректно и LFE получался слишком тихим;
  • Представлена начальная реализация нового транспорта memfd-backed, использующего разделяемую память для эффективной передачи данных между сервером и клиентом без промежуточной буферизации. Бэкенд базируется на использовании механизма Memfd (позволяет выделить память как через malloc, но обращаться к ней как с файлом, по файловому дескриптору), предложенного разработчиками systemd/kdbus и включённого в состав ядра Linux 3.17;
  • Допустимая частота дискретизации повышена с 192 kHz до 384 kHz;
  • Система сборки переведена с использования по умолчанию стандарта C99 на C11. При сборке компилятор теперь вызывается с флагом "-std=gnu11", что позволяет использовать в коде новые возможности стандарата C11.


Источник: http://www.opennet.ru/opennews/art.shtml?num=44649