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 Media Foundation Programming Guide.For information about using Media Foundation for specific programming tasks, see Media Foundation Programming Guide.

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

diagram showing a high-level view of the media foundation architecture.

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 fornendo 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 lo inserisce in una destinazione (o in 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 di supporti descrivono il formato di un flusso di dati multimediali.
  • I buffer multimediali contengono blocchi di dati multimediali, ad esempio fotogrammi video e campioni audio, e vengono usati per il trasporto dei dati tra gli oggetti.
  • Gli esempi multimediali sono contenitori per i buffer multimediali. Contengono anche metadati relativi ai buffer, ad esempio timestamp.

Le API Media Foundation Platform offrono alcune funzionalità di base usate dalla pipeline di Media Foundation, ad esempio callback asincroni e code di lavoro. Alcune applicazioni potrebbero dover chiamare direttamente queste API; inoltre, saranno necessari se si implementa un'origine personalizzata, una trasformazione o un sink per Media Foundation.

Pipeline multimediale

La pipeline multimediale contiene tre tipi di oggetto che generano o elaborano i 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.
  • Le trasformazioni media foundation elaborano i dati da un flusso. I codificatori e i decodificatori vengono implementati come MFC.
  • I sink multimediali utilizzano i dati; ad esempio visualizzando il video sullo schermo, riproducendo audio o scrivendo i dati in un file multimediale.

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

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

Lettore di origine e writer sink

Il lettore di origine e il writer sink offrono 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 offre anche all'applicazione l'accesso diretto ai dati dall'origine.

Media Foundation: concetti essenziali

Architettura di Media Foundation