实例化编解码器 MRT

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

尽管 MRT 可以独立于媒体基础管道基础结构进行实例化和使用,但最好尽可能使用 MediaFoundation 框架。

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

编解码器 MMT 的类标识符定义为 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);
}

使用编解码器 MRT