IEVRFilterConfig
COM公式ドキュメント
DirectShow Enhanced Video Renderer (EVR) フィルターの入力ピン数を設定します。
解説(Remarks)
DirectShow EVR フィルターは、リファレンスストリームに対応する 1 つの入力ピンから開始します。ビデオサブストリーム用の追加ピンを作成するには、SetNumberOfStreams を呼び出します。
Media Foundation の EVR メディアシンクは、このインターフェイスをサポートしていません。EVR メディアシンクに新しいストリームを追加するには、IMFMediaSink::AddStreamSink を呼び出します。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
EVR フィルターの入力ピン数を設定します。
| dwMaxStreams | DWORD | in | EVR フィルター上の入力ピンの総数を指定します。この値には、既定で作成されるリファレンスストリーム用の入力ピンが含まれます。たとえば、1 つのサブストリームとリファレンスストリームをミックスするには、このパラメーターに 2 を設定します。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻りコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ストリーム数が無効です。最小は 1、最大は 16 です。 | |
| このメソッドは既に呼び出されているか、または少なくとも 1 つのピンが既に接続されています。 |
解説(Remarks)
このメソッドが一度呼び出されると、同じ EVR フィルターのインスタンスに対して 2 回目を呼び出すことはできません。また、いずれかの入力ピンが接続されている場合、このメソッドは失敗します。
EVR フィルターの入力ピン数を取得します。EVR フィルターは、リファレンスストリームに対応する入力ピンを常に少なくとも 1 つ持ちます。
| pdwMaxStreams | DWORD* | out | ストリーム数を受け取ります。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻りコード | 説明 |
|---|---|
| メソッドは成功しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IEVRFilterConfig "{83E91E85-82C1-4EA7-801D-85DC50B75086}" #usecom global IEVRFilterConfig IID_IEVRFilterConfig "{}" #comfunc global IEVRFilterConfig_SetNumberOfStreams 3 int #comfunc global IEVRFilterConfig_GetNumberOfStreams 4 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IEVRFilterConfig "{83E91E85-82C1-4EA7-801D-85DC50B75086}" #usecom global IEVRFilterConfig IID_IEVRFilterConfig "{}" #comfunc global IEVRFilterConfig_SetNumberOfStreams 3 int #comfunc global IEVRFilterConfig_GetNumberOfStreams 4 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。