Schemi di allocazione

Il diagramma seguente rappresenta un singolo allocatore assegnato per l'uso da tre filtri. Nessuna allocazione è necessaria nei filtri di trasformazione o sink perché il sistema non ha assegnato un handle allocatore a questi filtri.

diagramma che illustra una semplice configurazione dell'allocatore.

Il filtro di origine alloca un frame, lo riempie con i dati e lo invia al filtro successivo. Il filtro di trasformazione esegue una trasformazione dati sul posto e invia il frame al filtro successivo. Quando il filtro sink completa l'operazione di I/O, il filtro di origine libera o riutilizza la cornice. Il controllo del flusso viene mantenuto in questo grafico di filtro in base al numero di fotogrammi totali in sospeso che possono essere allocati dall'allocatore sink e dalla frequenza di completamento dell'operazione di I/O.

Il diagramma seguente rappresenta una configurazione allocatore in cui viene instradato un frame di origine a più sink di destinazione.

diagramma che illustra una configurazione dell'allocatore con più sink.

Nel diagramma, il writer di file potrebbe rappresentare un'onda su un file e il dispositivo una scheda audio a cui viene inviato l'audio.

Questo grafico di filtro contiene due allocatori: l'allocatore della trasformazione e l'allocatore del dispositivo. Il filtro di origine alloca un frame dall'allocatore di trasformazione, lo riempie di dati e lo invia al filtro di trasformazione e quindi al writer di file. In caso di ricezione di un frame, il filtro di trasformazione alloca un frame dall'allocatore del dispositivo esegue una trasformazione dei dati nella nuova cornice e invia questo frame al dispositivo.

Il controllo del flusso viene mantenuto in questo grafico di filtro per il numero di fotogrammi totali in sospeso che possono essere allocati dagli allocatori e dalla frequenza di completamento delle operazioni di I/O. Si noti che è necessario disporre di un allocatore separato per ogni elenco separato di segmenti di origine/sink creati tramite i pin di connessione. Se non sono presenti allocatori separati, un determinato segmento può utilizzare tutti i frame disponibili, lasciando nessuno per il segmento successivo, che potrebbe richiedere uno o più fotogrammi per elaborare i dati creati dal segmento precedente.