PipeWire 0.3.71 Lançado com melhorias de desempenho


O servidor de áudio PipeWire 0.3.71 é lançado com diversas melhorias de desempenho, zero Latency JACK D-Bus Bridg e correções de bugs.

PipeWire 0.3.71 Lançado com melhorias de desempenho

PipeWire é um servidor para lidar com streams de áudio e vídeo e hardware no Linux. Foi criado por Wim Taymans da Red Hat. Ele lida com roteamento de multimídia e processamento de pipeline. Alguns de seus objetivos são: Trabalhar com aplicativos Flatpak em sandbox. Wikipédia


O anúncio foi feito em 17 de Maio de 2023.

"Esta é uma versão de correção de bug compatível com API e ABI com versões anteriores
versões 0.3.x."

Destaques

  • Uma nova ponte jackdbus de latência zero foi adicionada. Isso funciona de maneira semelhante ao que
  • O PulseAudio tem a oferecer e cria um coletor/fonte quando o jackdbus é iniciado. No entanto, é muito mais eficiente e executa o PipeWire completo gráfico como um cliente JACK síncrono sem adição de latência.
  • Muitas melhorias de desempenho. A ativação de nós remotos é mais eficiente, menos eventfds são necessários nos clientes, menos retorno de chamada sobrecarga em caminhos críticos de desempenho e uma função de pesquisa otimizada foi adicionado. Isso foi impulsionado principalmente pelo módulo jackdbus para obter o menor sobrecarga possível ao executar o gráfico.
  • A implementação do callback de notificação do JACK foi retrabalhada para emular melhor o que JACK faz, melhorando a compatibilidade com ardor7 e o teste de estresse JACK.
  • Mais trabalho em dispositivos BAP. A latência do dispositivo agora é passada para aplicações também para fones de ouvido com vários dispositivos e alocação de canais é melhor tratado.
  • Muitas outras melhorias e correções de bugs.

PipeWire

  • Remova o limite codificado em io_areas. Isso é usado para vincular os nós e buffers de troca, foi limitado a 2048, mas agora escala dinamicamente com base em requisitos.
  • As alterações de taxa e quantum agora são aplicadas corretamente em mais casos. (#3159)
  • Atualizações no nó cliente para processar o driver com mais eficiência.
  • As informações do criador de perfil foram aprimoradas para serem mais precisas. Deveria agora funcionam melhor para drivers remotos.
  • Alguns possíveis erros de mapa de memória foram corrigidos no protocolo porque em alguns caso com mensagens grandes, alguns fds foram fechados cedo demais. pw-filter agora implementa o método pw_filter_set_active().
  • Um possível caso de falta de buffer foi corrigido na captura de fluxos de pw em que os buffers não foram movidos para a fila de reciclagem quando o nó foi suspenso.
  • Os nós agora são sempre ativados com o eventfd. Anteriormente havia algumas otimizações no servidor para chamar diretamente o processo do nó função, mas essa otimização não é necessária. Sem essa otimização agora é possível executar nós em diferentes threads.
  • O gatilho pw-stream agora é implementado corretamente em todos os casos.
  • Os nós remotos agora usam um eventfd a menos porque são acionados com o nó eventfd diretamente.
  • As portas do monitor agora são ignoradas nas atualizações de latência.
  • Uma corrida potencial ao relatar um erro a um cliente foi corrigida. (#3192)
  • Correção de um bug em que os nós always_process às vezes ficavam ociosos. (#3189)
  • Otimize a ativação de pares. Os nós agora são ativados com mais eficiência e independente do número de links. Também reduz o número de eventfds e memória em clientes remotos.
  • Um bug na serialização de propriedade foi corrigido. Valores com espaços só serialize a primeira parte do valor.

Módulos

  • Manuseie corretamente o fallback do método init do plugin echo-canceler. O samplerate não foi configurado corretamente. Esta é apenas uma regressão para pessoas que possuem plug-ins externos de cancelamento de eco.
  • O coletor RAOP agora apenas define o volume na extremidade remota quando o fluxo é gravação. (#3175)
  • A descoberta do RAOP agora tenta desduplicar as entradas do mesmo host.
  • Uma nova ponte jackdbus de latência zero foi adicionada. Isso funciona de maneira semelhante ao que pulseaudio tem a oferecer e cria um coletor/fonte quando o jackdbus é iniciado. No entanto, é muito mais eficiente e executa o PipeWire completo gráfico como um cliente JACK síncrono.
  • O módulo de acesso usa uma maneira mais segura de verificar o aplicativo
  • executável.
  • module-combine-stream agora tem atraso e latência configuráveis para cada fluxo. Isso pode ser usado para alinhar coletores/origens com diferentes latências.
  • Uma possível falha no túnel de pulso do módulo foi corrigida ao desligar.
  • (#3199)
  • Module-rt agora irá limitar o valor nice ao valor mínimo permitido para evitar
  • erros do rtkit. (#3186)
  • Corrija um bug com os contadores de sessão em module-rtp-sap. Use também o direito formato para L24. Melhore a configuração de exemplo AES67.
  • Melhore algumas mensagens de aviso e informações no módulo-rt. (#3194) module-rtp session agora deve fazer algo quando iniciado sem argumentos.
  • Uma possível falha no módulo rtp-session foi corrigida. (#3217) module-filter-chain tem melhor relatório de erros quando um convolver não consegue carregar. (#3223)

SPA

  • Mova algumas coisas para evitar avisos do compilador. (#3171)
  • Aumente as portas do mixer. Reorganize algumas coisas e melhore as portas de entrada do mixer de 128 a 512.
  • Corrija uma possível falha quando um nó é agendado antes de ser concluído a configuração.
  • O coletor JACK e os plug-ins SPA de origem tiveram algumas melhorias.
  • Permita o reamostrador de picos ainda se desabilitarmos o reamostragem.
  • Realize mais limpeza no adaptador de áudio quando houver erro.
  • Uma implementação otimizada de loop não cancelável foi adicionada.
  • Callbacks foram otimizados com uma varsão _fast() que não verifica o versão e método. Quando esta verificação é realizada anteriormente, pode ser ignorado em locais críticos de desempenho.
  • Alguns dos retornos de chamada e métodos do sistema agora estão usando a função rápida chamadas em caminhos críticos.
  • Uma divisão potencial por zero foi corrigida nos plugins ALSA.
  • Melhore a taxa e o quantum ao iniciar a conversão de áudio.
  • Torne possível substituir o node.driver no driver de áudio nulo do SPA. (#3220)

Servidor de pulso

  • A análise de parâmetros de informações de áudio foi refatorada e aprimorada.
  • Corrija algumas corridas com clientes saindo ao reproduzir amostras.
  • Uma opção foi adicionada para alterar ou desabilitar o registro do nome dbus. (#2987)

Bluetooth

  • Implemente relatórios de bateria usando AT+XEVENT.
  • Desative o volume do hardware para 3M WorkTunes.
  • Implemente localizações de áudio BAP (posições de canal) usando o novo propriedades bluez.

JACK

  • Corrija alguns erros relatados pelo JACK test.cpp. (#2638)
  • Adicionada a opção jack.show-midi para mostrar/ocultar as portas midi.
  • Adicione a opção jack.max-client-ports. JACK também tem um limite de porta e assim
  • O PipeWire também precisa dele para fazer os testes felizes.
  • Chame o retorno de chamada de desligamento somente quando o servidor for interrompido, não quando houver é um erro aleatório. (#3070)
  • Evite registrar o mesmo nome de porta duas vezes.
  • Callbacks de registro de porta de chamada em ativar/desativar.
  • Melhore jack_port_connected().
  • Melhorar alguns relatórios de erros.
  • Os cabeçalhos JACK foram atualizados para uma versão mais recente.
  • Callbacks JACK agora são gerenciados com uma fila de eventos para simular mais o que JACK faz. Isso evita a emissão de callbacks quando um método está bloqueando para uma resposta e causando impasses. (#3183)
  • Atribua nomes exclusivos a clientes JACK. (#2833)
  • Corrige uma possível falha quando o thread_utils foi usado depois de gratuito.
  • Aliases agora não são preenchidos por padrão para melhorar a compatibilidade do JACK. (#3154)

ALSA

  • O plug-in ALSA agora aguardará a conclusão da negociação ou um erro antes que _prepare() seja concluído. Isso faz com que mais aplicativos tratem corretamente com os possíveis erros.

Documentos

  • Um novo documento sobre como o agendamento é implementado foi adicionado.
  • Atualize a página man pw-cli. (#2988)
  • Documente a serialização do SPA Pod.
  • Documente o protocolo nativo PipeWire.


O PipeWire já está sendo usado em substituição ao Pulse Audio em varias distribuições de pacotes GNU/Linux,confira se a sua já o tem por padrão com o comando no terminal.

pactl info

Matérias úteis para Pipewire.

Ativar o modulo de escuta loopback no PipeWire-Pulse da sua distribuição Linux

Confira nessa matéria como ativar o Loopback ou Mixer de som na sua distribuição Linux que usa o servidor de áudio PipeWire-Pulse, muito útil para APPs como OBS, SSR e similares.



EasyEffects para servidor de áudio PipeWire no Linux

EasyEffects é destinado servidor de áudio PipeWire. Uma ferramenta avançada de manipulação de áudio, inclui equalizador, limitador, compressor, ferramenta de reverberação e muito mais, confira.



Caso ainda não esteja usando o novo servidor de áudio confira aqui.

Comentários

Você precisa ver isso

Todos os arquivos do blog

Mostrar mais