IMFASFSplitter::P arseData メソッド (wmcontainer.h)
パケット化された Advanced Systems Format (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 |