Публикувана версия на мултимедийната система PipeWire 1.0.0, която е обозначена като първия стабилен релиз, отбелязващ зрялостта на проекта. На ниво API и ABI версия 1.0 е обратно съвместима с клона 0.3. PipeWire се позиционира като сървър, който замества звуковия сървър PulseAudio и се отличава с добавяне на средства за работа с видео потоци, възможността за обработка на звук с минимални закъснения и нова модел на сигурност за управление на достъпа на ниво отделни устройства и потоци. Проектът се поддържа в GNOME и вече по подразбиране се използва в Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE и много други дистрибуции на Linux. Кодът на проекта е написан на езика C и се разпространява под лиценцията LGPLv2.1.
PipeWire предлага възможности за обработка на всякакви мултимедийни потоци, способен е да смесва и пренасочва потоците с видео, може да се използва за управление на източниците на видео, като устройства за захващане на видео, уебкамери или съдържание на екрана, изведено от приложения. Например, PipeWire позволява организирането на съвместна работа на няколко приложения с уебкамера и разрешава проблемите със безопасното захващане на съдържание на екрана и отдалечен достъп до екрана в среда Wayland.
PipeWire също може да функционира като звуково сървър, осигуряваща минимални закъснения и предоставяща функционалност, комбинираща възможностите на PulseAudio и JACK, вземайки предвид нуждите на системите за професионална обработка на звук, за които PulseAudio не можеше да се конкурира. Освен това, PipeWire предлага разширен модел на сигурност, позволяващ управление на достъпа на ниво индивидуални устройства и конкретни потоци, опростявайки организирането на предаване на звук и видео от изолирани контейнери и обратно. Една от главните цели е поддръжката на самодостатъчни приложения във формат Flatpak и работата в графическия стек, базиран на Wayland.
Основни функции:
- Улавяне и възпроизвеждане на звук и видео с минимални забавяния;
- Инструменти за обработка на видео и звук в реално време;
- Многопроцесна архитектура, която позволява осъществяване на съвместен достъп до съдържанието на няколко приложения;
- Модел за обработка на основа на граф на мултимедийни възли с поддръжка на обратни цикли и атомарни актуализации на графа. Разрешено е свързването на обработващи модули както вътре в сървъра, така и на външни приставки;
- Ефективен интерфейс за достъп до видеопотоките чрез предаване на файлови дескриптори и достъп до звука чрез споделени кръгови буфери (shared ringbuffer);
- Възможност за обработка на мултимедийни данни от всякакви процеси;
- Наличие на приставка за GStreamer за опростяване на интеграцията с съществуващи приложения;
- Поддръжка на изолирани среди и Flatpak;
- Поддръжка на приставки в формат SPA (Simple Plugin API) и възможност за създаване на приставки, работещи в режим на жестко реално време;
- Гъвкава система за координация на използваните мултимедийни формати и разпределение на буфери;
- Използване на един фонов процес за маршрутизиране на звук и видео. Възможност за работа под формата на звуков сървър, хъб за предоставяне на видео на приложения (например, за gnome-shell screencast API) и сървър за управление на достъпа до хардуерни устройства за улавяне на видео.
От промените в сравнение с клона 0.3 се отбелязва включването по подразбиране на поддръжка за jackdbus, което позволява използването на PipeWire като пълноценен клиент на звуковата система JACK. За ALSA се използва планиране на базата на IRQ в профил Pro-Audio, което позволява постигането на закъснения на ниво JACK. Добавена е поддръжка както за старата, така и за новата версия на webrtc-audio-processing. В pw-cat е добавена поддръжка за файлове DFF DSD. Добавена е поддръжка за платформата GNU/Hurd.
Източник: opennet.ru
