PipeWire 1.2 lançado com processamento assíncrono e metadados de sincronização explícita

PipeWire 1.2 lançado com processamento assíncrono e metadados de sincronização explícita

O servidor de código aberto PipeWire 1.2 para lidar com áudio, fluxos de vídeo e hardware no Linux agora está disponível para download com muitas alterações.

O PipeWire 1.2 foi lançado hoje como a versão estável mais recente deste aclamado servidor de código aberto para gerenciamento de áudio, fluxos de vídeo e hardware em sistemas Linux.

Os principais destaques do PipeWire 1.2 (codinome Aviation) incluem suporte a metadados de sincronização, suporte ao formato Snap para Ubuntu e outras distribuições que utilizam este método de empacotamento de aplicativos da Canonical, além de suporte a metadados obrigatórios na negociação de parâmetros de buffer e processamento assíncrono, permitindo que os nós sejam agendados de forma assíncrona.

"O gráfico não esperará que a saída do nó continue o processamento, mas usará a saída do ciclo anterior (ou silêncio)", explicam os desenvolvedores. "Isso adiciona um ciclo de latência, mas pode evitar que alguns nós bloqueiem o gráfico de processamento. Fluxos e filtros não em tempo real agora também utilizam esse processamento assíncrono em vez de suas próprias versões ligeiramente problemáticas."

O PipeWire 1.2 também apresenta um módulo de descoberta de snapcast para transmissão a servidores snapcast, suporte para criar e usar múltiplos loops de dados no servidor e clientes, além de suporte a afinidade de CPU e prioridades para esses loops de dados. A implementação do conceito de node.sync-group assegura que todos os nós sejam agendados em conjunto quando o transporte JACK for iniciado.

Além disso, esta versão traz suporte para os codecs Google OPUS, LC3-SWB e AAC-ELD, melhorando o manuseio de áudio Bluetooth, junto com suporte para configuração de fonte de transmissão. O módulo de loopback recebeu suporte para up e downmixing, o módulo RTP agora suporta o protocolo de gerenciamento PTP, e os patches de dispositivos conflitantes do UCM foram integrados.

Entre outras melhorias notáveis, o PipeWire 1.2 introduz suporte de contexto de segurança, permitindo que aplicativos Flatpak solicitem um soquete com propriedades específicas do PipeWire para montagem no Flatpak. Além disso, tanto o servidor PipeWire quanto os clientes agora podem usar múltiplos threads para processar nós em paralelo, e uma nova opção -P permite fornecer propriedades extras ao contexto.

Por último, o PipeWire 1.2 adiciona um novo módulo para carregar o Parametric EQ, suporte para serviços locais para RAOP (Remote Audio Output Protocol), descobridores RTP e Pulse Avahi, filtros Vulkan bit e convert, rotação da câmera para o nó libcamera, e uma nova ferramenta pw-container para iniciar um contexto de segurança e executar um aplicativo nele.

Também foram aprimoradas as formas de vinculação de pares e atualização de contadores, retomando pares quando um nó é desvinculado e ainda não processado, o que deve reduzir as falhas ocasionais no gráfico ao reconectar componentes. Erros de análise de configuração agora são relatados de forma mais detalhada, incluindo número de linha e coluna.

Além disso, há muitas atualizações de elementos GStreamer e várias outras correções de bugs e melhorias nesta versão. Para mais detalhes, confira as notas de versão na página do Project GitLab, onde também é possível baixar o tarball do código fonte do PipeWire 1.2 para compilação em suas distribuições GNU/Linux.

Última atualização deste artigo: 27 de june de 2024