Condividi tramite


Come funziona il Gestore della compressione audio

[La funzionalità associata a questa pagina, Gestione compressione audio, è una funzionalità legacy. Microsoft consiglia vivamente che il nuovo codice non usi questa funzionalità.

L'ACM utilizza i collegamenti dell'interfaccia del driver esistenti per sostituire l'algoritmo di mapping predefinito per i dispositivi waveform-audio. In questo modo ACM può intercettare le chiamate aperte dal dispositivo. Dopo l'intercettazione di una chiamata, ACM può eseguire una serie di attività per elaborare i dati audio, ad esempio l'inserimento di un compressore esterno o un decompressore nella sequenza.

ACM gestisce i seguenti tipi di driver:

  • Driver compressore e decompressore (codec)
  • Driver del convertitore di formato
  • Filtrare i driver

I compressori e i decompressori cambiano un tipo di formato in un altro. Ad esempio, un compressore o un decompressore può modificare un file PCM (Pulse Code Modulation) in un file ADPCM (Adaptive Differential Pulse Code Modulation). I convertitori di formato modificano il formato, ma non il tipo di dati. Ad esempio, un convertitore può modificare i dati a 44 kHz, a 16 bit in dati a 44 kHz, a 8 bit. I filtri non modificano affatto il formato dei dati, ma modificano in qualche modo i dati audio waveform. Ad esempio, un filtro può combinare un flusso di dati e un eco di se stesso. Un singolo driver ACM o un tag di filtro o un tag di formato all'interno di un driver può supportare anche combinazioni dei tipi precedenti.

Per l'output audio a forma d'onda, l'ACM passa ogni buffer di dati al convertitore via via che arriva. Il convertitore decomprime i dati e restituisce i dati decompressi all'ACM in un buffer «shadow». L'ACM quindi passa il buffer ombra decompresso al driver audio a forma d'onda. L'ACM alloca i buffer ombra ogni volta che riceve un messaggio di preparazione.

Per l'input audio waveform, l'ACM passa buffer ombra vuoti al driver. Usa un'attività in background per ricevere una notifica dopo che il driver ha riempito il buffer ombra. L'ACM passa quindi i buffer al driver per la compressione. Al termine della compressione, il driver passa i dati all'applicazione.