次の方法で共有


CBaseOutputPin クラス

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 追加のデータがないことをピンに通知する。