Partilhar via


Sincronizando dois ou mais fluxos

A rotina SetDmaEngineState define o estado de um ou mais mecanismos DMA para um dos seguintes: em execução, pausado, parado ou redefinido. Se uma chamada para essa rotina especificar mais de um mecanismo DMA, todos os mecanismos DMA farão a transição de estado de forma síncrona.

A capacidade de sincronizar um grupo de fluxos é necessária para algumas aplicações de áudio. Por exemplo, um driver de áudio pode usar a combinação de codecs para criar um dispositivo de áudio de som ambiente lógico que une dois codecs de áudio: um codec aciona os alto-falantes frontais e um segundo codec de áudio dirige os alto-falantes traseiros. Dependendo das capacidades dos codecs, o driver de áudio pode ser necessário para dividir o fluxo de áudio surround-sound original em dois fluxos, um para cada codec. Usando a rotina SetDmaEngineState para iniciar e parar os fluxos em uníssono, os dois fluxos podem permanecer sincronizados.

Permitir que os dois fluxos fiquem fora de sincronia, mesmo que por algumas amostras, pode causar artefatos de áudio indesejáveis.

A rotina SetDmaEngineState está disponível em ambas as versões do HD Audio DDI.

O driver de classe UAA HD Audio não executa a combinação de codec.