MFTRegister 函数 (mfapi.h)
将有关媒体基础转换的信息 (MFT) 添加到注册表。
应用程序可以通过调用 MFTEnum 或 MFTEnumEx 函数来枚举 MFT。
语法
HRESULT MFTRegister(
[in] CLSID clsidMFT,
[in] GUID guidCategory,
[in] LPWSTR pszName,
[in] UINT32 Flags,
[in] UINT32 cInputTypes,
[in] MFT_REGISTER_TYPE_INFO *pInputTypes,
[in] UINT32 cOutputTypes,
[in] MFT_REGISTER_TYPE_INFO *pOutputTypes,
[in] IMFAttributes *pAttributes
);
parameters
[in] clsidMFT
MFT 的 CLSID。 还必须使用相同的 CLSID 将 MFT 注册为 COM 对象。
[in] guidCategory
指定 MFT 类别的 GUID。 有关 MFT 类别的列表,请参阅 MFT_CATEGORY。
[in] pszName
包含 MFT 友好名称的宽字符字符串。
[in] Flags
_MFT_ENUM_FLAG 枚举中以下标志的零个或多个按位 OR:
值 | 含义 |
---|---|
|
MFT 在软件中执行异步处理。 请参阅 异步 MRT。 此标志不适用于硬件转换。
需要 Windows 7。 |
|
应用程序必须解锁 MFT 才能使用它。 请参阅 IMFFieldOfUseMFTUnlock。
需要 Windows 7。 |
|
MFT 使用 AVStream 驱动程序或基于 GPU 的代理 MFT 执行基于硬件的数据处理。 此类别中的 MCT 始终以异步方式处理数据。 请参阅 硬件 MRT。
注意 此标志适用于完全在硬件中执行其工作的视频编解码器和视频处理器。 它不适用于使用 DirectX 视频加速协助解码的软件解码器。
|
|
MFT 在软件中执行同步处理。 此标志不适用于硬件转换。 |
|
MFT 已针对转码进行优化,不应用于播放。
需要 Windows 7。 |
将 标志 设置为零等效于设置 MFT_ENUM_FLAG_SYNCMFT 标志。 MRT 的默认处理模型是同步处理。
在 Windows 7 之前,已保留 Flags 参数。
[in] cInputTypes
pInputTypes 数组中的元素数。
[in] pInputTypes
指向MFT_REGISTER_TYPE_INFO结构的数组 的 指针。 数组的每个成员都指定 MFT 支持的输入格式。 此参数可以为 NULL。
此参数可以为 NULL。 但是,如果 参数为 NULL,则仅当应用程序为所需输入类型指定 NULL 时,才会枚举 MFT。
[in] cOutputTypes
pOutputTypes 数组中的元素数。
[in] pOutputTypes
指向MFT_REGISTER_TYPE_INFO结构的数组 的 指针。 数组的每个成员定义 MFT 支持的输出格式。
此参数可以为 NULL。 但是,如果 参数为 NULL,则仅当应用程序为所需输出类型指定 NULL 时,才会枚举 MFT。
[in] pAttributes
指向包含其他注册表信息的属性存储的 IMFAttributes 接口的指针。 此参数可以为 NULL。 如果参数为非 NULL,则属性将作为字节数组写入注册表。 可以使用 MFTGetInfo 函数检索属性。
为此参数定义了以下属性:
值 | 含义 |
---|---|
包含硬件编解码器的优点值。 请参阅 编解码器优点。 |
返回值
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
此函数创建的注册表项由以下函数读取:
函数 | 说明 |
---|---|
MFTEnum | 按媒体类型和类别枚举 MRT。 |
MFTEnumEx | MFTEnum 的扩展版本。 |
MFTGetInfo | 通过 CLSID 查找 MFT 并检索注册表信息。 |
此函数不会为 CoCreateInstance 或 CoGetClassObject 函数注册 MFT 的 CLSID。
若要从注册表中删除条目,请调用 MFTUnregister。 如果从系统中删除 MFT,应始终调用 MFTUnregister。
pInputTypes 和 pOutputTypes 参数中提供的格式旨在帮助应用程序按格式搜索 MRT。 应用程序可以使用 MFTEnum 或 MFTEnumEx 函数枚举与一组特定格式匹配的 MFT。
建议在 pInputTypes 中 至少指定一个输入类型,在 pOutputTypes 参数中指定一个输出类型。 否则,可能会在 枚举中跳过 MFT。
在 64 位 Windows 上,此函数的 32 位版本在注册表的 32 位节点中注册 MFT。 有关详细信息,请参阅 注册表中的 32 位和 64 位应用程序数据。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfapi.h |
Library | Mfplat.lib |
DLL | Mfplat.dll |