Synchronisation de deux flux ou plus
La routine SetDmaEngineState définit l’état d’un ou de plusieurs moteurs DMA sur l’un des éléments suivants : en cours d’exécution, suspendu, arrêté ou réinitialisé. Si un appel à cette routine spécifie plusieurs moteurs DMA, tous les moteurs DMA effectuent la transition d’état de manière synchrone.
La possibilité de synchroniser un groupe de flux est requise pour certaines applications audio. Par exemple, un pilote audio peut utiliser la combinaison de codecs pour créer un périphérique audio son surround logique qui joint deux codecs audio : un codec pilote les haut-parleurs avant et un second codec audio pilote les haut-parleurs arrière. Selon les fonctionnalités des codecs, le pilote audio peut être nécessaire pour fractionner le flux audio surround d’origine en deux flux, un pour chaque codec. En utilisant la routine SetDmaEngineState pour démarrer et arrêter les flux à l’unisson, les deux flux peuvent rester synchronisés.
Le fait de laisser les deux flux tomber hors de synchronisation par quelques exemples peut entraîner des artefacts audio indésirables.
La routine SetDmaEngineState est disponible dans les deux versions de hd Audio DDI.
Le pilote de classe Audio HD UAA n’effectue pas la combinaison de codecs.