CBaseOutputPin クラス
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
クラスは CBaseOutputPin
、出力ピンを実装する抽象基本クラスです。
このクラスは CBasePin から派生します。 CBasePin とは次の点で異なります。
- IMemInputPin インターフェイスをサポートする入力ピンにのみ接続されます。
- IMemAllocator インターフェイスを介したローカル メモリ トランスポートがサポートされます。
- ストリームの終了、フラッシュ、および新しいセグメントの通知を拒否します。 (これらは出力ピンに送信しないでください。)
- サンプルをダウンストリームに配信するためのメソッドを提供します。
ピンが接続すると、入力ピンからメモリ アロケーターが要求されます。 失敗すると、新しいアロケーター オブジェクトが作成されます。 出力ピンは、アロケーター のプロパティを設定する役割を担います。 これは、純粋な仮想メソッド CBaseOutputPin::D ecideBufferSize を使用して行います。 派生クラスでこのメソッドをオーバーライドします。 入力ピンにバッファー要件がある場合は、 DecideBufferSize メソッドに渡されます。
空のメディア サンプルを取得するには、 CBaseOutputPin::GetDeliveryBuffer メソッドを呼び出します。 CBaseOutputPin::D eliver メソッドを呼び出して、ダウンストリームにサンプルを配信します。
ピン接続中にメディアの種類を検証するには、派生クラスで純粋な仮想 CBasePin::CheckMediaType メソッドをオーバーライドする必要があります。
保護されたメンバー変数 | 説明 |
---|---|
m_pAllocator | メモリ アロケーターへのポインター。 |
m_pInputPin | このピンに接続されている入力ピンへのポインター。 |
パブリック メソッド | 説明 |
CBaseOutputPin | コンストラクター メソッド。 |
CompleteConnect | 入力ピンへの接続を完了します。 仮想。 |
DecideAllocator | メモリ アロケーターを選択します。 仮想。 |
GetDeliveryBuffer | 空のバッファーを含むメディア サンプルを取得します。 仮想。 |
配信 | 接続された入力ピンにメディア サンプルを配信します。 仮想。 |
InitAllocator | メモリ アロケーターを作成します。 仮想。 |
CheckConnect | ピン接続が適切かどうかを判断します。 |
BreakConnect | 接続からピンを解放します。 |
アクティブ | フィルターがアクティブになったことをピンに通知します。 |
非アクティブ | フィルターがアクティブでなくなったことをピンに通知します。 |
DeliverEndOfStream | 接続された入力ピンにストリームの終了通知を配信します。仮想。 |
DeliverBeginFlush | 接続された入力ピンにフラッシュ操作を開始するように要求します。 仮想。 |
DeliverEndFlush | フラッシュ操作を終了するために、接続された入力ピンを要求します。 仮想。 |
DeliverNewSegment | 接続された入力ピンに新しいセグメント通知を配信します。 仮想。 |
純粋仮想メソッド | 説明 |
DecideBufferSize | バッファーの要件を設定します。 |
IPin メソッド | 説明 |
BeginFlush | フラッシュ操作を開始します。 |
EndFlush | フラッシュ操作を終了します。 |
EndOfStream | 追加データが必要ないことをピンに通知します。 |
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|