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

IDXVAHD_VideoProcessor

COM
IID95f4edf4-6e03-4cd7-be1b-3075d665aa52継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Microsoft DirectX Video Acceleration High Definition (DXVA-HD) のビデオプロセッサを表します。

メソッド 5

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

vtbl 3 HRESULT SetVideoProcessBltState(DXVAHD_BLT_STATE State, DWORD DataSize, void* pData)

Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイスによるブリット操作の状態パラメーターを設定します。

StateDXVAHD_BLT_STATEin設定する状態パラメーター。DXVAHD_BLT_STATE 列挙体のメンバーとして指定します。
DataSizeDWORDinpData が指すバッファーのサイズ (バイト単位)。
pDatavoid*in状態データを格納するバッファーへのポインター。データの意味は State パラメーターによって異なります。各状態には対応するデータ構造があります。詳細については、DXVAHD_BLT_STATE を参照してください。呼び出し元がバッファーを割り当て、このメソッドを呼び出す前にパラメーターデータを設定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT GetVideoProcessBltState(DXVAHD_BLT_STATE State, DWORD DataSize, void* pData)

Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイスが実行するブリット操作の状態パラメーターの値を取得します。

StateDXVAHD_BLT_STATEin照会する状態パラメーター。DXVAHD_BLT_STATE 列挙体のメンバーとして指定します。
DataSizeDWORDinpData が指すバッファーのサイズ (バイト単位)。
pDatavoid*inout呼び出し元が割り当てたバッファーへのポインター。このメソッドは状態データをバッファーにコピーします。バッファーは、状態パラメーターに対応するデータ構造を格納できるだけの大きさが必要です。詳細については、DXVAHD_BLT_STATE を参照してください。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT SetVideoProcessStreamState(DWORD StreamNumber, DXVAHD_STREAM_STATE State, DWORD DataSize, void* pData)

Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイス上の入力ストリームの状態パラメーターを設定します。

StreamNumberDWORDin入力ストリームのゼロ始まりのインデックス。ストリームの最大数を取得するには、IDXVAHD_Device::GetVideoProcessorDeviceCaps を呼び出し、DXVAHD_VPDEVCAPS 構造体の MaxStreamStates メンバーを確認します。
StateDXVAHD_STREAM_STATEin設定する状態パラメーター。DXVAHD_STREAM_STATE 列挙体のメンバーとして指定します。
DataSizeDWORDinpData が指すバッファーのサイズ (バイト単位)。
pDatavoid*in状態データを格納するバッファーへのポインター。データの意味は State パラメーターによって異なります。各状態には対応するデータ構造があります。詳細については、DXVAHD_STREAM_STATE を参照してください。呼び出し元がバッファーを割り当て、このメソッドを呼び出す前にパラメーターデータを設定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

個々の入力ストリームに適用される状態パラメーターを設定するには、このメソッドを呼び出します。

vtbl 6 HRESULT GetVideoProcessStreamState(DWORD StreamNumber, DXVAHD_STREAM_STATE State, DWORD DataSize, void* pData)

Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイス上の入力ストリームの状態パラメーターの値を取得します。

StreamNumberDWORDin入力ストリームのゼロ始まりのインデックス。ストリームの最大数を取得するには、IDXVAHD_Device::GetVideoProcessorDeviceCaps を呼び出し、DXVAHD_VPDEVCAPS 構造体の MaxStreamStates メンバーを確認します。
StateDXVAHD_STREAM_STATEin照会する状態パラメーター。DXVAHD_STREAM_STATE 列挙体のメンバーとして指定します。
DataSizeDWORDinpData が指すバッファーのサイズ (バイト単位)。
pDatavoid*inout呼び出し元が割り当てたバッファーへのポインター。このメソッドは状態データをバッファーにコピーします。バッファーは、状態パラメーターに対応するデータ構造を格納できるだけの大きさが必要です。詳細については、DXVAHD_STREAM_STATE を参照してください。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT VideoProcessBltHD(IDirect3DSurface9* pOutputSurface, DWORD OutputFrame, DWORD StreamCount, DXVAHD_STREAM_DATA* pStreams)

1 つ以上の入力サンプルに対してビデオ処理ブリットを実行し、その結果を Microsoft Direct3D サーフェスに書き込みます。

pOutputSurfaceIDirect3DSurface9*in

Direct3D サーフェスの IDirect3DSurface9 インターフェイスへのポインター。ビデオ処理操作の出力はこのサーフェスに書き込まれます。次のサーフェス型を使用できます。

OutputFrameDWORDin出力ビデオフレームのフレーム番号。ゼロ始まりのインデックスです。
StreamCountDWORDin処理する入力ストリームの数。
pStreamsDXVAHD_STREAM_DATA*in入力ストリームに関する情報を格納する DXVAHD_STREAM_DATA 構造体の配列へのポインター。呼び出し元が配列を割り当て、各構造体を設定します。配列の要素数は StreamCount パラメーターで指定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

StreamCount の最大値は、DXVAHD_VPDEVCAPS 構造体の MaxStreamStates メンバーで指定されます。同時に有効化できるストリームの最大数は、同構造体の MaxInputStreams メンバーで指定されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。