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

ID3D11VideoContext1

COM
IIDa7f026da-a5f8-4487-a564-15e34357651e継承元ID3D11VideoContext自前メソッド開始 vtbl65

公式ドキュメント

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

解説(Remarks)

このインターフェイスへのポインターを取得するには、ID3D11DeviceContext1 インターフェイスポインターに対して QueryInterface を呼び出します。

メソッド 14

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

vtbl 65 HRESULT SubmitDecoderBuffers1(ID3D11VideoDecoder* pDecoder, DWORD NumBuffers, D3D11_VIDEO_DECODER_BUFFER_DESC1* pBufferDesc)

デコード用に 1 つ以上のバッファーを送信します。(ID3D11VideoContext1.SubmitDecoderBuffers1)

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder メソッドを呼び出します。
NumBuffersDWORDinデコード用に送信するバッファーの数。
pBufferDescD3D11_VIDEO_DECODER_BUFFER_DESC1*inD3D11_VIDEO_DECODER_BUFFER_DESC1 構造体の配列へのポインター。配列の要素数は NumBuffers パラメーターで指定します。配列の各要素は、デコード対象の圧縮バッファーを記述します。

戻り値

型: HRESULT

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

解説(Remarks)

この関数は、設定されている可能性のある D3D11 の述語 (predicate) を考慮しません。

D3D11_QUERY_DATA_PIPELINE_STATISTICS は、どの機能レベルにおいてもこの関数を集計に含めません。

vtbl 66 HRESULT GetDataForNewHardwareKey(ID3D11CryptoSession* pCryptoSession, DWORD PrivateInputSize, void* pPrivatInputData, ULONGLONG* pPrivateOutputData)

新しいハードウェアキーの初期化時に使用される IHV 固有の情報を、ドライバーが返せるようにします。

pCryptoSessionID3D11CryptoSession*inID3D11CryptoSession インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice1::CreateCryptoSession を呼び出します。
PrivateInputSizeDWORDinpPrivateInputData パラメーターが参照するメモリのサイズ。
pPrivatInputDatavoid*inプライベート入力データ。このパラメーターの内容は、セキュア実行環境の実装によって定義されます。ライセンスに関するデータや、ストリームのプロパティに関するデータが含まれる場合があります。
pPrivateOutputDataULONGLONG*outプライベート出力データへのポインター。返されるデータはセキュア実行環境の実装によって定義されます。基になるハードウェアキーに関連付けられるグラフィックス固有のデータが含まれる場合があります。

戻り値

型: HRESULT

このメソッドは次のいずれかのエラーコードを返します。

S_OK 操作が正常に完了しました。
E_OUTOFMEMORY 操作を完了するためのメモリが不足しています。
vtbl 67 HRESULT CheckCryptoSessionStatus(ID3D11CryptoSession* pCryptoSession, D3D11_CRYPTO_SESSION_STATUS* pStatus)

暗号セッションの状態を確認します。

pCryptoSessionID3D11CryptoSession*in状態を確認する対象の ID3D11CryptoSession を指定します。
pStatusD3D11_CRYPTO_SESSION_STATUS*out完了時に暗号セッションの状態が設定される D3D11_CRYPTO_SESSION_STATUS。

戻り値

型: HRESULT

このメソッドは次のいずれかのエラーコードを返します。

S_OK 操作が正常に完了しました。
E_INVALIDARG 無効なパラメーターが渡されたか、無効な呼び出しパターンでこの関数が呼び出されました。
E_OUTOFMEMORY 操作を完了するためのメモリが不足しています。
vtbl 68 HRESULT DecoderEnableDownsampling(ID3D11VideoDecoder* pDecoder, DXGI_COLOR_SPACE_TYPE InputColorSpace, D3D11_VIDEO_SAMPLE_DESC* pOutputDesc, DWORD ReferenceFrameCount)

デコーダーのダウンサンプリングを使用することを示し、ドライバーが適切な参照フレームを割り当てるようにします。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。
InputColorSpaceDXGI_COLOR_SPACE_TYPEin参照フレームデータの色空間情報。
pOutputDescD3D11_VIDEO_SAMPLE_DESC*in出力/表示フレームの解像度、フォーマット、および色空間。これはダウンサンプル操作の出力先の解像度およびフォーマットです。
ReferenceFrameCountDWORDin操作で使用される参照フレームの数。

戻り値

型: HRESULT

このメソッドは次のいずれかのエラーコードを返します。

S_OK 操作が正常に完了しました。
E_INVALIDARG 無効なパラメーターが渡されたか、無効な呼び出しパターンでこの関数が呼び出されました。
E_OUTOFMEMORY 操作を完了するためのメモリが不足しています。

解説(Remarks)

この関数は、特定の ID3D11VideoDecoder インターフェイスに対して 1 回だけ呼び出せます。このメソッドは、最初に DecoderBeginFrame を呼び出す前に呼び出す必要があります。ダウンサンプリングのパラメーターを更新するには、DecoderUpdateDownsampling を使用します。

vtbl 69 HRESULT DecoderUpdateDownsampling(ID3D11VideoDecoder* pDecoder, D3D11_VIDEO_SAMPLE_DESC* pOutputDesc)

デコーダーのダウンサンプリングパラメーターを更新します。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。
pOutputDescD3D11_VIDEO_SAMPLE_DESC*in出力/表示フレームの解像度、フォーマット、および色空間。これはダウンサンプル操作の出力先の解像度およびフォーマットです。

戻り値

型: HRESULT

このメソッドは次のいずれかのエラーコードを返します。

S_OK 操作が正常に完了しました。
E_INVALIDARG 無効なパラメーターが渡されたか、無効な呼び出しパターンでこの関数が呼び出されました。
E_OUTOFMEMORY 操作を完了するためのメモリが不足しています。

解説(Remarks)

このメソッドは、DecoderEnableDownsampling を呼び出してデコードのダウンサンプリングを有効にした後にのみ呼び出せます。このメソッドは、D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC の機能が報告されている場合にのみサポートされます。

vtbl 70 void VideoProcessorSetOutputColorSpace1(ID3D11VideoProcessor* pVideoProcessor, DXGI_COLOR_SPACE_TYPE ColorSpace)

ビデオプロセッサーの出力サーフェスの色空間情報を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
ColorSpaceDXGI_COLOR_SPACE_TYPEinビデオプロセッサーの出力サーフェスの色空間を指定する DXGI_COLOR_SPACE_TYPE 値。
vtbl 71 void VideoProcessorSetOutputShaderUsage(ID3D11VideoProcessor* pVideoProcessor, BOOL ShaderUsage)

ID3D11VideoContext::VideoProcessorBlt の呼び出しによる出力サーフェスが Direct3D シェーダーによって読み取られるかどうかを示す値を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
ShaderUsageBOOLinID3D11VideoContext::VideoProcessorBlt を使用してレンダリングされたサーフェスが Direct3D シェーダーによって読み取られる場合は true、それ以外の場合は false。マルチプレーンオーバーレイハードウェアがサポートされている場合、false に設定できます。
vtbl 72 void VideoProcessorGetOutputColorSpace1(ID3D11VideoProcessor* pVideoProcessor, DXGI_COLOR_SPACE_TYPE* pColorSpace)

ビデオプロセッサーの出力サーフェスの色空間情報を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
pColorSpaceDXGI_COLOR_SPACE_TYPE*outビデオプロセッサーの出力サーフェスの色空間を示す DXGI_COLOR_SPACE_TYPE 値へのポインター。
vtbl 73 void VideoProcessorGetOutputShaderUsage(ID3D11VideoProcessor* pVideoProcessor, BOOL* pShaderUsage)

ID3D11VideoContext::VideoProcessorBlt の呼び出しによる出力サーフェスを Direct3D シェーダーが読み取れるかどうかを示す値を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
pShaderUsageBOOL*out出力サーフェスを Direct3D シェーダーが読み取れるかどうかを示すブール値へのポインター。ID3D11VideoContext::VideoProcessorBlt を使用してレンダリングされたサーフェスを Direct3D シェーダーが読み取れる場合は true、それ以外の場合は false になります。
vtbl 74 void VideoProcessorSetStreamColorSpace1(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, DXGI_COLOR_SPACE_TYPE ColorSpace)

ビデオプロセッサーの入力ストリームの色空間情報を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
StreamIndexDWORDin入力ストリームを識別するインデックス。
ColorSpaceDXGI_COLOR_SPACE_TYPEinビデオプロセッサーの入力ストリームの色空間を指定する DXGI_COLOR_SPACE_TYPE 値。
vtbl 75 void VideoProcessorSetStreamMirror(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, BOOL FlipHorizontal, BOOL FlipVertical)

ビデオプロセッサーの入力ストリームを垂直方向または水平方向に反転するかどうかを指定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
StreamIndexDWORDin入力ストリームを識別するインデックス。
EnableBOOLinミラーリングを有効にする場合は true、それ以外の場合は false。
FlipHorizontalBOOLinストリームを水平方向に反転する場合は true、それ以外の場合は false。
FlipVerticalBOOLinストリームを垂直方向に反転する場合は true、それ以外の場合は false。

解説(Remarks)

これらを組み合わせて使用する場合、プロセッサーの入力ストリームに対する変換は次の順序で適用されます。

vtbl 76 void VideoProcessorGetStreamColorSpace1(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, DXGI_COLOR_SPACE_TYPE* pColorSpace)

ビデオプロセッサーの入力ストリームの色空間情報を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
StreamIndexDWORDin入力ストリームを識別するインデックス。
pColorSpaceDXGI_COLOR_SPACE_TYPE*outビデオプロセッサーの入力ストリームの色空間を示す DXGI_COLOR_SPACE_TYPE 値へのポインター。
vtbl 77 void VideoProcessorGetStreamMirror(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnable, BOOL* pFlipHorizontal, BOOL* pFlipVertical)

ビデオプロセッサーの入力ストリームが垂直方向または水平方向に反転されているかどうかを示す値を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
StreamIndexDWORDin入力ストリームを識別するインデックス。
pEnableBOOL*outミラーリングが有効かどうかを示すブール値へのポインター。ミラーリングが有効な場合は true、それ以外の場合は false になります。
pFlipHorizontalBOOL*outストリームが水平方向に反転されているかどうかを示すブール値へのポインター。水平方向に反転されている場合は true、それ以外の場合は false になります。
pFlipVerticalBOOL*outストリームが垂直方向に反転されているかどうかを示すブール値へのポインター。垂直方向に反転されている場合は true、それ以外の場合は false になります。
vtbl 78 HRESULT VideoProcessorGetBehaviorHints(ID3D11VideoProcessor* pVideoProcessor, DWORD OutputWidth, DWORD OutputHeight, DXGI_FORMAT OutputFormat, DWORD StreamCount, D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT* pStreams, DWORD* pBehaviorHints)

ビデオプロセッサーの各操作のうち、ID3D11VideoContext::VideoProcessorBlt メソッドよりもマルチプレーンオーバーレイハードウェアを使用した方が適しているものを示す、ドライバーからのヒントを返します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。
OutputWidthDWORDin出力ストリームの幅。
OutputHeightDWORDin出力ストリームの高さ。
OutputFormatDXGI_FORMATin出力ストリームのフォーマット。
StreamCountDWORDin処理する入力ストリームの数。
pStreamsD3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT*in各入力ストリームのフォーマットと、動作ヒントの計算時に各ストリームを使用するかどうかを指定する構造体の配列。
pBehaviorHintsDWORD*outD3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS 値のビットごとの OR の組み合わせへのポインター。ID3D11VideoContext::VideoProcessorBlt メソッドよりもマルチプレーンオーバーレイハードウェアを使用した方が適しているビデオプロセッサーの操作を示します。

戻り値

型: HRESULT

このメソッドは次のいずれかのエラーコードを返します。

S_OK 操作が正常に完了しました。
E_INVALIDARG 無効なパラメーターが渡されたか、無効な呼び出しパターンでこの関数が呼び出されました。
E_OUTOFMEMORY 操作を完了するためのメモリが不足しています。

解説(Remarks)

このメソッドは、ID3D11VideoContext および ID3D11VideoContext1 の "SetOutput" 系および "SetStream" 系メソッドによって設定された、ビデオプロセッサーの現在の状態を使用して動作ヒントを計算します。返されるヒントが有用なデータを含むようにするには、このメソッドを呼び出す前に適切な状態を設定しておく必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ID3D11VideoContext1 "{A7F026DA-A5F8-4487-A564-15E34357651E}"
#usecom global ID3D11VideoContext1 IID_ID3D11VideoContext1 "{}"
#comfunc global ID3D11VideoContext1_SubmitDecoderBuffers1               65 sptr,int,var
#comfunc global ID3D11VideoContext1_GetDataForNewHardwareKey            66 sptr,int,sptr,var
#comfunc global ID3D11VideoContext1_CheckCryptoSessionStatus            67 sptr,var
#comfunc global ID3D11VideoContext1_DecoderEnableDownsampling           68 sptr,int,var,int
#comfunc global ID3D11VideoContext1_DecoderUpdateDownsampling           69 sptr,var
#comfunc global ID3D11VideoContext1_VideoProcessorSetOutputColorSpace1  70 sptr,int
#comfunc global ID3D11VideoContext1_VideoProcessorSetOutputShaderUsage  71 sptr,int
#comfunc global ID3D11VideoContext1_VideoProcessorGetOutputColorSpace1  72 sptr,var
#comfunc global ID3D11VideoContext1_VideoProcessorGetOutputShaderUsage  73 sptr,var
#comfunc global ID3D11VideoContext1_VideoProcessorSetStreamColorSpace1  74 sptr,int,int
#comfunc global ID3D11VideoContext1_VideoProcessorSetStreamMirror       75 sptr,int,int,int,int
#comfunc global ID3D11VideoContext1_VideoProcessorGetStreamColorSpace1  76 sptr,int,var
#comfunc global ID3D11VideoContext1_VideoProcessorGetStreamMirror       77 sptr,int,var,var,var
#comfunc global ID3D11VideoContext1_VideoProcessorGetBehaviorHints      78 sptr,int,int,int,int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。