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。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_INVALIDARG
pIBuffer 参数为 NULL

cbBufferOffset 中的指定偏移值大于缓冲区的长度。

cbBufferOffsetcbLength 的总值大于缓冲区的长度。

MF_E_NOT_INITIALIZED
IMFASFSplitter::Initialize 方法未调用或调用失败。
MF_E_NOTACCEPTING
拆分器目前无法处理更多输入。

注解

使用此方法分析数据后,必须调用 IMFASFSplitter::GetNextSample 来检索已分析的媒体样本。

如果 ASF 数据包含大小可变的数据包,则必须在缓冲区上设置 MFASFSPLITTER_PACKET_BOUNDARY 属性以指示样本边界,并且缓冲区不能跨多个数据包。

如果方法返回ME_E_NOTACCEPTING,请调用 GetNextSample 以获取输出样本,或调用 IMFASFSplitter::Flush 以清除拆分器。

拆分器可能会保留输入缓冲区上的引用计数。 因此,调用此方法后,请勿写入缓冲区中的有效数据。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 wmcontainer.h
Library Mfuuid.lib

另请参阅

ASF 拆分器

IMFASFSplitter