共用方式為


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
程式庫 Mfuuid.lib

另請參閱

ASF 分割器

IMFASFSplitter