IMFTransform::SetOutputType 方法 (mftransform.h)
设置、测试或清除此媒体基础转换 (MFT) 的输出流的媒体类型。
语法
HRESULT SetOutputType(
[in] DWORD dwOutputStreamID,
[in] IMFMediaType *pType,
[in] DWORD dwFlags
);
参数
[in] dwOutputStreamID
输出流标识符。 若要获取流标识符列表,请调用 IMFTransform::GetStreamIDs。
[in] pType
指向 IMFMediaType 接口的指针,或 NULL。
[in] dwFlags
_MFT_SET_TYPE_FLAGS枚举中的零个或多个标志。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
转换不能使用建议的媒体类型。 |
|
流标识符无效。 |
|
建议的类型无效。 此错误代码指示媒体类型本身未正确配置;例如,它可能包含相互矛盾的标志。 |
|
MFT 在处理数据时无法切换类型。 尝试清空或刷新 MFT。 |
|
在设置输出类型之前,必须设置输入类型。 |
|
MFT 找不到合适的 DirectX 视频加速 (DXVA) 配置。 |
注解
此方法可用于设置、测试(无需设置)或清除媒体类型:
- 若要设置媒体类型,请将 dwFlags 设置为零,并将 pType 设置为指定媒体类型的非 NULL 指针。
- 若要在不设置媒体类型的情况下测试媒体类型,请将 dwFlags 设置为 MFT_SET_TYPE_TEST_ONLY 并将 pType 设置为指定媒体类型的非 NULL 指针。 如果媒体类型是可接受的,方法返回 S_OK。 否则,它将返回 MF_E_INVALIDMEDIATYPE。 无论返回值如何,当前媒体类型都不会更改。
- 若要清除媒体类型,请将 pType 设置为 NULL。
MFT 可能要求调用方在设置输出类型之前设置一个或多个输入类型。 如果是这样,方法将返回 MF_E_TRANSFORM_TYPE_NOT_SET。
如果 MFT 支持 DirectX 视频加速 (DXVA) 但找不到合适的 DXVA 配置 (例如,如果图形驱动程序) 没有适当的功能,则该方法应返回 MF_E_UNSUPPORTED_D3D_TYPE。 有关详细信息,请参阅 支持 Media Foundation 中的 DXVA 2.0。
如果在包含 mftransform.h 之前定义了 MFT_UNIQUE_METHOD_NAMES ,则此方法将重命名为 MFTSetOutputType。 请参阅 创建混合 DMO/MFT 对象。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | mftransform.h |
Library | Mfuuid.lib |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈