| После семи месяцев разработки представлен релиз звукового сервера PulseAudio 3.0,
который выступает в роли промежуточного звена, выполняющего роль
посредника между приложениями и различными низкоуровневыми звуковыми
подсистемами, абстрагируя работу с оборудованием. В новой версии
упрощена настройка вывода звука с Bluetooth-устройств, добавлены
оптимизации с использованием инструкций ARM NEON, обеспечена возможность
ручной настройки времени запаздывания (Latency Offset), реализована
поддержка ALSA UCM для автонастройки параметров звуковой подсистемы
мобильных устройств, удалена поддержка HAL.
PulseAudio позволяет управлять громкостью и смешиванием звука на
уровне отдельных приложений, организовывать поступление, смешивание и
вывод звука при наличии нескольких входных и выходных каналов или
звуковых карт, позволяет на лету менять формат звукового потока и
использовать плагины,
дает возможность прозрачно перенаправлять звуковой поток на другую
машину. Кроме Linux, PulseAudio поддерживает работу в таких системах,
как Solaris, FreeBSD, NetBSD, Mac OS X и Windows. Код PulseAudio
распространяется в рамках лицензии LGPL 2.1+.
Ключевые улучшения PulseAudio 3.0:
- Поддержка системы ALSA UCM (Use Case Manager) для
определения параметров оборудования средствами звуковой подсистемы ALSA
без ведения отдельных файлов конфигурации на стороне приложения. Если
звуковое оборудование настольных компьютеров и ноутбуков достаточно
типично и подпадает под набор стандартных настроек, то звуковые
подсистемы встраиваемой техники требуют поддержания индивидуального
набора настроек. Ранее подобные настройки приходилось поддерживать для
PulseAudio, но теперь можно использовать для получения параметров
унифицированную систему, реализованную проектом ALSA;
- Возможность редактирования на лету параметров фильтров, оформленных в виде модулей LADSPA.
Для изменения параметров фильтров предлагается использовать интерфейс
D-Bus. Ранее параметры определялись только до загрузки модуля, сейчас
изменение можно произвести и в процессе работы;
- Поддержка из коробки воспроизведения звука с
устройств с интерфейсом Bluetooth. Например, звуковая карта ноутбука или
ПК может быть использована вместо Bluetooth-наушников для вывода звука с
мобильного телефона, не требуя при этом каких-либо дополнительных
настроек (достаточно включить поддержку звука в BlueZ, остальное сделает
модуль module-bluetooth-policy);
- Задействование инструкций NEON для поддерживающих их
процессоров ARM. Оптимизации с использованием NEON добавлены в код
преобразования формата дискретизации между S16LE и форматами с
плавающей точкой. Задействование NEON может быть произведено как на
стадии сборки, так и в процессе работы через анализ флагов в
/proc/cpuinfo;
- Возможность ручкой настройки параметров времени
задержки (Latency Offset) в ситуациях когда оборудование не
предоставляет точных данных для учёта задержек при воспроизведении,
необходимых в таких областях как синхронизация звука при воспроизведении
видео. В частности, в настоящее время ручное определение задержки
необходимо для Bluetooth-устройств, для которых в PulseAudio пока не
реализован механизм автоматического запроса параметров задержки;
- Файлы конфигурации перемещены в поддиректорию
~/.config (или директорию, определённую через $XDG_CONFIG_HOME), как
того требует спецификация XDG. Вместо ~/.pulse и ~/.pulse-cookie
настройки перемещены в ~/.config/pulse и ~/.config/pulse/cookie.
Временные файлы теперь размещаются в $XDG_RUNTIME_DIR/pulse, вместо
случайной поддиректории внутри /tmp. Поддержка загрузки настроек из
старого местоположения сохранена;
- В утилиты pactl и pacmd добавлена возможность
выгрузки произвольного модуля по его имени (ранее для выгрузки модуля
требовалось указать его индексный номер);
- Расширены средства для вывода логов, добавлена
команда set-log-target для изменения метода вывода лога для запущенного
демона. В том числе добавлен новый метод "newfile" для прямого вывода
лога в файл с автоматическим добавлением цифрового суффикса, если файл
уже создан;
- Проведён рефакторинг кода для поддержки Bluetooth,
проведена подготовка к обеспечению поддержки стека BlueZ 5. Для
поддержки Bluetooth в число зависимостей введена библиотека "sbc".
Прекращена поддержка старого "socket API" BlueZ, вместо которого сейчас
используется "media API" на базе D-Bus;
- Удалена поддержка HAL, вместо которого рекомендуется
использовать udev. Модуль module-hal-detect пока сохранён (по сути он
теперь вызывает module-udev-detect) для обеспечения совместимости на
уровне конфигурации, но он будет удалён в следующей ветке PulseAudio.
| |