次の方法で共有


IMFStreamSink::P rocessSample メソッド (mfidl.h)

ストリームにサンプルを配信します。 メディア シンクによってサンプルが処理されます。

構文

HRESULT ProcessSample(
  [in] IMFSample *pSample
);

パラメーター

[in] pSample

ストリームの有効なデータを含むサンプルの IMFSample インターフェイスへのポインター。

戻り値

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

リターン コード 説明
S_OK
メソッドが成功しました。
MF_E_INVALID_STATE_TRANSITION
メディア シンクが、サンプルを受け取る間違った状態です。 たとえば、プリロールは完了しましたが、プレゼンテーション クロックはまだ開始されていません。
MF_E_INVALID_TIMESTAMP
サンプルに無効なタイム スタンプがあります。 「解説」を参照してください。
MF_E_INVALIDREQUEST
メディア シンクは一時停止または停止され、サンプルを処理できません。
MF_E_NO_CLOCK
プレゼンテーションクロックが設定されていません。 IMFMediaSink::SetPresentationClock を呼び出します。
MF_E_NO_SAMPLE_TIMESTAMP
サンプルにはタイム スタンプがありません。
MF_E_NOT_INITIALIZED
ストリーム シンクが初期化されていません。
MF_E_SHUTDOWN
メディア シンクの Shutdown メソッドが呼び出されました。
MF_E_STREAMSINK_REMOVED
このストリームはメディア シンクから削除され、有効ではなくなりました。

解説

ストリーム シンクが MEStreamSinkRequestSample イベントを送信するときに、このメソッドを呼び出します。

このメソッドは、メディア シンクの実装に応じて、さまざまな理由でMF_E_INVALID_TIMESTAMPを返すことができます。

  • 負のタイム スタンプ。
  • (同じストリーム内で) 後方にジャンプするタイム スタンプ。
  • 1 つのストリームのタイム スタンプが、同じメディア シンク内の別のストリーム (ストリームを多重化するアーカイブ シンクなど) のタイム スタンプから遠すぎます。
このような状況では、すべてのメディア シンクがエラー コードを返すわけではありません。

要件

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

関連項目

IMFStreamSink

メディア シンク