Win32 API 日本語リファレンス
ホームGraphics.Direct3D11 › ID3D11VideoContext3

ID3D11VideoContext3

COM
IIDa9e2faa0-cb39-418f-a0b7-d8aad4de672e継承元ID3D11VideoContext2自前メソッド開始 vtbl83

公式ドキュメント

Microsoft Direct3D 11 デバイスのビデオ機能を提供します。(ID3D11VideoContext3)

メソッド 2

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

vtbl 83 HRESULT DecoderBeginFrame1(ID3D11VideoDecoder* pDecoder, ID3D11VideoDecoderOutputView* pView, DWORD ContentKeySize, void* pContentKey, DWORD NumComponentHistograms, DWORD* pHistogramOffsets, ID3D11Buffer** ppHistogramBuffers)

ビデオフレームをデコードするデコード操作を開始します。(ID3D11VideoContext3::DecoderBeginFrame1)

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインターです。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。
pViewID3D11VideoDecoderOutputView*inID3D11VideoDecoderOutputView インターフェイスへのポインターです。このインターフェイスは、デコードされたフレームを受け取るリソースを表します。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoderOutputView を呼び出します。
ContentKeySizeDWORDinpContentKey で指定されるコンテンツキーのサイズです。pContentKey が NULL の場合は、ContentKeySize を 0 に設定します。
pContentKeyvoid*inoptionalフレームデータの暗号化に使用されたコンテンツキーへの省略可能なポインターです。コンテンツキーが使用されていない場合は、このパラメーターを NULL に設定します。呼び出し元がコンテンツキーを指定する場合、呼び出し元はセッションキーを使用してコンテンツキーを暗号化する必要があります。
NumComponentHistogramsDWORDinヒストグラムを記録する対象のコンポーネント数です。サポートの有無を確認するには D3D11_FEATURE_VIDEO_DECODE_HISTOGRAM を使用します。ヒストグラムを記録しない場合、またはこの機能がサポートされていない場合は 0 を指定します。フォーマットに含まれるコンポーネント数より少ない数を指定した場合、指定されなかったコンポーネントではヒストグラム記録が有効になっていないことを意味します。コンポーネントの最大数は D3D11_4_VIDEO_DECODER_MAX_HISTOGRAM_COMPONENTS として定義されています。
pHistogramOffsetsDWORD*inoptionalppHistogramBuffers と並行する配列内の、バッファーの開始オフセット位置の配列です。この配列のインデックスには D3D11_VIDEO_DECODE_HISTOGRAM_COMPONENT を使用します。コンポーネントを要求しない場合は、オフセットとして 0 を指定します。オフセットは 256 バイト境界に整列している必要があります。
ppHistogramBuffersID3D11Buffer**inoptionalハードウェアがコンポーネントのヒストグラムを書き込む対象のバッファーの配列です。この配列のインデックスには D3D11_VIDEO_DECODE_HISTOGRAM_COMPONENT を使用します。コンポーネントのヒストグラムが無効な場合、またはサポートされていない場合は、このパラメーターに nullptr を設定します。

戻り値

成功した場合は S_OK を返します。

解説(Remarks)

ビデオデコードのヒストグラム用にリソースを割り当てる際には、次の D3D11_RESOURCE_MISC フラグを使用できます。

その他の D3D11_RESOURCE_MISC フラグは使用できません。

vtbl 84 HRESULT SubmitDecoderBuffers2(ID3D11VideoDecoder* pDecoder, DWORD NumBuffers, D3D11_VIDEO_DECODER_BUFFER_DESC2* pBufferDesc)

prerelease: false

pDecoderID3D11VideoDecoder*inバッファを送信する対象のビデオデコーダを指す。NULL不可。
NumBuffersDWORDin送信するデコーダバッファの数を指定する。
pBufferDescD3D11_VIDEO_DECODER_BUFFER_DESC2*in送信する各バッファの記述子配列(拡張版DESC2)を指す。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ID3D11VideoContext3 "{A9E2FAA0-CB39-418F-A0B7-D8AAD4DE672E}"
#usecom global ID3D11VideoContext3 IID_ID3D11VideoContext3 "{}"
#comfunc global ID3D11VideoContext3_DecoderBeginFrame1     83 sptr,sptr,int,sptr,int,var,sptr
#comfunc global ID3D11VideoContext3_SubmitDecoderBuffers2  84 sptr,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。