次の方法で共有


IAMBufferNegotiation::SuggestAllocatorProperties メソッド (strmif.h)

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

メソッドは SuggestAllocatorProperties 、アプリケーションの優先アロケーター プロパティをピンに通知します。 ピンが接続する前に、このメソッドを呼び出します。

構文

HRESULT SuggestAllocatorProperties(
  [in] const ALLOCATOR_PROPERTIES *pprop
);

パラメーター

[in] pprop

要求されたプロパティを含む ALLOCATOR_PROPERTIES 構造体へのポインター。 メンバーの負の値は、ピンがそのプロパティの既定の設定を使用する必要があることを示します。

戻り値

HRESULT 値を返します。 使用可能な値は次のとおりです。

リターン コード 説明
S_OK
正常終了しました。
E_FAIL
失敗しました。
E_POINTER
NULL ポインター引数。
VFW_E_ALREADY_CONNECTED
ピンは既に接続されています。

注釈

接続内の両方のピンで IAMBufferNegotiation インターフェイスが公開されている場合は、各ピンでこのメソッドを呼び出して、一方のピンがもう一方のピンをオーバーライドしないようにします。

特定の数のバッファーを要求するには、ALLOCATOR_PROPERTIES構造体の cBuffers メンバーを設定します。 特定のバッファー サイズを要求するには、 cbBuffer メンバーを設定します。 通常、アプリケーションでは配置またはプレフィックスを指定しないでください。 各バッファーのバッファー数またはサイズが小さすぎると、フィルター グラフによってサンプルが削除される可能性があります。

C++
ALLOCATOR_PROPERTIES AllocProp;
AllocProp.cbAlign = -1;  // -1 means no preference.
AllocProp.cbBuffer = dwBytesPerSec *  dwLatencyInMilliseconds / 1000;
AllocProp.cbPrefix = -1;
AllocProp.cBuffers = -1;
pIAMBufferNegotiation->SuggestAllocatorProperties(&AllocProp);

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

こちらもご覧ください

エラーコードと成功コード

IAMBufferNegotiation インターフェイス