Input, flussi e output

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Un "input" in questa documentazione è qualsiasi flusso di dati multimediali digitali (ad esempio audio o video) che l'applicazione fornisce all'oggetto writer da un'origine usando le API appropriate. Gli input devono essere recapitati in un formato supportato. Diversi formati RGB e YUV standard sono supportati come input e i codec audio supportano PCM. Se un formato di input specificato non è supportato in modo nativo dal codec, l'oggetto writer crea un'istanza di un oggetto helper audio o video in grado di convertire un'ampia varietà di formati nei formati che il codec può accettare. Per gli input audio, l'oggetto helper regola la profondità di bit, la frequenza di esempio e il numero di canali in base alle esigenze. Per gli input video, l'oggetto helper video eseguirà conversioni dello spazio dei colori e regolazioni delle dimensioni del rettangolo. In alcuni casi, i dati audio e video compressi possono essere passati in un flusso di input. Un input può essere di un altro tipo di supporto oltre a audio e video, ad esempio testo, comandi di script, immagini ancora o dati di file arbitrari.

Un "output" in questa documentazione fa riferimento ai dati che l'oggetto lettore passa a un'applicazione per il rendering. Un output equivale a un singolo flusso al momento della riproduzione. Se si usa l'esclusione reciproca, tutti i flussi reciprocamente esclusivi condividono un singolo output. In genere, i dati di output sono sotto forma di dati audio o video non compressi, anche se può contenere qualsiasi tipo di dati. I formati di output video supportati sono elencati altrove in questa documentazione.

Il termine "stream" in questa documentazione fa riferimento ai dati in un file ASF, anziché (1) i dati di origine di input prima che vengano elaborati dall'oggetto writer e (2) i dati di output dopo che vengono decompressi dall'oggetto reader. Un flusso ASF contiene dati provenienti da un singolo input nell'oggetto writer, anche se è possibile creare più flussi dallo stesso input. Un flusso ha lo stesso formato e le impostazioni di compressione dall'inizio alla fine. Un semplice file ASF include due flussi, uno per l'audio e uno per il video. Un file più complesso potrebbe avere due flussi audio e diversi flussi video. I flussi audio possono avere le stesse impostazioni di compressione, ma contengono contenuto diverso, ad esempio una narrazione in lingue diverse. I flussi video possono contenere lo stesso contenuto, ma hanno impostazioni di compressione diverse. Le impostazioni di formato multimediale e compressione che l'oggetto writer verrà applicato a ogni flusso vengono specificati nel profilo.

La relazione tra input, flussi e output può essere di tre tipi di base. I tre diagrammi seguenti illustrano le relazioni.

Nella relazione di base più semplice, ovvero un profilo senza alcuna esclusione reciproca, ogni input viene elaborato dal writer e inserito nel file ASF come singolo flusso. Nella riproduzione, il lettore legge il flusso e fornisce esempi non compressi come singolo output, come illustrato nel diagramma seguente.

diagramma che mostra la normale relazione tra input, flussi e output.

Una relazione più complessa si verifica quando viene usata l'esclusione reciproca a più bit. In questo caso, un singolo input viene elaborato dal writer e codificato a diverse velocità di bit. Ogni codifica dei dati viene inserita nel file ASF come flusso separato. Nella riproduzione, il lettore determina il flusso da decomprimere in base alla larghezza di banda disponibile. Il lettore legge quindi il flusso selezionato e fornisce esempi non compressi come singolo output, come illustrato nel diagramma seguente.

diagramma che mostra le relazioni tra input, flussi e output quando si usa l'esclusione reciproca di più velocità di bit.

Il terzo tipo di relazione può verificarsi quando viene usata un'esclusione reciproca personalizzata o basata sul linguaggio. In questa relazione vengono elaborati più input dal lettore e ognuno viene inserito nel file ASF come singolo flusso. Nella riproduzione, l'applicazione seleziona manualmente il flusso da decomprimere in base alla logica fornito. Il lettore legge quindi il flusso selezionato e fornisce esempi non compressi come singolo output. Questo processo può essere usato per includere colonne sonora in più lingue. La figura seguente illustra questo processo.

diagramma che mostra le relazioni tra input, flussi e output quando si usa l'esclusione reciproca personalizzata.

Esistono alcune variazioni nelle relazioni descritte in precedenza. Ad esempio, un file può contenere tutte e tre le relazioni o una o due di esse. È anche possibile comprimere alcuni input, in questo caso il writer non esegue alcuna compressione aggiuntiva. Il lettore, inoltre, può fornire esempi compressi. Ma quando lo fa, è necessario accedervi in base al numero di flusso, non in base al numero di output.

Nota

Gli input, i vapore e gli output sono tutti numeri assegnati dagli oggetti di Windows Media Format SDK. I flussi hanno un numero di flusso, basato su 1, definito nel profilo. Ogni flusso viene assegnato anche un indice di flusso da usare nei flussi di enumerazione in un profilo. Nessuno di questi numeri è garantito essere coerente tra loro. Ovvero, il numero di input 1 potrebbe non corrispondere al numero di flusso 1, il numero di flusso 1 potrebbe non corrispondere all'indice di flusso 1 e così via.

 

Concetti

Esclusione reciproca