Выпуск звукового сервера PulseAudio 7.0

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

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

  • Новый метод синтеза LFE-канала (низкочастотные эффекты для саббуфера) из обычного звукового контента, не имеющего отдельного LFE-канала. LFE-канал теперь формируется на основе фильтрации низкочастотных гармоник в оригинальном контенте, вместо ранее применяемого метода усреднения имеющихся каналов. Новый метод включен по умолчанию и регулируется директивами "enable-lfe-remixing" и "lfe-crossover-freq" в daemon.conf;
  • Представлены три новых передискретизатора (resampler, для изменения частоты звукового сигнала), выполненные на основе libsoxr: soxr-mq, soxr-hq и soxr-vhq. Все три передискретизатора демонстрируют хорошее качество перекодирвоания, без внесения слышимых искажений, но по характеристикам качество hq и vhq превосходит mq. Hq рекомендован для звуковых потоков с качеством до 16 бит на сэмпл, при большем разрешении рекомендуется использовать vhq. По производительности mq и hq опережают до этого предлагаемый передискретизатор speex-float-1. Передискретизатор mq обеспечивает наиболее высокую производительность, при этом составление психоакустической модели показало, что он не вносит различаемых на слух искажений, что позволяет также отнести его в разряд высококачественных перекодировщиков. Из недостатков mq, hq и vhq отмечается внесение ощутимых задержек в процессе работы, которые в среднем составляют около 20 мс;
  • Поддержка активации звукового сервера через TCP-сокет при использовании системного менеджера systemd, что позволяет запускать PulseAudio только при обращении к нему по сети. Ранее поддерживалась только активация через Unix-сокет;
  • Включение по умолчанию IPC-механизма "srbchannel" ("Shared RingBuffer channel"), позволивший снизить нагрузку на CPU на 10-25% в условиях обеспечения минимальных задержек. В srbchannel для передачи пакетов метаданных между клиентом и сервером используется разделяемая память, а не unix-сокеты, с информированием о поступлении пакетов через API eventfds. Подобный подход позволил незначительно сократить число операций копирования памяти, но существенно снизил интенсивность обращения к системным вызовам;
  • Увеличена гибкость определения подключения к звуковым разъёмам на системах, использующих ALSA UCM (Use Сase Manager) для описания имеющегося оборудования. Вместо не всегда работающего эвристического метода, теперь можно точно настроить для разъема kcontrol при использовании в UCM значения "JackControl". Также добавлена поддержка значения "JackHWMute", что позволяет PulseAudio распознавать когда подключение к одному разъему должно приглушать другое устройство;
  • Получение сигнала SIGTERM теперь не воспринимается как сбой и приводит к нормальному завершению процесса с нулевым кодом возврата;
  • Улучшена поддержка USB-карт Creative SoundBlaster Omni Surround 5.1. В частности налажена корректная работа микрофона, который ранее по умолчанию настраивался в ALSA способом, не распознаваемым PulseAudio.

© OpenNet