IMFASFSplitter::P arseData 方法 (wmcontainer.h)
将数据包的高级系统格式 (ASF) 数据发送到 ASF 拆分器进行处理。
语法
HRESULT ParseData(
[in] IMFMediaBuffer *pIBuffer,
[in] DWORD cbBufferOffset,
[in] DWORD cbLength
);
参数
[in] pIBuffer
指向包含要分析数据的缓冲区对象的 IMFMediaBuffer 接口的指针。
[in] cbBufferOffset
拆分器应开始分析的数据缓冲区中的偏移量。 此值通常设置为 0。
[in] cbLength
要分析的数据的长度(以字节为单位)。 此值根据 cbBufferOffset 指定的偏移量进行度量。 设置为 0 以处理到缓冲区末尾。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
pIBuffer 参数为 NULL。
cbBufferOffset 中的指定偏移值大于缓冲区的长度。 cbBufferOffset 和 cbLength 的总值大于缓冲区的长度。 |
|
IMFASFSplitter::Initialize 方法未调用或调用失败。 |
|
拆分器目前无法处理更多输入。 |
注解
使用此方法分析数据后,必须调用 IMFASFSplitter::GetNextSample 来检索已分析的媒体样本。
如果 ASF 数据包含大小可变的数据包,则必须在缓冲区上设置 MFASFSPLITTER_PACKET_BOUNDARY 属性以指示样本边界,并且缓冲区不能跨多个数据包。
如果方法返回ME_E_NOTACCEPTING,请调用 GetNextSample 以获取输出样本,或调用 IMFASFSplitter::Flush 以清除拆分器。
拆分器可能会保留输入缓冲区上的引用计数。 因此,调用此方法后,请勿写入缓冲区中的有效数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wmcontainer.h |
Library | Mfuuid.lib |