实例化编解码器 MFT

媒体基础转换 (MFT) 是实现 IMFTransform 接口的 COM 对象。 MFT 是一个对象,用于将多媒体数据作为管道的一部分进行转换。 管道是一个有向无环图,由媒体源、媒体转换和媒体接收器组成。 管道异步处理多媒体数据。

尽管可以独立于 Media Foundation 管道基础结构实例化和使用 MFT,但最好尽可能使用 MediaFoundation 框架。

可以通过调用 CoCreateInstance 函数来创建编解码器 MFT。 必须传递 MFT 的类标识符、 IMFTransform 的接口标识符和指向 IMFTransform 指针的指针。

编解码器 MFT 的类标识符定义为 wmcodecdsp.h 头文件中的常量。

IMFTransform 接口标识符的常量IID_IMFTransform。

下面的代码示例演示如何创建编解码器 MFT 的实例:

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

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

使用编解码器 MFT