CBaseOutputPin クラス
CBaseOutputPin クラスは出力ピンを実装する抽象基底クラスである。
このクラスは CBasePin から派生する。以下の面で CBasePin とは異なる。
- IMemInputPin インターフェイスをサポートする入力ピンにのみ接続する。
- IMemAllocator インターフェイスを通して、ローカル メモリ トランスポートをサポートする。
- エンドオブストリーム、フラッシュ、新セグメント通知を拒否する (これらは出力ピンに送られるべきではない)。
- サンプル データストリームを出力するためのメソッドを提供する。
ピンが接続するとき、入力ピンのメモリ アロケータを要求する。それが失敗すると、新しいアロケータ オブジェクトを作成する。アロケータ プロパティの設定は出力ピンが行う必要がある。純粋仮想メソッド CBaseOutputPin::DecideBufferSize を通してこれを行う。派生クラスでこのメソッドをオーバーライドすること。入力ピンにバッファ要求がある場合は、その要求を DecideBufferSize メソッドに渡す。
空白のメディア サンプルを取得するには CBaseOutputPin::GetDeliveryBuffer メソッドを呼び出すこと。サンプルをダウンストリームに出力するには CBaseOutputPin::Deliver メソッドを呼び出すこと。
派生クラスは純粋仮想メソッド CBasePin::CheckMediaType をオーバーライドして、ピン接続時にメディア タイプを確認する必要がある。
要件
ヘッダー : Amfilter.h で宣言し、Streams.h をインクルードする。
ライブラリ : Strmbase.lib (リテール ビルド) または Strmbasd.lib (デバッグ ビルド)。
プロテクト メンバ変数 | |
m_pAllocator | メモリ アロケータへのポインタ。 |
m_pInputPin | このピンに接続されている入力ピンへのポインタ。 |
パブリック メソッド | |
CBaseOutputPin | コンストラクタ メソッド。 |
DecideAllocator | メモリ アロケータを選択する。仮想。 |
GetDeliveryBuffer | 空のバッファを持つメディア サンプルを取得する。仮想。 |
Deliver | 接続されている入力ピンにメディア サンプルを出力する。仮想。 |
InitAllocator | メモリ アロケータを作成。仮想。 |
CheckConnect | ピン接続が適切かどうかを確認する。 |
BreakConnect | 接続からピンを解放する。 |
Active | フィルタが現在アクティブであることをピンに通知する。 |
Inactive | フィルタがアクティブではなくなったことをピンに通知する。 |
DeliverEndOfStream | 接続されている入力ピンにエンドオブストリーム通知を出力する。仮想。 |
DeliverBeginFlush | 接続されている入力ピンにフラッシュ処理の開始を要求する。仮想。 |
DeliverEndFlush | 接続されている入力ピンにフラッシュ処理の終了を要求する。仮想。 |
DeliverNewSegment | 接続されている入力ピンに新セグメント通知を出力する。仮想。 |
純粋仮想メソッド | |
DecideBufferSize | バッファ要求を設定する。 |
IPin メソッド | |
BeginFlush | フラッシュ処理を開始する。 |
EndFlush | フラッシュ処理を終了する。 |
EndOfStream | 追加のデータがないことをピンに通知する。 |