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

ID3D12VideoEncodeCommandList

COM
IID8455293a-0cbd-4831-9b39-fbdbab724723継承元ID3D12CommandList自前メソッド開始 vtbl9

公式ドキュメント

モーション推定を含む、ビデオエンコード用のグラフィックスコマンドのリストをカプセル化します。

メソッド 16

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

vtbl 9 HRESULT Close()

コマンドリストへの記録が終了したことを示します。(ID3D12VideoEncodeCommandList::Close)

戻り値

Type: HRESULT

成功した場合は S_OK を返します。それ以外の場合は、次のいずれかの値を返します。

その他の返される可能性のある値については、Direct3D 12 リターンコードを参照してください。

解説(Remarks)

ランタイムは、コマンドリストが以前にクローズされていないことを検証します。記録中にエラーが発生した場合は、そのエラーコードがここで返されます。この場合、ランタイムはクローズのデバイスドライバーインターフェイス (DDI) を呼び出しません。

コマンドリストを作成する例については、ID3D12GraphicsCommandList::Close メソッドを参照してください。

vtbl 10 HRESULT Reset(ID3D12CommandAllocator* pAllocator)

新しいコマンドリストが作成された直後であるかのように、コマンドリストを初期状態にリセットします。(ID3D12VideoEncodeCommandList::Reset)

pAllocatorID3D12CommandAllocator*inデバイスがコマンドリストの作成元とする ID3D12CommandAllocator オブジェクトへのポインターです。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。それ以外の場合は、次のいずれかの値を返します。

その他の返される可能性のある値については、Direct3D 12 リターンコードを参照してください。

解説(Remarks)

このメソッドの使用に関する追加情報と例については、ID3D12GraphicsCommandList::Reset メソッドを参照してください。

vtbl 11 void ClearState()

ダイレクトコマンドリストの状態を、コマンドリストが作成されたときの状態にリセットします。(ID3D12VideoEncodeCommandList::ClearState)

vtbl 12 void ResourceBarrier(DWORD NumBarriers, D3D12_RESOURCE_BARRIER* pBarriers)

リソースへの複数のアクセスを同期する必要があることをドライバーに通知します。(ID3D12VideoEncodeCommandList::ResourceBarrier)

NumBarriersDWORDin送信するバリア記述の数です。
pBarriersD3D12_RESOURCE_BARRIER*inバリア記述の配列へのポインターです。

解説(Remarks)

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

vtbl 13 void DiscardResource(ID3D12Resource* pResource, D3D12_DISCARD_REGION* pRegion)

リソースの現在の内容を破棄できることを示します。(ID3D12VideoEncodeCommandList::DiscardResource)

pResourceID3D12Resource*in破棄するリソースの ID3D12Resource インターフェイスへのポインターです。
pRegionD3D12_DISCARD_REGION*inoptionalリソース破棄操作の詳細を記述する D3D12_DISCARD_REGION 構造体へのポインターです。
vtbl 14 void BeginQuery(ID3D12QueryHeap* pQueryHeap, D3D12_QUERY_TYPE Type, DWORD Index)

クエリの実行を開始します。(ID3D12VideoEncodeCommandList::BeginQuery)

pQueryHeapID3D12QueryHeap*inこのクエリのストレージを指定する ID3D12QueryHeap へのポインターです。
TypeD3D12_QUERY_TYPEinクエリの種類を指定する D3D12_QUERY_TYPE 列挙体のメンバーです。
IndexDWORDinクエリヒープ内のクエリのインデックスです。

解説(Remarks)

一部のクエリは BeginQuery を使用せず、EndQuery のみを持ちます。適切な使用方法については、D3D12_QUERY_TYPE の各クエリの種類を参照してください。

vtbl 15 void EndQuery(ID3D12QueryHeap* pQueryHeap, D3D12_QUERY_TYPE Type, DWORD Index)

クエリを終了します。(ID3D12VideoEncodeCommandList::EndQuery)

pQueryHeapID3D12QueryHeap*inこのクエリのストレージを指定する ID3D12QueryHeap へのポインターです。
TypeD3D12_QUERY_TYPEinクエリの種類を指定する D3D12_QUERY_TYPE 列挙体のメンバーです。
IndexDWORDinクエリヒープ内のクエリのインデックスです。
vtbl 16 void ResolveQueryData(ID3D12QueryHeap* pQueryHeap, D3D12_QUERY_TYPE Type, DWORD StartIndex, DWORD NumQueries, ID3D12Resource* pDestinationBuffer, ULONGLONG AlignedDestinationBufferOffset)

クエリからデータを抽出します。(ID3D12VideoEncodeCommandList::ResolveQueryData)

pQueryHeapID3D12QueryHeap*in解決するクエリを格納しているストレージを指定する ID3D12QueryHeap へのポインターです。
TypeD3D12_QUERY_TYPEinクエリの種類を指定する D3D12_QUERY_TYPE 列挙体のメンバーです。
StartIndexDWORDin解決する最初のクエリのインデックスです。
NumQueriesDWORDin解決するクエリの数です。
pDestinationBufferID3D12Resource*inデスティネーションバッファーを表す ID3D12Resource へのポインターです。このリソースは D3D12_RESOURCE_STATE_COPY_DEST 状態でなければなりません。
AlignedDestinationBufferOffsetULONGLONGinデスティネーションバッファーへのアライメントオフセットです。これは 8 バイトの倍数でなければなりません。
vtbl 17 void SetPredication(ID3D12Resource* pBuffer, ULONGLONG AlignedBufferOffset, D3D12_PREDICATION_OP Operation)

述語値が指定された演算をパスした場合に、後続のコマンドを実行しないよう指定します。(ID3D12VideoEncodeCommandList::SetPredication)

pBufferID3D12Resource*inoptional64 ビットの述語値を読み取るバッファーを表す ID3D12Resource へのポインターです。
AlignedBufferOffsetULONGLONGinUINT64 にアライメントされたバッファーオフセットです。
OperationD3D12_PREDICATION_OPin述語演算を指定する D3D12_PREDICATION_OP 列挙体のメンバーです。
vtbl 18 void SetMarker(DWORD Metadata, void* pData, DWORD Size)

内部使用のみ。直接呼び出すことを意図したものではありません。(ID3D12VideoEncodeCommandList::SetMarker)

MetadataDWORDin内部用。
pDatavoid*inoptional内部用。
SizeDWORDin内部用。
vtbl 19 void BeginEvent(DWORD Metadata, void* pData, DWORD Size)

内部使用のみ。直接呼び出すことを意図したものではありません。(ID3D12VideoEncodeCommandList::BeginEvent)

MetadataDWORDin内部用。
pDatavoid*inoptional内部用。
SizeDWORDin内部用。
vtbl 20 void EndEvent()

内部使用のみ。直接呼び出すことを意図したものではありません。(ID3D12VideoEncodeCommandList::EndEvent)

vtbl 21 void EstimateMotion(ID3D12VideoMotionEstimator* pMotionEstimator, D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT* pOutputArguments, D3D12_VIDEO_MOTION_ESTIMATOR_INPUT* pInputArguments)

モーション推定操作を実行します。

pMotionEstimatorID3D12VideoMotionEstimator*inビデオモーション推定コンテキストオブジェクトを表す ID3D12VideoMotionEstimator です。
pOutputArgumentsD3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT*inビデオモーション推定の出力引数を表す D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT 構造体です。
pInputArgumentsD3D12_VIDEO_MOTION_ESTIMATOR_INPUT*inビデオモーション推定の入力引数を表す D3D12_VIDEO_MOTION_ESTIMATOR_INPUT 構造体です。
vtbl 22 void ResolveMotionVectorHeap(D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT* pOutputArguments, D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT* pInputArguments)

EstimateMotion メソッドのモーションベクトル出力を、ハードウェア依存の形式から、ビデオモーション推定 API で定義された一貫した形式へ変換します。

pOutputArgumentsD3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT*in変換されたモーションベクトルを格納する D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT 構造体です。
pInputArgumentsD3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT*in変換対象のモーションベクトルを格納する D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT 構造体です。
vtbl 23 void WriteBufferImmediate(DWORD Count, D3D12_WRITEBUFFERIMMEDIATE_PARAMETER* pParams, D3D12_WRITEBUFFERIMMEDIATE_MODE* pModes)

複数の 32 ビットの即値を、コマンドストリームから直接、指定されたバッファーの場所へ書き込みます。(ID3D12VideoEncodeCommandList::WriteBufferImmediate)

CountDWORDinpParams および pModes 配列内の要素の数です。
pParamsD3D12_WRITEBUFFERIMMEDIATE_PARAMETER*inサイズが CountD3D12_WRITEBUFFERIMMEDIATE_PARAMETER 構造体の配列のアドレスです。
pModesD3D12_WRITEBUFFERIMMEDIATE_MODE*inoptionalサイズが CountD3D12_WRITEBUFFERIMMEDIATE_MODE 構造体の配列のアドレスです。既定値は null です。null を渡すと、システムはすべての即値を D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT を使用して書き込みます。

解説(Remarks)

この機能の対応状況は D3D12_FEATURE_DATA_D3D12_OPTIONS3::WriteBufferImmediateSupportFlags で指定されます。

vtbl 24 void SetProtectedResourceSession(ID3D12ProtectedResourceSession* pProtectedResourceSession)

ビデオエンコードコマンドリスト内の後続のコマンドによって保護されたリソースにアクセスできるかどうかを指定します。

pProtectedResourceSessionID3D12ProtectedResourceSession*inoptionalID3D12ProtectedResourceSession への省略可能なポインターです。ID3D12ProtectedResourceSessionID3D12Device4::CreateProtectedResourceSession を呼び出すことで取得できます。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ID3D12VideoEncodeCommandList "{8455293A-0CBD-4831-9B39-FBDBAB724723}"
#usecom global ID3D12VideoEncodeCommandList IID_ID3D12VideoEncodeCommandList "{}"
#comfunc global ID3D12VideoEncodeCommandList_Close                        9
#comfunc global ID3D12VideoEncodeCommandList_Reset                        10 sptr
#comfunc global ID3D12VideoEncodeCommandList_ClearState                   11
#comfunc global ID3D12VideoEncodeCommandList_ResourceBarrier              12 int,var
#comfunc global ID3D12VideoEncodeCommandList_DiscardResource              13 sptr,var
#comfunc global ID3D12VideoEncodeCommandList_BeginQuery                   14 sptr,int,int
#comfunc global ID3D12VideoEncodeCommandList_EndQuery                     15 sptr,int,int
#comfunc global ID3D12VideoEncodeCommandList_ResolveQueryData             16 sptr,int,int,int,sptr,int64
#comfunc global ID3D12VideoEncodeCommandList_SetPredication               17 sptr,int64,int
#comfunc global ID3D12VideoEncodeCommandList_SetMarker                    18 int,sptr,int
#comfunc global ID3D12VideoEncodeCommandList_BeginEvent                   19 int,sptr,int
#comfunc global ID3D12VideoEncodeCommandList_EndEvent                     20
#comfunc global ID3D12VideoEncodeCommandList_EstimateMotion               21 sptr,var,var
#comfunc global ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap      22 var,var
#comfunc global ID3D12VideoEncodeCommandList_WriteBufferImmediate         23 int,var,var
#comfunc global ID3D12VideoEncodeCommandList_SetProtectedResourceSession  24 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。