Instanciando MFTs do Codec

As MFTs (Transformações do Media Foundation) são objetos COM que implementam a interface IMFTransform. Um MFT é um objeto para transformar dados multimídia como parte de um pipeline. Um pipeline é um grafo acyclic direcionado, composto por fontes de mídia, transformações de mídia e coletores de mídia. Um pipeline processa o streaming de dados multimídia de forma assíncrona.

Embora os MFTs possam ser instanciados e usados independentemente da infraestrutura de pipeline do Media Foundation, é preferível usar a estrutura MediaFoundation sempre que possível.

Você pode criar um codec MFT chamando a função CoCreateInstance . Você deve passar o identificador de classe do MFT, o identificador de interface de IMFTransform e um ponteiro para um ponteiro IMFTransform .

Os identificadores de classe dos MFTs codec são definidos como constantes no arquivo de cabeçalho wmcodecdsp.h.

A constante para o identificador de interface IMFTransform é IID_IMFTransform.

O exemplo de código a seguir demonstra como criar uma instância de um codec MFT:

HRESULT CreateVideoEncoderMFT(IMFTransform** ppMFT)
{
    if (ppMFT == NULL)
        return E_POINTER;

    return CoCreateInstance(CLSID_CWMV9EncMediaObject,
                            NULL,
                            CLSCTX_INPROC_SERVER, 
                            IID_IMFTransform, 
                            (void**)ppMFT);
}

Trabalhando com MFTs do Codec