Вышла версия PipeWire 1.4 с поддержкой RISC-V, поддержкой MIDI2, API управления JACK, улучшенным Bluetooth и многим другим
✨ Что нового в PipeWire 1.4?
- client-rt.conf был удалён, все клиенты теперь используют client.conf и получают приоритет RT в потоках данных;
- Поддержка UMP (также известного как MIDI2) была добавлена и теперь является форматом по умолчанию для передачи MIDI1 и MIDI2 в PipeWire. Существуют вспомогательные функции для преобразования между устаревшими MIDI и UMP;
- Теперь ресемплер может предварительно вычислять (во время компиляции) некоторые общие фильтры преобразования. Отчет о задержке в ресемплере был исправлен и улучшен;
- Добавлена поддержка Bluetooth для широковещательных ссылок BAP и поддержка слуховых аппаратов с использованием ASHA. Также добавлен новый кодек G722. Улучшены отчетность о задержках и конфигурация в Bluetooth;
- Плагин ALSA теперь поддерживает воспроизведение DSD, если это явно разрешено свойством alsa.formats;
- Добавлен API управления PipeWire JACK;
- Добавлена системная служба для pipewire-pulse;
- Множество обновлений документации и переводов;
- Многие макросы SPA преобразованы во встроенные функции. Все встроенные функции SPA теперь также скомпилированы в библиотеку libspa.so, чтобы упростить доступ к ним из привязок;
- Код графа module-filter-chain был перемещен в отдельный плагин SPA filter-graph, чтобы его можно было использовать в большем количестве мест. Плагины EBUR128, param_eq и dcblock были добавлены в filter-graph. Граф фильтра теперь также может использовать fftw для выполнения сверток. Плагин audioconvert был оптимизирован, и в audioconvert была добавлена поддержка для вставки дополнительных графов фильтров в конвейер обработки;
- Добавлены новые вспомогательные функции для анализа описаний формата JSON.
- Профайлер теперь также включает часы подписчиков;
- Добавлена поддержка процессора RISCV и оптимизация ассемблера;
- Теперь можно настроить часы, используемые для регистрации временных меток;
- Парсер JSON был разделен на основные функции и вспомогательные;
- Добавлена поддержка разделения PCM UCM. Вместо разделения PCM с помощью alsa-lib, PipeWire может помечать PCM правильными метаданными, чтобы менеджер сеансов мог использовать собственные функции PipeWire для этого;
- Для эхоподавления добавлена поддержка webrtc2;
- Кодеки IEC958 теперь обнаруживаются из данных HDMI ELD;
- Преобразование между числами с плавающей точкой и 32 битами теперь сохраняет точность 25 бит вместо 24 бит;
- Добавлен новый API телефонии D-BUS, совместимый с ofono;
- Очереди вызовов теперь более эффективны и могут вызываться из нескольких потоков одновременно;
- Информация о часах в v4l2 была улучшена;
- Добавлен плагин VideoConvert на основе ffmpeg, который можно использовать с видеоадаптером;
- Элементы GStreamer улучшили обработку пула буферов и согласование скоростей;
- Модуль объединения потоков теперь также может смешивать потоки;
- link-factory теперь проверяет, что порт и узел принадлежат друг другу;
- Модуль netjack-manager поддерживает автоматическое подключение потоков;
- Собственный протокол поддерживает абстрактные сокеты;
- Сервер Pulse поддерживает блокировку воспроизведения и захвата в pulse.rules;
- Состояние закупорки потока теперь корректно отображается на сервере Pulse;
- Исправлены обратные прыжки в пульс-сервере;
- Поддержка конфигурации задержки была добавлена в loopback и raop-sink;
- Модуль ROC имеет больше возможностей конфигурации;
- Модуль SAP теперь отправляет обновленные SDP только в случае каких-либо изменений;
- Источник RTP теперь имеет режим ожидания, в котором он бездействует, если данные не поступают;
- Для потоков RTP добавлена поддержка тактирования PTP;
- Приемник VBAN теперь может динамически создавать потоки при их обнаружении;
- Улучшено сообщение об ошибках при создании ссылок;
- Поддержка возврата (отмены) извлеченного из очереди буфера в pw-stream;
- Добавлена поддержка передачи событий в pw-stream;
- pw-cat теперь поддерживает stdin и stdout.
🔗 Более подробная информация о выпуске