次の方法で共有


CBaseOutputPin クラス

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

cbaseoutputpin クラス階層

クラスは 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 追加データが必要ないことをピンに通知します。

要件

要件
ヘッダー
Amfilter.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)