O kernel do Linux está tentando novamente aprimorar o modo de reprodução de baixa latência de seu driver de áudio USB.
Takashi Iwai, do SUSE, que supervisiona o subsistema de som do kernel Linux e foi responsável por muitas das melhorias de som nos drivers do kernel nos últimos anos, fez uma nova tentativa de aprimorar o suporte de reprodução de baixa latência.
Takashi explicou com um dos patches, "Esta é outra tentativa de melhorar ainda mais o manuseio do fluxo de reprodução no modo de baixa latência. A última solução alternativa no commit 4267c5a8f313 ("ALSA: usb-audio: Work around para XRUN com reprodução de baixa latência") revelou que enviar URBs forçosamente com antecedência pode acionar XRUN facilmente. No modo clássico, esse problema foi evitado atrasando praticamente o envio dos dados reais com os pré-envios de dados silenciosos antes de acionar o início do fluxo. Mas é exatamente isso que queremos evitar. Agora, neste patch, em vez da solução alternativa anterior, adotamos uma abordagem semelhante à usada no modo de feedback implícito. Os URBs são enfileirados no início do gatilho PCM como antes, mas verificamos se o buffer já foi preenchido o suficiente antes de cada envio e paramos de enfileirar se os dados ultrapassarem o limite. Os URBs restantes são mantidos na lista pronta e serão recuperados no retorno de chamada completo do URB de outros URBs (já enfileirados). No callback completo, tentamos preencher os dados e enviar o máximo possível novamente. Quando não houver mais URBs em andamento disponíveis que possam lidar com os dados pendentes, verificaremos o retorno de chamada de confirmação PCM e enviaremos e processaremos os URBs lá também. Desta forma, a quantidade de URBs em vôo pode variar de forma dinâmica e flexível, dependendo dos dados disponíveis sem acertar XRUN. Vou verificar o retorno de chamada de confirmação do PCM e enviar e processar URBs lá também. Desta forma, a quantidade de URBs em vôo pode variar de forma dinâmica e flexível, dependendo dos dados disponíveis sem acertar XRUN. Vou verificar o retorno de chamada de confirmação do PCM e enviar e processar URBs lá também. Desta forma, a quantidade de URBs em vôo pode variar de forma dinâmica e flexível, dependendo dos dados disponíveis sem acertar XRUN."
Esses patches de driver de áudio USB foram enfileirados no branch" -next "do subsistema de som antes da janela de mesclagem 5.16 que abrirá no mês que vem. Este código de reprodução de baixa latência deve ajudar particularmente os casos de uso JACK com seu tamanho de período pequeno. O usb mais recente -Melhorias de driver de áudio estão em sound for-next .
Até a próxima !!
Nenhum comentário:
Postar um comentário