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*inoptional並列配列である ppHistogramBuffers 内の開始バッファー オフセット位置の配列。配列のインデックスには 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 指定が可能。