IMFDeviceTransform::P rocessOutput 方法 (mftransform.h)

ProcessOutput 方法从设备 MFT 输出流获取已处理的输出。

语法

HRESULT ProcessOutput(
  [in] DWORD                  dwFlags,
  [in] DWORD                  cOutputBufferCount,
  [in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
  [in] DWORD                  *pdwStatus
);

parameters

[in] dwFlags

_MFT_PROCESS_OUTPUT_FLAGS 枚举中的 零个或多个标志的按位 OR。

[in] cOutputBufferCount

pOutputSamples 数组中的元素数。 该值必须至少为 1。

[in] pOutputSample

指向由调用方分配的 MFT_OUTPUT_DATA_BUFFER 结构的数组的指针。 MFT 使用此数组将输出数据返回给调用方。

[in] pdwStatus

_MFT_PROCESS_OUTPUT_STATUS 枚举接收零个或多个标志的按位 OR。

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中给出的值。

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
传递的参数无效。
MF_E_INVALIDREQUEST
设备 MFT 目前不支持该请求。
MF_E_INVAILIDSTREAMNUMBER
传递的流 ID 无效。
MF_E_INVALID_STREAM_STATE
无法进行请求的流转换。
MF_E_TRANSFORM_TYPE_NOT_SET
输入媒体类型尚未设置。

注解

在大多数情况下,如果方法成功,媒体基础转换 (MFT) 存储示例,并在 IMFSample 指针上保留引用计数。 使用示例完成 MFT 后,它必须释放它以避免内存泄漏。

设备转换管理器 (DTM) 在所有流上设置有效的媒体类型后,MFT 应始终能够接受更多输入并能够生成更多输出。

如果 MFT 在输入数据中遇到非致命错误,它只需删除数据,并在获取更多输入数据时尝试恢复。 如果 MFT 删除了任何数据,它应在下一个输出示例中设置 MFSampleExtension_Discontinuity 属性,以通知调用方数据流中存在间隙。

要求

   
最低受支持的客户端 Windows 10 版本 1703
目标平台 Windows
标头 mftransform.h

另请参阅

IMFDeviceTransform