次の方法で共有


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 を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
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