次の方法で共有


IVMRSurfaceAllocatorNotify::AdviseSurfaceAllocator メソッド (strmif.h)

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

メソッドは AdviseSurfaceAllocator 、カスタム アロケーター 発表者を使用するように VMR に指示するために、アプリケーションによって呼び出されます。

構文

HRESULT AdviseSurfaceAllocator(
  [in] DWORD_PTR            dwUserID,
  [in] IVMRSurfaceAllocator *lpIVRMSurfaceAllocator
);

パラメーター

[in] dwUserID

アプリケーション定義のDWORD_PTR、VMR の複数のインスタンスがアロケーター発表者の 1 つのインスタンスで使用されているシナリオで、VMR のこのインスタンスを一意に識別します。

[in] lpIVRMSurfaceAllocator

新しいアロケーター 発表者の IVMRSurfaceAllocator インターフェイスを指定します。 この値が NULL の場合、VMR はクライアントアロケーター発表者を解放し、その既定のアロケーター発表者を復元します。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合はエラー コードを返します。

解説

メソッドを使用すると、既定の allocator-presenter がアンインストールおよび破棄され、指定された新しいコンポーネントに置き換えられます。 新しいコンポーネントは 、IVMRImagePresenter インターフェイスもサポートする必要があります。

このメソッドは、VMR の有効期間中に 1 回だけ呼び出すことができます。 VMR は、VMR 自体が削除されるまで、アロケーター発表者を引き続き使用します。 VMR が最終的に解放されると、カスタム allocator-presenter オブジェクトの参照カウントが解放されます。これにより、そのオブジェクトを解放できます。

要件

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

こちらもご覧ください

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

IVMRSurfaceAllocatorNotify インターフェイス

ビデオ 混合レンダラーの使用