Share via


Uso delle estensioni unità dati (Microsoft Media Foundation)

I codec Audio e Video di Windows Media sono progettati per funzionare correttamente con il contenitore Advanced Systems Format (ASF). ASF è il formato strutturato usato per i file WINDOWS Media Audio (WMA) e i file WINDOWS Media Video (WMV). È un formato estendibile progettato per lo streaming dei dati. Una delle caratteristiche insolite della struttura ASF è la possibilità di collegare metadati a singoli campioni e di incorporare tali dati con gli esempi nel flusso di bit. Un elemento di metadati archiviati in questo modo viene chiamato estensione dell'unità dati o estensione di esempio.

Un'estensione dell'unità dati può contenere informazioni richieste dal codificatore, dal decodificatore o dall'applicazione lettore. La maggior parte dei tipi di estensione unità dati implementati nella serie di codec di Windows Media 9 contiene dati destinati all'applicazione che decodifica ed esegue il rendering del supporto. Ad esempio, è possibile gestire i codici temporali SMPTE dai dati di origine aggiungendoli come estensioni dell'unità dati. Tuttavia, le funzionalità codec seguenti richiedono estensioni unità dati:

  • Inserimento di fotogrammi chiave forzati
  • Codifica video interlacciata
  • La difficoltà nell'uso delle estensioni dell'unità dati quando si accede direttamente al codec è il meccanismo tramite cui l'oggetto riceve i dati dell'estensione. Questo risultato viene ottenuto dagli oggetti di Windows Media Format SDK usando oggetti buffer progettati per supportare questa funzionalità. È consigliabile usare Windows Media Format SDK per attivare le funzionalità codec che richiedono estensioni unità dati, ma è possibile usare queste funzionalità con gli oggetti codec autonomi.

Passaggio di esempi estesi agli oggetti Codec

Windows Media Format SDK usa oggetti buffer che espongono interfacce INSSBuffer . L'interfaccia più recente è INSSBuffer4. Per passare campioni a un oggetto codec con estensioni di unità dati, è necessario utilizzare un oggetto buffer che implementa l'interfaccia IMediaBuffer o IMFMediaBuffer e l'interfaccia INSSBuffer . È possibile usare gli oggetti buffer creati da Windows Media Format SDK o Microsoft Media Foundation per eseguire questa operazione oppure è possibile creare una classe di buffer personalizzata che soddisfi i requisiti. Per creare una classe buffer personalizzata, è necessario essere conformi ai prototipi di metodo per le interfacce INSSBuffer . Queste definizioni di interfaccia sono disponibili nel file di intestazione wmsbuffer.h installato con Windows Media Format SDK.

Codec Windows Media