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_ENCODER 或 MFT_CATEGORY_VIDEO_ENCODER,则激活对象将使用编码配置文件来配置 MFT。 为此,MFT 必须公开 ICodecAPI 或 IPropertyStore 。 |
MFT_PREFERRED_OUTPUTTYPE_Attribute |
可选。 指定编码器的首选输出格式。
如果此属性集且 MF_TRANSFORM_CATEGORY_Attribute 属性的值 MFT_CATEGORY_AUDIO_ENCODER 或 MFT_CATEGORY_VIDEO_ENCODER,则激活对象在 MFT 上设置此媒体类型。 |
有关激活对象的详细信息,请参阅 激活对象。
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | mftransform.h |
Library | Mfplat.lib |
DLL | Mfplat.dll |