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

ID3D12VideoDevice

COM
IID1f052807-0b46-4acc-8a89-364f793718a4継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ビデオ機能のクエリ、およびビデオデコーダーとプロセッサーのインスタンス化を含む、Microsoft Direct3D 12 デバイスのビデオデコードおよび処理機能を提供します。

メソッド 4

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

vtbl 3 HRESULT CheckFeatureSupport(D3D12_FEATURE_VIDEO FeatureVideo, void* pFeatureSupportData, DWORD FeatureSupportDataSize)

現在のビデオドライバーがサポートしている機能に関する情報を取得します。(ID3D12VideoDevice::CheckFeatureSupport)

FeatureVideoD3D12_FEATURE_VIDEOinサポートをクエリする機能を指定する D3D12_FEATURE_VIDEO 列挙体のメンバー。
pFeatureSupportDatavoid*inoutサポートを要求する機能の構成の詳細を記述するデータを格納する構造体であり、呼び出しの完了時に利用可能なサポートレベルの詳細が設定されます。各種類の機能サポート要求に関連付けられた構造体については、D3D12_FEATURE_VIDEO のフィールドの説明を参照してください。
FeatureSupportDataSizeDWORDinpFeatureSupportData パラメーターに渡す構造体のサイズ。

戻り値

成功した場合は S_OK を返します。それ以外の場合、pFeatureSupportData パラメーターにサポートされていないデータ型が渡されたとき、または FeatureSupportDataSize パラメーターでサイズの不一致が検出されたときは E_INVALIDARG を返します。

vtbl 4 HRESULT CreateVideoDecoder(D3D12_VIDEO_DECODER_DESC* pDesc, GUID* riid, void** ppVideoDecoder)

ビデオデコーダーのインスタンスを作成します。

pDescD3D12_VIDEO_DECODER_DESC*inデコーダーのデコードプロファイルとビットストリーム暗号化を記述する D3D12_VIDEO_DECODER_DESC 構造体へのポインター。
riidGUID*inデコードビデオ状態インターフェイスのグローバル一意識別子 (GUID)。
ppVideoDecodervoid**outID3D12VideoDecoder インターフェイスへのポインターを受け取るメモリブロックへのポインター。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

新しいストリームをデコードするには、新しいデコーダーオブジェクトをインスタンス化する必要があります。

vtbl 5 HRESULT CreateVideoDecoderHeap(D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, GUID* riid, void** ppVideoDecoderHeap)

ビデオデコーダーヒープを割り当てます。

pVideoDecoderHeapDescD3D12_VIDEO_DECODER_HEAP_DESC*inデコード構成を記述する D3D12_VIDEO_DECODER_HEAP_DESC へのポインター。
riidGUID*inデコードビデオ状態インターフェイスのグローバル一意識別子 (GUID)。
ppVideoDecoderHeapvoid**outID3D12VideoDecoderHeap インターフェイスへのポインターを受け取るメモリブロックへのポインター。

戻り値

このメソッドは HRESULT を返します。

vtbl 6 HRESULT CreateVideoProcessor(DWORD NodeMask, D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, DWORD NumInputStreamDescs, D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC* pInputStreamDescs, GUID* riid, void** ppVideoProcessor)

ビデオプロセッサーのインスタンスを作成します。

NodeMaskDWORDinビデオプロセッサーが使用される物理アダプターを指定するノードマスク。単一 GPU での動作の場合は、これをゼロに設定します。複数の GPU ノードがある場合は、コマンドキューが適用されるノード、すなわちデバイスの物理アダプターを識別するビットを設定します。マスク内の各ビットが 1 つのノードに対応します。設定できるビットは 1 つだけです。
pOutputStreamDescD3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC*in出力ストリームを記述する D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC(ns-d3d12video-d3d12_video_process_output_stream_desc) 構造体へのポインター。
NumInputStreamDescsDWORDinpInputStreamDescs パラメーターで指定される入力ストリームの数。
pInputStreamDescsD3D12_VIDEO_PROCESS_INPUT_STREAM_DESC*in入力ストリームを記述する D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC(ns-d3d12video-d3d12_video_process_input_stream_desc) 構造体のリストへのポインター。指定する構造体の数は、NumInputStreamDescs パラメーターで指定した値と一致している必要があります。
riidGUID*inビデオプロセッサーインターフェイスのグローバル一意識別子 (GUID)。
ppVideoProcessorvoid**outID3D12VideoProcessor インターフェイスへのポインターを受け取るメモリブロックへのポインター。

戻り値

このメソッドは HRESULT を返します。

解説(Remarks)

作成時に設定したパラメーターを変更するには、ビデオプロセッサーオブジェクトを再作成する必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ID3D12VideoDevice "{1F052807-0B46-4ACC-8A89-364F793718A4}"
#usecom global ID3D12VideoDevice IID_ID3D12VideoDevice "{}"
#comfunc global ID3D12VideoDevice_CheckFeatureSupport     3 int,sptr,int
#comfunc global ID3D12VideoDevice_CreateVideoDecoder      4 var,var,sptr
#comfunc global ID3D12VideoDevice_CreateVideoDecoderHeap  5 var,var,sptr
#comfunc global ID3D12VideoDevice_CreateVideoProcessor    6 int,var,int,var,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。