Share via


Panoramica dell'architettura di Media Foundation

Questo argomento descrive la progettazione generale di Microsoft Media Foundation. Per informazioni sull'uso di Media Foundation per attività di programmazione specifiche, vedere Guida alla programmazione di Media Foundation.

Il diagramma seguente mostra una visualizzazione generale dell'architettura di Media Foundation.

diagramma che mostra una visualizzazione generale dell'architettura di base multimediale.

Media Foundation offre due modelli di programmazione distinti. Il primo modello, visualizzato sul lato sinistro del diagramma, usa una pipeline end-to-end per i dati multimediali. L'applicazione inizializza la pipeline, ad esempio specificando l'URL di un file da riprodurre, e quindi chiama i metodi per controllare lo streaming. Nel secondo modello, visualizzato sul lato destro del diagramma, l'applicazione esegue il pull dei dati da un'origine o la esegue il push in una destinazione (o entrambi). Questo modello è particolarmente utile se è necessario elaborare i dati, perché l'applicazione ha accesso diretto al flusso di dati.

Primitive e piattaforma

A partire dalla parte inferiore del diagramma, le primitive sono oggetti helper usati nell'API Media Foundation:

  • Gli attributi sono un modo generico per archiviare le informazioni all'interno di un oggetto, come elenco di coppie chiave/valore.
  • I tipi multimediali descrivono il formato di un flusso di dati multimediali.
  • I buffer multimediali contengono blocchi di dati multimediali, ad esempio fotogrammi video e esempi audio, e vengono usati per trasportare i dati tra gli oggetti.
  • Gli esempi di supporti sono contenitori per i buffer multimediali. Contengono anche metadati relativi ai buffer, ad esempio i timestamp.

Le API della piattaforma Media Foundation forniscono alcune funzionalità principali usate dalla pipeline di Media Foundation, ad esempio callback asincroni e code di lavoro. Alcune applicazioni potrebbero dover chiamare direttamente queste API; inoltre, sarà necessario implementare un'origine, una trasformazione o un sink personalizzato per Media Foundation.

Pipeline multimediale

La pipeline multimediale contiene tre tipi di oggetto che generano o elaborano dati multimediali:

  • Le origini multimediali introducono i dati nella pipeline. Un'origine multimediale potrebbe ottenere dati da un file locale, ad esempio un file video; da un flusso di rete; o da un dispositivo di acquisizione hardware.
  • Media Foundation Transforms (MFT) elabora i dati da un flusso. I codificatori e i decodificatori vengono implementati come MFT.
  • I sink multimediali usano i dati; ad esempio, visualizzando video sullo schermo, riprodurre audio o scrivere i dati in un file multimediale.

Terze parti possono implementare origini personalizzate, sink e MFT; ad esempio, per supportare nuovi formati di file multimediali.

La sessione multimediale controlla il flusso di dati tramite la pipeline e gestisce attività quali controllo qualità, sincronizzazione audio/video e risposta alle modifiche del formato.

Lettore di origine e writer sink

Il writer di lettura e sink di origine offre un modo alternativo per usare i componenti di base di Media Foundation (origini multimediali, trasformazioni e sink multimediali). Il lettore di origine ospita un'origine multimediale e zero o più decodificatori, mentre il writer sink ospita un sink multimediale e zero o più codificatori. È possibile usare il lettore di origine per ottenere dati compressi o non compressi da un'origine multimediale e usare il writer sink per codificare i dati e inviare i dati a un sink multimediale.

Nota

Il lettore di origine e il writer sink sono disponibili in Windows 7.

 

Questo modello di programmazione offre all'applicazione un maggiore controllo sul flusso di dati e fornisce anche all'applicazione l'accesso diretto ai dati dall'origine.

Media Foundation: concetti essenziali

Architettura di Media Foundation