Os desenvolvedores do Fedora anunciaram recentemente que uma grande mudança está planejada para a próxima versão do Fedora 34, migrando todos os fluxos de áudio dos servidores de som PulseAudio e JACK para o PipeWire.
Utilizar o PipeWire permite oferecer recursos profissionais de processamento de áudio em um ambiente típico de editoração eletrônica, eliminar a fragmentação e unificar sua infraestrutura de áudio para diferentes aplicações.
Atualmente, o Fedora Workstation utiliza o processo em segundo plano PulseAudio para processamento de áudio, e os aplicativos usam a biblioteca cliente para interagir com esse processo, mixar e gerenciar fluxos de áudio. O processamento de áudio profissional utiliza o servidor de som JACK e sua biblioteca cliente associada.
Em vez de PulseAudio e JACK, propõe-se a utilização do servidor de mídia PipeWire de próxima geração, com uma camada de interoperabilidade que manterá em funcionamento todos os clientes e aplicativos PulseAudio e JACK existentes, distribuídos no formato Flatpak.
Para clientes mais antigos que usam a API de baixo nível ALSA, um plugin ALSA será instalado que roteia fluxos de áudio diretamente para o PipeWire. Todos os aplicativos baseados em PulseAudio e JACK poderão ser executados no PipeWire, sem a necessidade de instalar o PulseAudio e JACK.
Esta proposta é substituir o daemon PulseAudio por uma implementação baseada em PipeWire funcional compatível. Isso significa que todos os clientes existentes que usam a Biblioteca do Cliente PulseAudio continuarão a funcionar como antes, assim como os aplicativos enviados como Flatpak.
Todo o áudio PRO é controlado pela biblioteca cliente JACK, que se comunica com o servidor JACK. Esta proposta irá instalar uma substituição de biblioteca cliente JACK que se comunica diretamente com o PipeWire. Todos os aplicativos de áudio PRO existentes funcionarão com o PipeWire.
Lembrando que o PipeWire amplia as capacidades do PulseAudio com streaming de vídeo, processamento de áudio de baixa latência e um novo modelo de segurança para streaming e controle de acesso a dispositivos.
O PipeWire também oferece recursos para controlar fontes de vídeo, como dispositivos de captura de vídeo, webcams ou conteúdo da tela de saída de aplicativos. O projeto é compatível com o GNOME e já é amplamente utilizado no Fedora Linux para gravação e compartilhamento de tela em ambientes baseados em Wayland.
O PipeWire também pode funcionar como um servidor de som de baixa latência com funcionalidades que combinam os recursos do PulseAudio e do JACK, atendendo até mesmo às necessidades de sistemas profissionais de processamento de som que o PulseAudio não conseguia suprir.
Além disso, o PipeWire oferece um modelo de segurança aprimorado que permite o controle de acesso específico para cada dispositivo e fluxo, e facilita o roteamento de áudio e vídeo de e para contêineres isolados.
Características principais:
- Capture e reproduza áudio e vídeo com atraso mínimo.
- Ferramentas de processamento de áudio e vídeo em tempo real.
- Uma arquitetura multithread que permite que o conteúdo seja compartilhado entre vários aplicativos. A gestão e processamento dos gráficos multimédia são feitos em diferentes processos.
- Um modelo de processamento baseado em gráfico de nó multimídia com suporte para loops de feedback e atualizações de gráfico atômico.
- É permitido conectar drivers dentro do servidor e plug-ins externos.
- Interface eficiente para acessar streams de vídeo transferindo descritores de arquivo e acessando som por meio de buffers compartilhados.
- A capacidade de processar dados multimídia de qualquer processo.
- A presença de um plugin para GStreamer para simplificar a integração com aplicativos existentes.
- Suporte para ambientes sandbox e Flatpak.
- Suporte para plugins em formato SPA (Simple Plugin API) e possibilidade de criação de plugins que funcionam em tempo real.
- Sistema flexível para coordenar os formatos multimídia utilizados e alocar buffers.
Usando um único processo em segundo plano para rotear áudio e vídeo. Capacidade de funcionar como um servidor de som, um hub para fornecer vídeo para aplicativos (por exemplo, para a API de screencast do gnome-shell) e um servidor para controlar o acesso a dispositivos de captura de vídeo de hardware.
Finalmente a mudança ainda não foi revisada pelo Comitê de Direção de Engenharia do Fedora (FESCo), que é responsável pelo desenvolvimento técnico da distribuição Fedora.
Fonte: https://www.mail-archive.com