Microsoft DirectX 8.0 |
ビデオ ストリームを進める。このインターフェイスを使用すると、DVD プレーヤーを含む Microsoft® DirectShow® アプリケーションから、ビデオ ストリームを 1 フレームずつ進めることができる。このインターフェイスは、フィルタ グラフ マネージャから入手する。フィルタ グラフ マネージャは、オーバーレイ ミキサー フィルタまたはビデオ レンダラ フィルタと共に、コマ送り処理を制御する。逆方向のコマ送り処理は、サポートされていない。
注 : ハードウェア デコーダでコマ送りが機能するには、そのデコーダで AM_KSPROPSETID_FrameStep プロパティ セットがサポートされている必要がある。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IVideoFrameStep メソッド 説明 Step 指定されたフレーム数だけフィルタ グラフを順方向にコマ送りする。 CanStep 指定されたフィルタのコマ送り能力を判断する。 CancelStep 直前のコマ送り操作を取り消す。
直前の Step 操作を取り消す。
構文
HRESULT CancelStep();
戻り値
Step 操作の取り消しに成功した場合は、S_OK を返す。それ以外の場合は、E_FAIL を返す。
指定されたフィルタのコマ送り能力を判断する。
構文
HRESULT CanStep( long bMultiple, IUnknown *pStepObject );
パラメータ
- bMultiple
- bMultiple が 0 の場合にメソッドが S_OK を返す場合は、オブジェクトが 1 フレームずつコマ送りできることを意味する。bMultiple が正の場合にメソッドが S_OK を返す場合は、pStepObject が bMultiple フレームずつコマ送りできることを意味する。
- pStepObject
- コマ送り操作を制御するフィルタのインターフェイスへのポインタ。フィルタ グラフ マネージャに対して、特定のフィルタ グラフ用のレンダリング フィルタを使ってコマ送りを実行するように指示するには、NULL を指定する。コマ送りを実装するカスタム フィルタがグラフに含まれている場合、pStepObject はそのフィルタの IBaseFilter インターフェイスをポイントする必要がある。
戻り値
オブジェクトがコマ送り可能な場合は、S_OK を返す。pStepObject が無効な場合は、E_INVALIDARG を返す。
注意
コマ送りは実時間で行われる。これは、ムービーを 30 フレーム/秒で再生しているときに、bMultiple に 60 を設定して Step を呼び出すと、実行に 2 秒かかることを意味する。このインターフェイスのメソッドはすべて非同期であり、制御は直ちにアプリケーションに返される。
指定されたフレーム数だけフィルタ グラフを順方向にコマ送りする。
構文
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_INVALIDARG pStepObject パラメータは無効である。
注意
コマ送り操作が完了すると、このメソッドはフィルタ グラフ マネージャに EC_STEP_COMPLETE イベント通知を送る。フィルタ グラフ マネージャは、これをアプリケーションのイベント ループに渡し、フィルタ グラフをポーズ状態に切り替える。