Microsoft DirectX 8.0

IVideoFrameStep インターフェイス

ビデオ ストリームを進める。このインターフェイスを使用すると、DVD プレーヤーを含む Microsoft® DirectShow® アプリケーションから、ビデオ ストリームを 1 フレームずつ進めることができる。このインターフェイスは、フィルタ グラフ マネージャから入手する。フィルタ グラフ マネージャは、オーバーレイ ミキサー フィルタまたはビデオ レンダラ フィルタと共に、コマ送り処理を制御する。逆方向のコマ送り処理は、サポートされていない。

注 :  ハードウェア デコーダでコマ送りが機能するには、そのデコーダで AM_KSPROPSETID_FrameStep プロパティ セットがサポートされている必要がある。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IVideoFrameStep メソッド説明
Step 指定されたフレーム数だけフィルタ グラフを順方向にコマ送りする。
CanStep 指定されたフィルタのコマ送り能力を判断する。
CancelStep 直前のコマ送り操作を取り消す。

IVideoFrameStep::CancelStep

IVideoFrameStep インターフェイス

直前の Step 操作を取り消す。

構文

HRESULT CancelStep();

戻り値

Step 操作の取り消しに成功した場合は、S_OK を返す。それ以外の場合は、E_FAIL を返す。

IVideoFrameStep::CanStep

IVideoFrameStep インターフェイス

指定されたフィルタのコマ送り能力を判断する。

構文

HRESULT CanStep(
   long bMultiple,
   IUnknown *pStepObject
);

パラメータ

bMultiple
bMultiple が 0 の場合にメソッドが S_OK を返す場合は、オブジェクトが 1 フレームずつコマ送りできることを意味する。bMultiple が正の場合にメソッドが S_OK を返す場合は、pStepObjectbMultiple フレームずつコマ送りできることを意味する。
pStepObject
コマ送り操作を制御するフィルタのインターフェイスへのポインタ。フィルタ グラフ マネージャに対して、特定のフィルタ グラフ用のレンダリング フィルタを使ってコマ送りを実行するように指示するには、NULL を指定する。コマ送りを実装するカスタム フィルタがグラフに含まれている場合、pStepObject はそのフィルタの IBaseFilter インターフェイスをポイントする必要がある。

戻り値

オブジェクトがコマ送り可能な場合は、S_OK を返す。pStepObject が無効な場合は、E_INVALIDARG を返す。

注意

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

IVideoFrameStep::Step

IVideoFrameStep インターフェイス

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

構文

HRESULT Step(
   DWORD dwFrames,
   IUnknown *pStepObject
);

パラメータ

dwFrames
スキップするフレーム数を指定する DWORD 型の変数。dwFrames が 1 の場合、1 フレーム、順方向にコマ送りすることを意味する。dwFrames が 1 より大きい値 n の場合、n - 1 フレームをスキップし、n 番目のフレームを表示することを意味する。
pStepObject
コマ送り操作を制御するフィルタのインターフェイスへのポインタ。フィルタ グラフ マネージャに対して、特定のフィルタ グラフ用のレンダリング フィルタを使ってコマ送りを実行するように指示するには、NULL を指定する。コマ送りを実装するカスタム フィルタがグラフに含まれている場合、pStepObject はそのフィルタの IBaseFilter インターフェイスをポイントする必要がある。

戻り値

HRESULT 値を返す。次の可能な値がある。

S_OK成功。
VFW_E_FRAME_STEP_UNSUPPORTEDコマ送りはサポートされていない。
E_INVALIDARGpStepObject パラメータは無効である。

注意

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