IDXVAHD_VideoProcessor
COM公式ドキュメント
Microsoft DirectX Video Acceleration High Definition (DXVA-HD) のビデオプロセッサを表します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイスによるブリット操作の状態パラメーターを設定します。
| State | DXVAHD_BLT_STATE | in | 設定する状態パラメーター。DXVAHD_BLT_STATE 列挙体のメンバーとして指定します。 |
| DataSize | DWORD | in | pData が指すバッファーのサイズ (バイト単位)。 |
| pData | void* | in | 状態データを格納するバッファーへのポインター。データの意味は State パラメーターによって異なります。各状態には対応するデータ構造があります。詳細については、DXVAHD_BLT_STATE を参照してください。呼び出し元がバッファーを割り当て、このメソッドを呼び出す前にパラメーターデータを設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイスが実行するブリット操作の状態パラメーターの値を取得します。
| State | DXVAHD_BLT_STATE | in | 照会する状態パラメーター。DXVAHD_BLT_STATE 列挙体のメンバーとして指定します。 |
| DataSize | DWORD | in | pData が指すバッファーのサイズ (バイト単位)。 |
| pData | void* | inout | 呼び出し元が割り当てたバッファーへのポインター。このメソッドは状態データをバッファーにコピーします。バッファーは、状態パラメーターに対応するデータ構造を格納できるだけの大きさが必要です。詳細については、DXVAHD_BLT_STATE を参照してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイス上の入力ストリームの状態パラメーターを設定します。
| StreamNumber | DWORD | in | 入力ストリームのゼロ始まりのインデックス。ストリームの最大数を取得するには、IDXVAHD_Device::GetVideoProcessorDeviceCaps を呼び出し、DXVAHD_VPDEVCAPS 構造体の MaxStreamStates メンバーを確認します。 |
| State | DXVAHD_STREAM_STATE | in | 設定する状態パラメーター。DXVAHD_STREAM_STATE 列挙体のメンバーとして指定します。 |
| DataSize | DWORD | in | pData が指すバッファーのサイズ (バイト単位)。 |
| pData | void* | in | 状態データを格納するバッファーへのポインター。データの意味は State パラメーターによって異なります。各状態には対応するデータ構造があります。詳細については、DXVAHD_STREAM_STATE を参照してください。呼び出し元がバッファーを割り当て、このメソッドを呼び出す前にパラメーターデータを設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
個々の入力ストリームに適用される状態パラメーターを設定するには、このメソッドを呼び出します。
Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイス上の入力ストリームの状態パラメーターの値を取得します。
| StreamNumber | DWORD | in | 入力ストリームのゼロ始まりのインデックス。ストリームの最大数を取得するには、IDXVAHD_Device::GetVideoProcessorDeviceCaps を呼び出し、DXVAHD_VPDEVCAPS 構造体の MaxStreamStates メンバーを確認します。 |
| State | DXVAHD_STREAM_STATE | in | 照会する状態パラメーター。DXVAHD_STREAM_STATE 列挙体のメンバーとして指定します。 |
| DataSize | DWORD | in | pData が指すバッファーのサイズ (バイト単位)。 |
| pData | void* | inout | 呼び出し元が割り当てたバッファーへのポインター。このメソッドは状態データをバッファーにコピーします。バッファーは、状態パラメーターに対応するデータ構造を格納できるだけの大きさが必要です。詳細については、DXVAHD_STREAM_STATE を参照してください。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
1 つ以上の入力サンプルに対してビデオ処理ブリットを実行し、その結果を Microsoft Direct3D サーフェスに書き込みます。
| pOutputSurface | IDirect3DSurface9* | in | Direct3D サーフェスの IDirect3DSurface9 インターフェイスへのポインター。ビデオ処理操作の出力はこのサーフェスに書き込まれます。次のサーフェス型を使用できます。
|
| OutputFrame | DWORD | in | 出力ビデオフレームのフレーム番号。ゼロ始まりのインデックスです。 |
| StreamCount | DWORD | in | 処理する入力ストリームの数。 |
| pStreams | DXVAHD_STREAM_DATA* | in | 入力ストリームに関する情報を格納する DXVAHD_STREAM_DATA 構造体の配列へのポインター。呼び出し元が配列を割り当て、各構造体を設定します。配列の要素数は StreamCount パラメーターで指定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
StreamCount の最大値は、DXVAHD_VPDEVCAPS 構造体の MaxStreamStates メンバーで指定されます。同時に有効化できるストリームの最大数は、同構造体の MaxInputStreams メンバーで指定されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDXVAHD_VideoProcessor "{95F4EDF4-6E03-4CD7-BE1B-3075D665AA52}" #usecom global IDXVAHD_VideoProcessor IID_IDXVAHD_VideoProcessor "{}" #comfunc global IDXVAHD_VideoProcessor_SetVideoProcessBltState 3 int,int,sptr #comfunc global IDXVAHD_VideoProcessor_GetVideoProcessBltState 4 int,int,sptr #comfunc global IDXVAHD_VideoProcessor_SetVideoProcessStreamState 5 int,int,int,sptr #comfunc global IDXVAHD_VideoProcessor_GetVideoProcessStreamState 6 int,int,int,sptr #comfunc global IDXVAHD_VideoProcessor_VideoProcessBltHD 7 sptr,int,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDXVAHD_VideoProcessor "{95F4EDF4-6E03-4CD7-BE1B-3075D665AA52}" #usecom global IDXVAHD_VideoProcessor IID_IDXVAHD_VideoProcessor "{}" #comfunc global IDXVAHD_VideoProcessor_SetVideoProcessBltState 3 int,int,sptr #comfunc global IDXVAHD_VideoProcessor_GetVideoProcessBltState 4 int,int,sptr #comfunc global IDXVAHD_VideoProcessor_SetVideoProcessStreamState 5 int,int,int,sptr #comfunc global IDXVAHD_VideoProcessor_GetVideoProcessStreamState 6 int,int,int,sptr #comfunc global IDXVAHD_VideoProcessor_VideoProcessBltHD 7 sptr,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。