Win32 API 日本語リファレンス
ホームMedia.DirectShow › IVMRImageCompositor

IVMRImageCompositor

COM
IID7a4fb5af-479f-4074-bb40-ce6722e43c82継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVMRImageCompositor インターフェイスは、Video Mixing Renderer Filter 7 (VMR-7) の既定のコンポジターによって実装されます。

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT InitCompositionTarget(IUnknown* pD3DDevice, IDirectDrawSurface7* pddsRenderTarget)

InitCompositionTarget メソッドは、新しいコンポジションターゲットが作成されたことをコンポジターに通知します。

pD3DDeviceIUnknown*inDirect3D デバイスオブジェクトの IUnknown インターフェイスへのポインター。
pddsRenderTargetIDirectDrawSurface7*inDirectDraw サーフェスを指定します。

戻り値

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

vtbl 4 HRESULT TermCompositionTarget(IUnknown* pD3DDevice, IDirectDrawSurface7* pddsRenderTarget)

TermCompositionTarget メソッドは、現在のコンポジションターゲットが置き換えられようとしていることをコンポジターに通知します。コンポジターは、このメソッドでコンポジションターゲットの必要なクリーンアップを実行する必要があります。

pD3DDeviceIUnknown*inDirect3D デバイスオブジェクトの IUnknown インターフェイスへのポインター。
pddsRenderTargetIDirectDrawSurface7*inDirectDraw サーフェスを指定します

戻り値

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

vtbl 5 HRESULT SetStreamMediaType(DWORD dwStrmID, AM_MEDIA_TYPE* pmt, BOOL fTexture)

SetStreamMediaType メソッドは、入力ストリームのメディアタイプを設定します。

dwStrmIDDWORDin入力ストリームを指定します。値は 1 から 16 の範囲でなければなりません。
pmtAM_MEDIA_TYPE*inメディアタイプを指定する AM_MEDIA_TYPE 構造体へのポインター。
fTextureBOOLinTRUE の場合、ターゲットサーフェスが Direct3D テクスチャサーフェスであることを指定します。

戻り値

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

vtbl 6 HRESULT CompositeImage(IUnknown* pD3DDevice, IDirectDrawSurface7* pddsRenderTarget, AM_MEDIA_TYPE* pmtRenderTarget, LONGLONG rtStart, LONGLONG rtEnd, DWORD dwClrBkGnd, VMRVIDEOSTREAMINFO* pVideoStreamInfo, DWORD cStreams)

CompositeImage メソッドは、各入力ストリームで利用可能な現在のフレームを合成します。

pD3DDeviceIUnknown*inDirect3D デバイスの IUnknown インターフェイスへのポインター。コンポジターはこれを LPDIRECT3DDEVICE7 型にキャストする必要があります。
pddsRenderTargetIDirectDrawSurface7*inすべての描画を実行する DirectDraw サーフェスを指定します。
pmtRenderTargetAM_MEDIA_TYPE*inDirectDraw サーフェスのメディアタイプを指定します。
rtStartLONGLONGin開始時刻を指定します。
rtEndLONGLONGin終了時刻を指定します。
dwClrBkGndDWORDin背景色を指定します。
pVideoStreamInfoVMRVIDEOSTREAMINFO*inビデオストリーム情報オブジェクトの配列へのポインター。
cStreamsDWORDinミックスするストリームの数を指定します。これは pVideoStreamInfo 配列のサイズと等しくなります。

戻り値

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

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IVMRImageCompositor "{7A4FB5AF-479F-4074-BB40-CE6722E43C82}"
#usecom global IVMRImageCompositor IID_IVMRImageCompositor "{}"
#comfunc global IVMRImageCompositor_InitCompositionTarget  3 sptr,sptr
#comfunc global IVMRImageCompositor_TermCompositionTarget  4 sptr,sptr
#comfunc global IVMRImageCompositor_SetStreamMediaType     5 int,var,int
#comfunc global IVMRImageCompositor_CompositeImage         6 sptr,sptr,var,int64,int64,int,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。