IMFASFMultiplexer::P rocessSample メソッド (wmcontainer.h)

マルチプレクサーに入力サンプルを配信します。

構文

HRESULT ProcessSample(
  [in] WORD      wStreamNumber,
  [in] IMFSample *pISample,
  [in] LONGLONG  hnsTimestampAdjust
);

パラメーター

[in] wStreamNumber

サンプルが属するストリームのストリーム番号。

[in] pISample

入力サンプルの IMFSample インターフェイスへのポインター。 入力サンプルには、ASF データ パケットに変換するメディア データが含まれています。 可能であれば、このサンプルのタイム スタンプは正確である必要があります。

[in] hnsTimestampAdjust

サンプルのタイム スタンプに適用する調整。 このパラメーターは、呼び出し元が pISample のサンプル時間をシフトする場合に使用されます。 タイム スタンプを先にプッシュする場合は正、タイム スタンプをプッシュバックする必要がある場合は負の値にする必要があります。 このタイム スタンプは pISample のサンプル時間に追加され、結果の時間は元のサンプル時間ではなくマルチプレクサによって使用されます。 調整が必要ない場合は、この値を 0 に設定します。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
MF_E_NOTACCEPTING
マルチプレクサーからの取得を待機しているパケットが多すぎます。 IMFASFMultiplexer::GetNextPacket を呼び出してパケットを取得します。
MF_E_BANDWIDTH_OVERRUN
処理されたサンプルは、ASF ContentInfo オブジェクトのストリームに指定されている帯域幅の制限に違反しています。 このエラーが生成されると、サンプルは削除されます。
MF_E_INVALIDSTREAMNUMBER
wStreamNumber で渡された値が無効です。
MF_E_LATE_SAMPLE
入力メディア サンプルのプレゼンテーション時間は、送信時間よりも前です。

注釈

アプリケーションは サンプルを ProcessSample に渡し、ASF マルチプレクサーは ASF パケットに配置する準備ができるまで内部的にキューに入れます。 IMFASFMultiplexer::GetNextPacket を呼び出して ASF データ パケットを取得します。

ProcessSample を呼び出すたびに、ループ内で GetNextPacket を呼び出して、使用可能なすべてのデータ パケットを取得します。 コード例については、「 新しい ASF データ パケットの生成」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wmcontainer.h
Library Mfuuid.lib

こちらもご覧ください

新しい ASF データ パケットの生成

IMFASFMultiplexer

IMFSample