Uso degli oggetti attivazione di un codificatore

Per convertire i file multimediali in formato ASF, è possibile usare codificatori Windows Media. Per usare questi codificatori, è necessario registrarli nel sistema.

Per informazioni sulla registrazione del codificatore, vedere Creazione di un'istanza di un codificatore MFT.

Uso degli oggetti attivazione di un codificatore

In alternativa all'uso dell'interfaccia IMFTransform di un codificatore (descritta in Creazione di un codificatore tramite CoCreateInstance), è possibile creare un'istanza dell'oggetto attivazione per il codificatore. Gli oggetti di attivazione facilitano la creazione del codificatore e Media Foundation offre le due funzioni seguenti per questo approccio:

Entrambe queste funzioni richiedono la creazione del tipo di supporto di destinazione e l'impostazione delle proprietà di codifica prima di chiamare queste funzioni. Se l'applicazione usa i componenti ASF del livello pipeline per codificare un file in formato ASF e sono già stati creati e configurati i sink multimediali ASF, è possibile ottenere questo set di informazioni dal sink multimediale ASF.

MFCreateWMAEncoderActivate e MFCreateWMVEncoderActivate impostano il tipo di output del codificatore sul tipo di supporto specificato dall'applicazione.

Nota Se si utilizza MFCreateWMAEncoderActivate e MFCreateWMVEncoderActivate , è possibile attivare il codificatore chiamando IMFActivate::ActivateObject , ma non è possibile modificare l'input e i tipi di supporti di output del codificatore né modificare le proprietà di codifica.

Per altre informazioni sulla creazione di oggetti Media Foundation tramite oggetti di attivazione, vedere Oggetti attivazione.

Per ottenere il tipo di supporto di destinazione dal sink multimediale ASF

  1. Ottenere un puntatore al puntatore IMFASFContentInfo del sink multimediale ASF chiamando IMFMediaSink::QueryInterface nel sink multimediale ASF e passando IID_IMFASFContentInfo come identificatore di interfaccia.
  2. Ottiene l'oggetto profilo ASF associato all'oggetto ContentInfo.
  3. Enumerare i flussi nel profilo per ottenere il tipo di supporto del flusso.

Per ottenere le proprietà di codifica dal sink multimediale ASF

  1. Se nel sink multimediale sono state configurate le proprietà di codifica (descritte in Impostazione delle proprietà nel sink di file), è possibile fare riferimento all'archivio delle proprietà del sink chiamando IMFMediaSink::QueryInterface nel sink multimediale ASF e passando IID_IPropertyStore come identificatore di interfaccia.

  2. Se si dispone di un puntatore all'oggetto ContentInfo del sink, è possibile chiamare IMFASFContentInfo::GetEncodingConfigurationPropertyStore per ottenere un riferimento all'archivio delle proprietà del sink multimediale.

    Assicurarsi che tutte le proprietà di codifica impostate nel sink multimediale ASF vengano riflesse nell'archivio delle proprietà passato a MFCreateWMAEncoderActivate e MFCreateWMVEncoderActivate. Il codificatore viene configurato automaticamente in base alle impostazioni specificate dall'applicazione.

Durante la creazione del nodo di trasformazione nella topologia di codifica, è possibile impostare il tipo di oggetto come puntatore IMFActivate ricevuto in queste due chiamate. Quando la topologia viene risolta, la sessione multimediale usa l'oggetto attivazione per creare un'istanza del codificatore MFT.

Enumerazione codificatore in Windows 7 e versioni successive

Per le applicazioni in esecuzione in Windows 7, oltre a MFTEnum è possibile enumerare i MFTEnumEx chiamando MFTEnumEx. Questa funzione restituisce un puntatore all'oggetto attivazione del codificatore MFT. La struttura della funzione è molto simile a MFTEnum descritta in precedenza, ad eccezione di MFTEnumExrestituisce una matrice di puntatori IMFActivate per i MFT del codificatore che corrispondono ai criteri di ricerca.

Creazione di un'istanza di un codificatore MFT

Codificatori Windows Media

Oggetti attivazione