IMFASFMultiplexer::P rocessSample 方法 (wmcontainer.h)
将输入样本传送到多路复用器。
语法
HRESULT ProcessSample(
[in] WORD wStreamNumber,
[in] IMFSample *pISample,
[in] LONGLONG hnsTimestampAdjust
);
参数
[in] wStreamNumber
样本所属流的流号。
[in] pISample
指向输入样本的 IMFSample 接口的指针。 输入示例包含要转换为 ASF 数据包的媒体数据。 如果可能,此示例的时间戳应准确无误。
[in] hnsTimestampAdjust
要应用于示例时间戳的调整。 如果调用方要在 pISample 上转移样本时间,则使用此参数。 如果应提前推送时间戳,则此值应为正值;如果应向后推送时间戳,则此值应为负。 此时间戳将添加到 pISample 上的采样时间,生成的时间由多路复用器使用,而不是原始采样时间。 如果不需要调整,请将此值设置为 0。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
等待从多路复用器检索的数据包太多。 调用 IMFASFMultiplexer::GetNextPacket 以获取数据包。 |
|
处理的示例违反了为 ASF ContentInfo 对象中的流指定的带宽限制。 生成此错误时,将删除示例。 |
|
在 wStreamNumber 中传递的值无效。 |
|
输入媒体样本的呈现时间早于发送时间。 |
注解
应用程序将示例传递给 ProcessSample,ASF 多路复用器在内部将它们排队,直到它们准备好放入 ASF 数据包中。 调用 IMFASFMultiplexer::GetNextPacket 以获取 ASF 数据包。
每次调用 ProcessSample 后,在循环中调用 GetNextPacket 以获取所有可用的数据包。 有关代码示例,请参阅 生成新的 ASF 数据包。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wmcontainer.h |
Library | Mfuuid.lib |