_MFT_OUTPUT_DATA_BUFFER_FLAGS 枚举 (mftransform.h)
定义 IMFTransform::P rocessOutput 方法的标志。
语法
typedef enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000,
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100,
MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200,
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300
} ;
常量
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE 值: 0x1000000 MFT 仍然可以从此流生成输出,而无需再接收任何输入。 再次调用 ProcessOutput 以处理下一批输入数据。 |
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE 值: 0x100 此输出流上的格式已更改,或者此流有新的首选格式。 设置此标志后,MFT 会清除流的媒体类型。 ProcessOutput 方法返回MF_E_TRANSFORM_STREAM_CHANGE,并且不生成任何流的输出。 对 IMFTransform::P rocessInput 或 ProcessOutput 的进一步调用将失败,直到客户端设置新的媒体类型。 |
MFT_OUTPUT_DATA_BUFFER_STREAM_END 值: 0x200 MFT 已删除此输出流。 输出流必须具有 MFT_OUTPUT_STREAM_REMOVABLE 标志。 (请参阅 IMFTransform::GetOutputStreamInfo.) 当 MFT 删除输出流时,MFT 将在生成最后一个输出示例后下次调用 ProcessOutput 时返回此状态代码。 当 MFT 返回此状态代码时,它不会修改MFT_OUTPUT_DATA_BUFFER结构的 pSample 成员中包含的任何示例,也不会在 pSample 为 NULL 时分配新示例。 返回此状态代码后,此输出流的流标识符不再有效。 客户端在调用 ProcessOutput 时不应再为该流提供MFT_OUTPUT_DATA_BUFFER结构。 当流结束时, ProcessOutput 方法不会返回 MF_E_TRANSFORM_STREAM_CHANGE ,除非另一个需要此返回代码的流发生了更改。 |
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE 值: 0x300 没有可供此流使用的示例。 如果 MFT 具有多个在不同时间生成数据的输出流,则可以设置此标志。 它为每个尚未准备好生成数据的流设置此标志。 它不会修改MFT_OUTPUT_DATA_BUFFER结构的 pSample 成员中包含的输出示例,也不会分配 pSample 为 NULL 的新样本。 如果没有流准备好生成输出,则 MFT 不会设置此标志。 相反, ProcessOutput 方法返回MF_E_TRANSFORM_NEED_MORE_INPUT。 |
注解
此枚举中的值不是位标志,因此不应将其与按位 OR 组合。 此外,调用方应使用相等运算符(而不是按位 AND)测试这些标志:
// Correct.
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
...
}
// Incorrect.
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
...
}
要求
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
标头 | mftransform.h |