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

IMediaStreamFilter

COM
IIDbebe595e-9a6f-11d0-8fde-00c04fd9189d継承元IBaseFilter自前メソッド開始 vtbl15

メソッド 9

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

vtbl 15 HRESULT AddMediaStream(IAMMediaStream* pAMMediaStream)
pAMMediaStreamIAMMediaStream*inフィルタに追加するIAMMediaStreamへのポインタ入力。
vtbl 16 HRESULT GetMediaStream(GUID* idPurpose, IMediaStream** ppMediaStream)
idPurposeGUID*in取得対象ストリームの用途を示すGUIDへのポインタ入力。
ppMediaStreamIMediaStream**out該当するIMediaStreamを受け取る出力。Releaseが必要。
vtbl 17 HRESULT EnumMediaStreams(INT Index, IMediaStream** ppMediaStream)
IndexINTin列挙する0起点のストリームインデックス入力。
ppMediaStreamIMediaStream**out該当インデックスのIMediaStreamを受け取る出力。末尾でS_FALSE。
vtbl 18 HRESULT SupportSeeking(BOOL bRenderer)
bRendererBOOLinこのフィルタをシーク基準のレンダラとして扱うか否かのBOOL入力。
vtbl 19 HRESULT ReferenceTimeToStreamTime(LONGLONG* pTime)
pTimeLONGLONG*inout参照時刻を入力し、対応するストリーム時刻に変換して返すLONGLONG*入出力。
vtbl 20 HRESULT GetCurrentStreamTime(LONGLONG* pCurrentStreamTime)
pCurrentStreamTimeLONGLONG*out現在のストリーム時刻(100ns単位)をLONGLONG*で受け取る出力。
vtbl 21 HRESULT WaitUntil(LONGLONG WaitStreamTime)
WaitStreamTimeLONGLONGin待機する目標ストリーム時刻(100ns単位)をLONGLONGで指定する入力。
vtbl 22 HRESULT Flush(BOOL bCancelEOS)
bCancelEOSBOOLinフラッシュ時に保留中の終端通知を取り消すか否かのBOOL入力。
vtbl 23 HRESULT EndOfStream()

HSP用 COM定義

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

出力引数:
#define global IID_IMediaStreamFilter "{BEBE595E-9A6F-11D0-8FDE-00C04FD9189D}"
#usecom global IMediaStreamFilter IID_IMediaStreamFilter "{}"
#comfunc global IMediaStreamFilter_AddMediaStream             15 sptr
#comfunc global IMediaStreamFilter_GetMediaStream             16 var,sptr
#comfunc global IMediaStreamFilter_EnumMediaStreams           17 int,sptr
#comfunc global IMediaStreamFilter_SupportSeeking             18 int
#comfunc global IMediaStreamFilter_ReferenceTimeToStreamTime  19 var
#comfunc global IMediaStreamFilter_GetCurrentStreamTime       20 var
#comfunc global IMediaStreamFilter_WaitUntil                  21 int64
#comfunc global IMediaStreamFilter_Flush                      22 int
#comfunc global IMediaStreamFilter_EndOfStream                23
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。