MFCreateTransformActivate 函数 (mftransform.h)

为媒体基础转换创建泛型激活对象, (MRT) 。

语法

HRESULT MFCreateTransformActivate(
  [out] IMFActivate **ppActivate
);

parameters

[out] ppActivate

接收指向 IMFActivate 接口的指针。 调用方必须释放接口。

返回值

如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

大多数应用程序不会使用此函数;它由 MFTEnumEx 函数在内部使用。

激活对象是创建另一个对象的帮助程序对象,有点类似于类工厂。 MFCreateTransformActivate 函数为 MRT 创建激活对象。 在此激活对象可以创建 MFT 之前,调用方必须通过对其设置一个或多个属性来初始化激活对象。

Attribute 说明
MFT_TRANSFORM_CLSID_Attribute 必需。 包含 MFT 的 CLSID。 激活对象通过将此 CLSID 传递给 CoCreateInstance 函数来创建 MFT。
MF_TRANSFORM_CATEGORY_Attribute 可选。 指定 MFT 的类别。
MF_TRANSFORM_FLAGS_Attribute 包含描述 MFT 的各种标志。 对于基于硬件的 MCT,请设置 MFT_ENUM_FLAG_HARDWARE 标志。 否则,此属性是可选的。
MFT_CODEC_MERIT_Attribute 可选。 包含硬件编解码器的优点值。

如果设置了此属性,并且其值大于零,则激活对象调用 MFGetMFTMerit 以获取 MFT 的受信任优点值。 如果受信任的优点小于此属性的值,则激活对象的 IMFActivate::ActivateObject 方法将失败并返回 MF_E_INVALID_CODEC_MERIT

MFT_ENUM_HARDWARE_URL_Attribute 对于基于硬件的 MCT 是必需的。 指定硬件设备的符号链接。 设备代理使用此值配置 MFT。
MFT_FIELDOFUSE_UNLOCK_Attribute 可选。 包含可用于解锁 MFT 的 IMFFieldOfUseMFTUnlock 指针。 IMFFieldOfUseMFTUnlock 接口用于具有使用限制的 MFT。

如果设置了此属性,并且 MF_TRANSFORM_FLAGS_Attribute 属性包含 MFT_ENUM_FLAG_FIELDOFUSE 标志,则激活对象在创建 MFT 时调用 IMFFieldOfUseMFTUnlock::Unlock 。 应用程序还可以设置 MFT_FIELDOFUSE_UNLOCK_Attribute 属性,而无需设置 MFT_ENUM_FLAG_FIELDOFUSE 标志。 在这种情况下,应用程序必须调用 Unlock

MFT_PREFERRED_ENCODER_PROFILE 可选。 包含编码器的编码配置文件。 此属性的值是 IMFAttributes 指针。

如果设置了此属性,并且 MF_TRANSFORM_CATEGORY_Attribute 属性的值 MFT_CATEGORY_AUDIO_ENCODERMFT_CATEGORY_VIDEO_ENCODER,则激活对象将使用编码配置文件来配置 MFT。 为此,MFT 必须公开 ICodecAPIIPropertyStore

MFT_PREFERRED_OUTPUTTYPE_Attribute 可选。 指定编码器的首选输出格式。

如果此属性集且 MF_TRANSFORM_CATEGORY_Attribute 属性的值 MFT_CATEGORY_AUDIO_ENCODERMFT_CATEGORY_VIDEO_ENCODER,则激活对象在 MFT 上设置此媒体类型。

 

有关激活对象的详细信息,请参阅 激活对象

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mftransform.h
Library Mfplat.lib
DLL Mfplat.dll

另请参阅

激活对象

媒体基础函数

Media Foundation 转换