PipeWire 1.6 приближается к стабильному релизу после масштабного внутреннего рефакторинга

Доступен первый релиз-кандидат PipeWire 1.6, версия 1.5.81, которая даёт нам чёткое представление о том, чего ожидать от финальной стабильной версии этого широко распространённого мультимедийного фреймворка для Linux. Будучи полностью совместимым с предыдущими версиями 1.4.x, 1.2.x и 1.0.x, релиз-кандидат предлагает улучшенную производительность и множество доработок.
Одним из самых значительных изменений стал полный рефакторинг кода согласования ссылок. Теперь приложения могут лучше контролировать значения по умолчанию и более точно ограничивать доступные параметры, что обеспечивает лучшее соответствие форматам и более плавную обработку аудио- и видеоданных. Процесс согласования по умолчанию также был оптимизирован, чтобы лучше соответствовать ожиданиям приложений.
Ещё одно важное улучшение касается производительности в реальном времени. Цикл теперь поддерживает блокировку с инверсией приоритета, и большая часть кодовой базы была обновлена для использования этих новых блокировок. Это означает, что межпотоковая синхронизация стала намного быстрее и больше не требует использования eventfd или epoll — это преимущество для аудиозадач, чувствительных к задержкам.
Парсер потока управления также был переписан с нуля. Теперь он защищён от одновременных обновлений при анализе общей памяти, что позволяет избежать потенциальных состояний гонки, переполнения целых чисел и неопределённого поведения.
Ещё одна важная особенность — в PipeWire 1.6 добавлена поддержка Bluetooth ASHA (аудиостриминг для слуховых аппаратов), что расширяет возможности и совместимость устройств. Кроме того, была изменена настройка узла ALSA для уменьшения задержки, особенно при работе с аудиоинтерфейсами на базе FireWire.
Музыканты и звукорежиссёры оценят несколько новых дополнений к инструментам и компонентам для профессиональной работы со звуком. В новой версии добавлена поддержка клипов MIDI 2.0, а также новые pw-midi2play
и pw-midi2record
инструменты для работы непосредственно с обновлённым форматом MIDI 2.0 UMP.
Также в систему filter-graph добавлены новые настройки фильтров Dolby Surround и Dolby Pro Logic II, а также фильтры ONNX и FFmpeg для более гибких конвейеров обработки звука.
Под капотом Simple Plugin API также привлек много внимания. Многие из его функций теперь безопасны для использования в общей памяти, а жестко заданные ограничения каналов сняты — PipeWire теперь может динамически обрабатывать до 128 каналов. videoconvert
Компонент был значительно улучшен, а также расширена поддержка расширенных цветовых матриц, функций передачи и основных цветовых параметров.
Что касается Bluetooth, то помимо ASHA, есть еще обновления. В PipeWire 1.6 введена коррекция потери пакетов с использованием библиотеки spandsp для определенных кодеков и улучшена синхронизация потоков ISO на сгруппированных устройствах.
Наконец, другие небольшие обновления включают новое timer-queue
планирование для модулей, улучшенные отчеты о задержках в модулях loopback и combine-stream, а также обновленную документацию, которая более четко объясняет взаимодействие клиент-узел.
Полный список изменений см. в журнале изменений.
Редактор: AndreyEx