IAMStreamControl::StopAt メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは StopAt
、データの配信を停止するタイミングをピンに通知します。
構文
HRESULT StopAt(
[in] const REFERENCE_TIME *ptStop,
[in] BOOL bSendExtra,
[in] DWORD dwCookie
);
パラメーター
[in] ptStop
ピン がデータ の配信を停止するタイミングを指定するREFERENCE_TIME値へのポインター。 値が MAXLONGLONG (0x7FFFFFFFFFFFFFFF) の場合、メソッドは以前の停止要求を取り消します。 psStop が NULL の場合、ピンはすぐに停止します。
プレビュー ピンの場合、 値 NULL と MAXLONGLONG のみが有効です。これは、プレビュー ピンが提供するサンプルにタイム スタンプを付けないためです。
[in] bSendExtra
スケジュールされた停止時刻の後に追加のサンプルを送信するかどうかを示すブール値を指定します。 TRUE の場合、ピンは追加のサンプルを 1 つ送信します。
[in] dwCookie
開始通知と共に送信する値を指定します。 「解説」を参照してください。
戻り値
メソッドが成功した場合、戻り値はS_OK。 それ以外の場合は、エラーの原因を示す HRESULT 値を返します。
注釈
dwCookie パラメーターが 0 以外の場合、ピンはデータの配信を停止したときにEC_STREAM_CONTROL_STOPPED イベントを送信します。 1 つ目のイベント パラメーターはピンの IPin インターフェイスへのポインターであり、2 番目のイベント パラメーターは dwCookie の値です。 ptStop が NULL または MAXLONGLONG の場合、イベントは送信されません。dwCookie の値は無視されます。
ビデオ キャプチャでは、通常、キャプチャ フィルターの出力ピンとマルチプレクサーの入力ピンでこのメソッドを呼び出します。 アプリケーションは、マルチプレクサーからの停止イベントを待機する必要があります。 これにより、キャプチャ フィルターが適切な数のフレームを送信し、すべてのフレームがマルチプレクサーに到達することを保証します。 また、キャプチャ ピンの 場合は bSendExtra パラメーターを TRUE に設定し、マルチプレクサー ピンの 場合は FALSE に 設定します。 これにより、キャプチャ フィルターが 1 つの追加フレームを送信します。 マルチプレクサはキャプチャ ピンからのタイム スタンプに依存するため、余分なフレームが送信されない場合、マルチプレクサは停止時間を無期限に待機します。 マルチプレクサーが余分なフレームを受け取ると、それを破棄します。
このメソッドは、次の境界条件を処理します。
- 停止時間がサンプルの開始時刻と終了時刻の間にある場合、ピンはそのサンプルを提供します。
- 開始時刻が停止時間と等しい場合、ピンは 1 つのサンプルを提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |