Fonctionnement du Gestionnaire de compression audio

[La fonctionnalité associée à cette page, Le Gestionnaire de compression audio, est une fonctionnalité héritée. Microsoft recommande vivement que le nouveau code n’utilise pas cette fonctionnalité.]

L’ACM utilise des hooks d’interface de pilote existants pour remplacer l’algorithme de mappage par défaut pour les appareils audio de forme d’onde. Cela permet à ACM d’intercepter les appels d’ouverture d’appareil. Une fois qu’un appel a été intercepté, L’ACM peut effectuer diverses tâches pour traiter les données audio, telles que l’insertion d’un compresseur externe ou d’un décompresseur dans la séquence.

ACM gère les types de pilotes suivants :

  • Pilotes de compresseur et de décompresseur (codec)
  • Pilotes de convertisseur de format
  • Pilotes de filtre

Les compresseurs et décompresseurs changent un type de format à un autre. Par exemple, un compresseur ou un décompresseur peut remplacer un fichier PCM (Pulse Code Modulation) en fichier ADPCM (Adaptive Differential Pulse Code Modulation). Les convertisseurs de format modifient le format, mais pas le type de données. Par exemple, un convertisseur peut modifier des données 44 kHz, 16 bits en données 44 kHz, 8 bits. Les filtres ne modifient pas du tout le format des données, mais ils modifient les données audio de forme d’onde d’une manière ou d’une autre. Par exemple, un filtre peut combiner un flux de données et un écho de lui-même. Un seul pilote ACM, ou une balise de filtre ou une balise de format au sein d’un pilote, peut également prendre en charge les combinaisons des types précédents.

Pour la sortie audio de forme d’onde, L’ACM transmet chaque mémoire tampon de données au convertisseur à mesure qu’elle arrive. Le convertisseur décompresse les données et retourne les données décompressées dans l’ACM dans une mémoire tampon « fantôme ». L’ACM transmet ensuite la mémoire tampon d’ombre décompressée au pilote audio de forme d’onde. L’ACM alloue les mémoires tampons d’ombre chaque fois qu’il reçoit un message de préparation.

Pour l’entrée audio de forme d’onde, L’ACM transmet des mémoires tampons d’ombre vides au pilote. Il utilise une tâche en arrière-plan pour recevoir une notification une fois que le pilote a rempli la mémoire tampon d’ombre. L’ACM transmet ensuite les mémoires tampons au pilote pour la compression. Une fois la compression terminée, le pilote transmet les données à l’application.