IVideoFrameStep::Step

Step メソッドは、指定されたフレーム数だけフィルタ グラフを順方向にコマ送りする。

構文

  HRESULT Step(
  DWORD dwFrames,
  IUnknown *pStepObject
);

パラメータ

dwFrames

スキップするフレーム数を指定する。dwFrames が 1 の場合、グラフは 1 フレーム、順方向にコマ送りする。dwFrames が 1 より大きい数値 n の場合、グラフは n - 1 フレームをスキップして n 番目のフレームを表示する。

pStepObject

コマ送り操作を制御するフィルタのインターフェイスへのポインタ。グラフ内のレンダリング フィルタを使ってコマ送りを実行するときは NULL を指定する。コマ送りを実装するカスタム フィルタがグラフに含まれている場合、pStepObject はそのフィルタの IBaseFilter インターフェイスを指定する必要がある。

戻り値

HRESULT を返す。次のいずれかの値を返す。

説明
S_OK 成功。
VFW_E_FRAME_STEP_UNSUPPORTED コマ送りはサポートされていない。
E_INVALIDARG pStepObject 引数が無効である。

注意

コマ送り操作が完了すると、このメソッドはフィルタ グラフ マネージャに EC_STEP_COMPLETE イベント通知を送る。フィルタ グラフ マネージャは、これをアプリケーションのイベント ループに渡し、フィルタ グラフをポーズ状態に切り替える。

コマ送りは実時間で行われる。これは、ムービーを 30 フレーム/秒で再生しているときに、bMultiple に 60 を設定して IVideoFrameStep::Step を呼び出すと、実行に 2 秒かかることを意味する。このインターフェイスのメソッドはすべて非同期であり、制御は直ちにアプリケーションに返される。

参照