CBaseOutputPin.DecideAllocator メソッド
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
メソッドは DecideAllocator
、メモリ アロケーターを選択します。
構文
virtual HRESULT DecideAllocator(
IMemInputPin *pPin,
IMemAllocator **pAlloc
);
パラメーター
-
pPin
-
入力ピンの IMemInputPin インターフェイスへのポインター。
-
pAlloc
-
アロケーターの IMemAllocator インターフェイスへのポインターを受け取る変数のアドレス。
戻り値
成功した場合はS_OK、エラーの原因を示す HRESULT 値を返します。
解説
このメソッドは、ピン接続プロセスの最後に呼び出されます。 それによって次の手順が実行されます。
- IMemInputPin::GetAllocatorRequirements メソッドを呼び出して、入力ピンのバッファー要件 (存在する場合) を取得します。
- IMemInputPin::GetAllocator メソッドを呼び出して、入力ピンからアロケーターを要求します。 入力ピンにアロケーターが提供されない場合、出力ピンは CBaseOutputPin::InitAllocator クラス メソッドを呼び出して作成します。
- アロケーター プロパティを設定 する CBaseOutputPin::D ecideBufferSize クラス メソッドを呼び出します。 これは純粋な仮想メソッドです。派生クラスはそれを実装する必要があります。
- IMemInputPin::NotifyAllocator メソッドを呼び出します。このメソッドは、使用されているアロケーターの入力ピンに通知します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|