ID3D11VideoProcessorEnumerator
COM公式ドキュメント
Microsoft Direct3D 11 デバイスのビデオプロセッサー機能を列挙します。(ID3D11VideoProcessorEnumerator)
解説(Remarks)
このインターフェイスへのポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessorEnumerator を呼び出します。
ビデオプロセッサーのインスタンスを作成するには、ID3D11VideoProcessorEnumerator ポインターを ID3D11VideoDevice::CreateVideoProcessor メソッドに渡します。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
この列挙子の作成に使用されたコンテンツ記述を取得します。
| pContentDesc | D3D11_VIDEO_PROCESSOR_CONTENT_DESC* | out | コンテンツ記述を受け取る D3D11_VIDEO_PROCESSOR_CONTENT_DESC 構造体へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ビデオプロセッサーが指定されたビデオ形式をサポートしているかどうかを照会します。
| Format | DXGI_FORMAT | in | 照会するビデオ形式。DXGI_FORMAT 値で指定します。 |
| pFlags | DWORD* | out | D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT 列挙型の 0 個以上のフラグのビットごとの OR を受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ビデオプロセッサーの機能を取得します。
| pCaps | D3D11_VIDEO_PROCESSOR_CAPS* | out | 機能を受け取る D3D11_VIDEO_PROCESSOR_CAPS 構造体へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
デインターレースや逆テレシネを含む、フレームレート変換に関連するビデオプロセッサー機能のグループを返します。
| TypeIndex | DWORD | in | 取得するグループの 0 から始まるインデックス。最大インデックスを取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、D3D11_VIDEO_PROCESSOR_CAPS 構造体の RateConversionCapsCount メンバーを確認します。 |
| pCaps | D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS* | out | フレームレート変換機能を受け取る D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS 構造体へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS 構造体で定義される機能は相互に依存しています。そのため、ドライバーはこれらの機能について複数の異なるグループをサポートできます。
ビデオプロセッサーがサポートするカスタムフレームレートの一覧を取得します。
| TypeIndex | DWORD | in | フレームレート機能グループの 0 から始まるインデックス。最大インデックスを取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、D3D11_VIDEO_PROCESSOR_CAPS 構造体の RateConversionCapsCount メンバーを確認します。 |
| CustomRateIndex | DWORD | in | 取得するカスタムレートの 0 から始まるインデックス。最大インデックスを取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorRateConversionCaps を呼び出し、D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS 構造体の CustomRateCount メンバーを確認します。 このインデックス値は、常に TypeIndex パラメーターで指定された機能グループに対する相対値です。 |
| pRate | D3D11_VIDEO_PROCESSOR_CUSTOM_RATE* | out | カスタムレートを受け取る D3D11_VIDEO_PROCESSOR_CUSTOM_RATE 構造体へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
イメージフィルターの値の範囲を取得します。
| Filter | D3D11_VIDEO_PROCESSOR_FILTER | in | イメージフィルターの種類。D3D11_VIDEO_PROCESSOR_FILTER 値で指定します。 |
| pRange | D3D11_VIDEO_PROCESSOR_FILTER_RANGE* | out | D3D11_VIDEO_PROCESSOR_FILTER_RANGE 構造体へのポインター。このメソッドは、指定されたフィルターの値の範囲をこの構造体に格納します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID3D11VideoProcessorEnumerator "{31627037-53AB-4200-9061-05FAA9AB45F9}" #usecom global ID3D11VideoProcessorEnumerator IID_ID3D11VideoProcessorEnumerator "{}" #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc 7 var #comfunc global ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat 8 int,var #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps 9 var #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps 10 int,var #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate 11 int,int,var #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange 12 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ID3D11VideoProcessorEnumerator "{31627037-53AB-4200-9061-05FAA9AB45F9}" #usecom global ID3D11VideoProcessorEnumerator IID_ID3D11VideoProcessorEnumerator "{}" #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc 7 sptr #comfunc global ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat 8 int,sptr #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps 9 sptr #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps 10 int,sptr #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate 11 int,int,sptr #comfunc global ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange 12 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。