ホーム › Media.DirectShow › IVMRImageCompositor9
IVMRImageCompositor9
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pD3DDevice | IUnknown* | in | 合成に使用するDirect3Dデバイスを表すIUnknownへのポインタ。 |
| pD3DDevice | IUnknown* | in | 解放するDirect3Dデバイスを表すIUnknownへのポインタ。 |
vtbl 5 HRESULT SetStreamMediaType(DWORD dwStrmID, AM_MEDIA_TYPE* pmt, BOOL fTexture)
| dwStrmID | DWORD | in | 対象とする入力ストリームのID。 |
| pmt | AM_MEDIA_TYPE* | in | ストリームのメディア型を指定するAM_MEDIA_TYPEへのポインタ。 |
| fTexture | BOOL | in | サーフェスがテクスチャならTRUE、オフスクリーンプレーンならFALSEを示すBOOL。 |
vtbl 6 HRESULT CompositeImage(IUnknown* pD3DDevice, IDirect3DSurface9* pddsRenderTarget, AM_MEDIA_TYPE* pmtRenderTarget, LONGLONG rtStart, LONGLONG rtEnd, DWORD dwClrBkGnd, VMR9VideoStreamInfo* pVideoStreamInfo, DWORD cStreams)
| pD3DDevice | IUnknown* | in | 合成に使用するDirect3DデバイスのIUnknownへのポインタ。 |
| pddsRenderTarget | IDirect3DSurface9* | in | 合成先となるレンダーターゲットのIDirect3DSurface9へのポインタ。 |
| pmtRenderTarget | AM_MEDIA_TYPE* | in | レンダーターゲットのメディア型を記述するAM_MEDIA_TYPEへのポインタ。 |
| rtStart | LONGLONG | in | 合成対象フレームの開始基準時刻(100ナノ秒単位)。 |
| rtEnd | LONGLONG | in | 合成対象フレームの終了基準時刻(100ナノ秒単位)。 |
| dwClrBkGnd | DWORD | in | 合成背景色をRGBで指定するDWORD。 |
| pVideoStreamInfo | VMR9VideoStreamInfo* | in | 各入力ストリームの合成情報を記述するVMR9VideoStreamInfo配列へのポインタ。 |
| cStreams | DWORD | in | pVideoStreamInfo配列に含まれるストリーム数。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IVMRImageCompositor9 "{4A5C89EB-DF51-4654-AC2A-E48E02BBABF6}" #usecom global IVMRImageCompositor9 IID_IVMRImageCompositor9 "{}" #comfunc global IVMRImageCompositor9_InitCompositionDevice 3 sptr #comfunc global IVMRImageCompositor9_TermCompositionDevice 4 sptr #comfunc global IVMRImageCompositor9_SetStreamMediaType 5 int,var,int #comfunc global IVMRImageCompositor9_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 指定が可能。#define global IID_IVMRImageCompositor9 "{4A5C89EB-DF51-4654-AC2A-E48E02BBABF6}" #usecom global IVMRImageCompositor9 IID_IVMRImageCompositor9 "{}" #comfunc global IVMRImageCompositor9_InitCompositionDevice 3 sptr #comfunc global IVMRImageCompositor9_TermCompositionDevice 4 sptr #comfunc global IVMRImageCompositor9_SetStreamMediaType 5 int,sptr,int #comfunc global IVMRImageCompositor9_CompositeImage 6 sptr,sptr,sptr,int64,int64,int,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。