CDynamicOutputPin.StartUsingOutputPin メソッド
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
メソッドは StartUsingOutputPin
、ストリーミング操作のピンへのアクセスを取得します。
構文
virtual HRESULT StartUsingOutputPin();
パラメーター
このメソッドにはパラメーターはありません。
戻り値
HRESULT 値を返します。 次の表に示す値を指定できます。
リターン コード | 説明 |
---|---|
|
成功しました。 |
|
予期しないエラー。 |
|
フィルターが停止したか、ピンのフラッシュが開始されました。 |
解説
接続された入力ピンにデータを配信するメソッド、または接続のメディアの種類を変更するメソッドを呼び出す前に、このメソッドを呼び出します。 たとえば、この規則は次のメソッドに適用されます。
- CDynamicOutputPin::ChangeOutputFormat
- CDynamicOutputPin::ChangeMediaType
- CDynamicOutputPin::D ynamicReconnect
- CBaseOutputPin::D eliver
- CBaseOutputPin::D eliverEndOfStream
- CBaseOutputPin::D eliverNewSegment
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
その後、 CDynamicOutputPin::StopUsingOutputPin メソッドを 呼び出して、ピンへのアクセスを解放します。
ピンがブロックされている場合は、 StartUsingOutputPin
ピンのブロックが解除されるまで待ちます。 メソッドの待機中にフィルターが停止した場合、メソッドはすぐにVFW_E_STATE_CHANGEDを返します。 Pin は、StopUsingOutputPin への対応する呼び出しなしで呼び出された回数StartUsingOutputPin
を保持します。 この数が 0 以外の間に別のスレッドがピンをブロックしようとすると、そのブロック状態が "保留中" に設定されます。 StopUsingOutputPin の最後の呼び出しで、すべてのストリーミング操作が完了すると、ピンはブロックされます。
このメソッドを呼び出すときは、 CDynamicOutputPin::m_BlockStateLock critical セクションを保持しないでください。 それ以外の場合、ピンがブロックされている場合はブロック解除されず、デッドロックが発生します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|