次の方法で共有


IAsyncReader::RequestAllocator

RequestAllocator メソッドは、ピン接続中にアロケータを要求する。

構文

  HRESULT RequestAllocator(
  IMemAllocator *pPreferred,
  ALLOCATOR_PROPERTIES *pProps,
  IMemAllocator **ppActual
);

パラメータ

pPreferred

[in] 入力ピンの優先アロケータの IMemAllocator インターフェイスへのポインタ。または NULL。

pProps

[in] 呼び出し元が割り当てた ALLOCATOR_PROPERTIES 構造体のアドレスを指定する。呼び出し元は、入力ピンに必要なアロケータ プロパティを設定し、残りのメンバはゼロに設定しなければならない。

ppActual

[out] IMemAllocator インターフェイス ポインタを受け取る変数のアドレス。

戻り値

HRESULT 値を返す。可能な値は次のとおりである。

戻りコード 説明
E_FAIL アロケータの初期化が失敗した。
VFW_E_BADALIGN 無効なアラインメントが指定された。
S_OK アロケータが返された。

注意

ダウンストリーム入力ピンは、接続処理中はこのメソッドを呼び出すこと。ピンに優先アロケータがあるときは、その優先アロケータを pPreferred 引数で指定する。バッファ サイズやアラインメントなどのバッファ条件があるときは、pProps 引数で指定する。出力ピンはアロケータを選択して、そのアロケータへのポインタを ppActual 引数で返す。

出力ピンは、入力ピンの要求を受け入れる必要はない。入力ピンに絶対条件があるときは、返されるアロケータに対して IMemAllocator::GetProperties メソッドを呼び出す必要がある。アロケータのプロパティが適切でないと、接続に失敗する可能性がある。接続が確立されたら、入力ピンは出力ピンが選択したアロケータを "必ず" 使わなければならない。

アロケータのコミットおよびデコミットは、入力ピンが行うこと。

参照