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

ID3D11VideoContext

COM
IID61f21c45-3c0e-4a74-9cea-67100d9ad5e4継承元ID3D11DeviceChild自前メソッド開始 vtbl7

公式ドキュメント

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

解説(Remarks)

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

このインターフェイスは、Microsoft Direct3D のビデオ機能のうち、次の分野へのアクセスを提供します。

Microsoft Direct3D 9 では、これらに相当する機能は次の複数のインターフェイスに分かれていました。

メソッド 58

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

vtbl 7 HRESULT GetDecoderBuffer(ID3D11VideoDecoder* pDecoder, D3D11_VIDEO_DECODER_BUFFER_TYPE Type, DWORD* pBufferSize, void** ppBuffer)

デコーダーバッファーへのポインターを取得します。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。
TypeD3D11_VIDEO_DECODER_BUFFER_TYPEin取得するバッファーの種類。D3D11_VIDEO_DECODER_BUFFER_TYPE 列挙型のメンバーとして指定します。
pBufferSizeDWORD*outバッファーのサイズ (バイト単位) を受け取ります。
ppBuffervoid**outメモリバッファーの先頭へのポインターを受け取ります。

戻り値

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

解説(Remarks)

デコードに使用されるバッファーはグラフィックスドライバーが割り当てます。このメソッドは、バッファーを含む Microsoft Direct3D サーフェスをロックします。バッファーの使用が終わったら、ID3D11VideoContext::ReleaseDecoderBuffer を呼び出してサーフェスのロックを解除してください。

vtbl 8 HRESULT ReleaseDecoderBuffer(ID3D11VideoDecoder* pDecoder, D3D11_VIDEO_DECODER_BUFFER_TYPE Type)

ID3D11VideoContext::GetDecoderBuffer メソッドで取得したバッファーを解放します。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。
TypeD3D11_VIDEO_DECODER_BUFFER_TYPEin解放するバッファーの種類。GetDecoderBuffer メソッドの Type パラメーターに指定したものと同じ値を指定します。

戻り値

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

vtbl 9 HRESULT DecoderBeginFrame(ID3D11VideoDecoder* pDecoder, ID3D11VideoDecoderOutputView* pView, DWORD ContentKeySize, void* pContentKey)

ビデオフレームをデコードするデコード操作を開始します。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。
pViewID3D11VideoDecoderOutputView*inID3D11VideoDecoderOutputView インターフェイスへのポインター。このインターフェイスは、デコードされたフレームを受け取るリソースを表します。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoderOutputView を呼び出します。
ContentKeySizeDWORDinpContentKey に指定するコンテンツキーのサイズ。pContentKey が NULL の場合は、ContentKeySize を 0 に設定します。
pContentKeyvoid*inoptionalフレームデータの暗号化に使用したコンテンツキーへの省略可能なポインター。コンテンツキーを使用していない場合は、このパラメーターを NULL に設定します。呼び出し元がコンテンツキーを指定する場合、呼び出し元はセッションキーを使用してコンテンツキーを暗号化する必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。 ハードウェアがビジー状態の場合は D3DERR_WASSTILLDRAWING または E_PENDING が返されます。この場合、デコーダーは呼び出しを再試行してください。

解説(Remarks)

このメソッドを呼び出した後、ID3D11VideoContext::SubmitDecoderBuffers を呼び出してデコード操作を実行します。すべてのデコード操作が実行されたら、ID3D11VideoContext::DecoderEndFrame を呼び出します。

DecoderBeginFrame の各呼び出しには、対応する DecoderEndFrame の呼び出しが必要です。ほとんどの場合、DecoderBeginFrame の呼び出しを入れ子にすることはできませんが、VC-1 などの一部のコーデックでは、後処理といった特別な操作のために DecoderBeginFrame の呼び出しを入れ子にできます。

コンテンツキーを通じて、次の暗号化シナリオがサポートされます。

vtbl 10 HRESULT DecoderEndFrame(ID3D11VideoDecoder* pDecoder)

デコード操作の終了を通知します。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。

戻り値

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

vtbl 11 HRESULT SubmitDecoderBuffers(ID3D11VideoDecoder* pDecoder, DWORD NumBuffers, D3D11_VIDEO_DECODER_BUFFER_DESC* pBufferDesc)

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

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

戻り値

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

解説(Remarks)

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

アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。

機能レベル 9_x を使用する場合、部分的に暗号化されたすべてのバッファーは同じ EncryptedBlockInfo を使用する必要があり、部分暗号化をフレーム単位で無効にすることはできません。

vtbl 12 INT DecoderExtension(ID3D11VideoDecoder* pDecoder, D3D11_VIDEO_DECODER_EXTENSION* pExtensionData)

デコードのための拡張機能を実行します。

pDecoderID3D11VideoDecoder*inID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。
pExtensionDataD3D11_VIDEO_DECODER_EXTENSION*in当該機能のデータを格納する D3D11_VIDEO_DECODER_EXTENSION 構造体へのポインター。

戻り値

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

vtbl 13 void VideoProcessorSetOutputTargetRect(ID3D11VideoProcessor* pVideoProcessor, BOOL Enable, RECT* pRect)

ビデオプロセッサーのターゲット矩形を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
EnableBOOLinターゲット矩形を適用するかどうかを指定します。
pRectRECT*inoptionalターゲット矩形を指定する RECT 構造体へのポインター。EnableFALSE の場合、このパラメーターは無視されます。

解説(Remarks)

ターゲット矩形は、出力が描画される出力先サーフェス内の領域です。ターゲット矩形は、出力先サーフェスを基準としたピクセル座標で指定します。

このメソッドが一度も呼び出されない場合、または Enable パラメーターが FALSE の場合、ビデオプロセッサーは出力先サーフェス全体に書き込みます。

vtbl 14 void VideoProcessorSetOutputBackgroundColor(ID3D11VideoProcessor* pVideoProcessor, BOOL YCbCr, D3D11_VIDEO_COLOR* pColor)

ビデオプロセッサーの背景色を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
YCbCrBOOLinTRUE の場合、色は YCbCr 値として指定します。それ以外の場合、色は RGB 値として指定します。
pColorD3D11_VIDEO_COLOR*in背景色を指定する D3D11_VIDEO_COLOR 構造体へのポインター。

解説(Remarks)

ビデオプロセッサーは、ターゲット矩形内のビデオ画像が存在しない領域を背景色で塗りつぶします。ターゲット矩形の外側の領域は影響を受けません。

vtbl 15 void VideoProcessorSetOutputColorSpace(ID3D11VideoProcessor* pVideoProcessor, D3D11_VIDEO_PROCESSOR_COLOR_SPACE* pColorSpace)

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

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pColorSpaceD3D11_VIDEO_PROCESSOR_COLOR_SPACE*in色空間を指定する D3D11_VIDEO_PROCESSOR_COLOR_SPACE 構造体へのポインター。
vtbl 16 void VideoProcessorSetOutputAlphaFillMode(ID3D11VideoProcessor* pVideoProcessor, D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, DWORD StreamIndex)

ビデオプロセッサーがレンダーターゲットに書き込むデータのアルファ塗りつぶしモードを設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
AlphaFillModeD3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODEinアルファ塗りつぶしモード。D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE 値として指定します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。このパラメーターは、AlphaFillModeD3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM の場合に使用されます。それ以外の場合、このパラメーターは無視されます。

解説(Remarks)

デバイスがサポートする塗りつぶしモードを確認するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps メソッドを呼び出します。ドライバーが D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL 機能を報告する場合、ドライバーはすべての塗りつぶしモードをサポートします。それ以外の場合、AlphaFillMode パラメーターは D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE でなければなりません。

既定の塗りつぶしモードは D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE です。

vtbl 17 void VideoProcessorSetOutputConstriction(ID3D11VideoProcessor* pVideoProcessor, BOOL Enable, SIZE Size)

出力に対して実行するダウンサンプリングの量を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
EnableBOOLinTRUE の場合、ダウンサンプリングが有効になります。それ以外の場合、ダウンサンプリングは無効になり、Size メンバーは無視されます。
SizeSIZEinサンプリングサイズ。

解説(Remarks)

ダウンサンプリングは、他の形式のコンテンツ保護が利用できない場合に、プレミアムコンテンツの品質を下げる目的で使用されることがあります。既定ではダウンサンプリングは無効です。

Enable パラメーターが TRUE の場合、ドライバーは合成された画像を指定されたサイズにダウンサンプリングし、その後ターゲット矩形のサイズに拡大し直します。

Size の幅と高さは 0 より大きい必要があります。サイズがターゲット矩形より大きい場合、ダウンサンプリングは行われません。

この機能を使用するには、ドライバーがダウンサンプリングをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。

vtbl 18 void VideoProcessorSetOutputStereoMode(ID3D11VideoProcessor* pVideoProcessor, BOOL Enable)

ビデオプロセッサーがステレオビデオフレームを生成するかどうかを指定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
EnableBOOLinTRUE の場合、ステレオ出力が有効になります。それ以外の場合、ビデオプロセッサーはモノラルのビデオフレームを生成します。

解説(Remarks)

既定では、ビデオプロセッサーはモノラルのビデオフレームを生成します。

この機能を使用するには、ドライバーがステレオビデオをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。

vtbl 19 INT VideoProcessorSetOutputExtension(ID3D11VideoProcessor* pVideoProcessor, GUID* pExtensionGuid, DWORD DataSize, void* pData)

ドライバー固有のビデオ処理状態を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pExtensionGuidGUID*in操作を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。
DataSizeDWORDinpData バッファーのサイズ (バイト単位)。
pDatavoid*inプライベートな状態データを格納するバッファーへのポインター。メソッドはこのバッファーを検証せずにドライバーへ直接渡します。データの検証はドライバーの責任です。

戻り値

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

vtbl 20 void VideoProcessorGetOutputTargetRect(ID3D11VideoProcessor* pVideoProcessor, BOOL* Enabled, RECT* pRect)

ビデオプロセッサーの現在のターゲット矩形を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
EnabledBOOL*outID3D11VideoContext::VideoProcessorSetOutputTargetRect メソッドでターゲット矩形が明示的に設定されている場合は TRUE を受け取ります。ターゲット矩形が無効化されている場合、または一度も設定されていない場合は FALSE を受け取ります。
pRectRECT*outEnabledTRUE を受け取る場合、このパラメーターはターゲット矩形を受け取ります。それ以外の場合、このパラメーターは無視されます。
vtbl 21 void VideoProcessorGetOutputBackgroundColor(ID3D11VideoProcessor* pVideoProcessor, BOOL* pYCbCr, D3D11_VIDEO_COLOR* pColor)

ビデオプロセッサーの現在の背景色を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pYCbCrBOOL*out背景色が YCbCr の色である場合は TRUE を、RGB の色である場合は FALSE を受け取ります。
pColorD3D11_VIDEO_COLOR*outD3D11_VIDEO_COLOR 構造体へのポインター。メソッドはこの構造体に背景色を格納します。
vtbl 22 void VideoProcessorGetOutputColorSpace(ID3D11VideoProcessor* pVideoProcessor, D3D11_VIDEO_PROCESSOR_COLOR_SPACE* pColorSpace)

ビデオプロセッサーの現在の出力色空間を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pColorSpaceD3D11_VIDEO_PROCESSOR_COLOR_SPACE*outD3D11_VIDEO_PROCESSOR_COLOR_SPACE 構造体へのポインター。メソッドはこの構造体に出力色空間を格納します。
vtbl 23 void VideoProcessorGetOutputAlphaFillMode(ID3D11VideoProcessor* pVideoProcessor, D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE* pAlphaFillMode, DWORD* pStreamIndex)

ビデオプロセッサーの現在のアルファ塗りつぶしモードを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pAlphaFillModeD3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE*outアルファ塗りつぶしモードを D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE 値として受け取ります。
pStreamIndexDWORD*outアルファ塗りつぶしモードが D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM の場合、このパラメーターは入力ストリームの 0 から始まるインデックスを受け取ります。その入力ストリームが、アルファ塗りつぶしに使用するアルファ値を提供します。
vtbl 24 void VideoProcessorGetOutputConstriction(ID3D11VideoProcessor* pVideoProcessor, BOOL* pEnabled, SIZE* pSize)

ビデオプロセッサーが実行しているダウンサンプリングの現在のレベルを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pEnabledBOOL*outID3D11VideoContext::VideoProcessorSetOutputConstriction メソッドでダウンサンプリングが明示的に有効化されている場合は TRUE を受け取ります。ダウンサンプリングが無効化されている場合、または一度も設定されていない場合は FALSE を受け取ります。
pSizeSIZE*outEnabledTRUE を受け取る場合、このパラメーターはダウンサンプリングのサイズを受け取ります。それ以外の場合、このパラメーターは無視されます。
vtbl 25 void VideoProcessorGetOutputStereoMode(ID3D11VideoProcessor* pVideoProcessor, BOOL* pEnabled)

ビデオプロセッサーがステレオビデオフレームを生成するかどうかを照会します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pEnabledBOOL*outステレオ出力が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。
vtbl 26 INT VideoProcessorGetOutputExtension(ID3D11VideoProcessor* pVideoProcessor, GUID* pExtensionGuid, DWORD DataSize, void* pData)

ビデオプロセッサーからプライベートな状態データを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
pExtensionGuidGUID*in状態を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。
DataSizeDWORDinpData バッファーのサイズ (バイト単位)。
pDatavoid*outプライベートな状態データを受け取るバッファーへのポインター。

戻り値

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

vtbl 27 void VideoProcessorSetStreamFrameFormat(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_FRAME_FORMAT FrameFormat)

ビデオプロセッサーの入力ストリームがインターレースフレームとプログレッシブフレームのどちらを含むかを指定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
FrameFormatD3D11_VIDEO_FRAME_FORMATinインターレース方式を指定する D3D11_VIDEO_FRAME_FORMAT 値。
vtbl 28 void VideoProcessorSetStreamColorSpace(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_PROCESSOR_COLOR_SPACE* pColorSpace)

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

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pColorSpaceD3D11_VIDEO_PROCESSOR_COLOR_SPACE*in色空間を指定する D3D11_VIDEO_PROCESSOR_COLOR_SPACE 構造体へのポインター。
vtbl 29 void VideoProcessorSetStreamOutputRate(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate, BOOL RepeatFrame, DXGI_RATIONAL* pCustomRate)

ビデオプロセッサーが入力ストリームに対して出力フレームを生成するレートを設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
OutputRateD3D11_VIDEO_PROCESSOR_OUTPUT_RATEin出力レート。D3D11_VIDEO_PROCESSOR_OUTPUT_RATE 値として指定します。
RepeatFrameBOOLin

フレームレート変換が必要な場合に、ドライバーがどのように変換を行うかを指定します。

意味
TRUE
フレームを繰り返します。
FALSE
フレームを補間します。
pCustomRateDXGI_RATIONAL*inoptionalDXGI_RATIONAL 構造体へのポインター。OutputRateD3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM の場合、このパラメーターは正確な出力レートを指定します。それ以外の場合、このパラメーターは無視され、NULL にできます。

解説(Remarks)

標準の出力レートは、通常のフレームレート (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL) と半分のフレームレート (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF) です。さらに、ドライバーはレート変換や逆テレシネ用のカスタムレートをサポートする場合があります。カスタムレートの一覧を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCustomRate を呼び出します。

出力レートによっては、ドライバーがフレームレートを変換する必要があります。その場合、RepeatFrame の値によって、ドライバーが補間フレームを生成するか、単に入力フレームを繰り返すかが決まります。

vtbl 30 void VideoProcessorSetStreamSourceRect(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, RECT* pRect)

ビデオプロセッサーの入力ストリームのソース矩形を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinソース矩形を適用するかどうかを指定します。
pRectRECT*inoptionalソース矩形を指定する RECT 構造体へのポインター。EnableFALSE の場合、このパラメーターは無視されます。

解説(Remarks)

ソース矩形は、出力先サーフェスへ転送 (ブリット) される入力サーフェスの領域です。ソース矩形は、入力サーフェスを基準としたピクセル座標で指定します。

このメソッドが一度も呼び出されない場合、または Enable パラメーターが FALSE の場合、ビデオプロセッサーは入力サーフェス全体から読み取ります。

vtbl 31 void VideoProcessorSetStreamDestRect(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, RECT* pRect)

ビデオプロセッサーの入力ストリームの出力先矩形を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLin出力先矩形を適用するかどうかを指定します。
pRectRECT*inoptional出力先矩形を指定する RECT 構造体へのポインター。EnableFALSE の場合、このパラメーターは無視されます。

解説(Remarks)

出力先矩形は、このストリームのブリットを受け取る出力サーフェスの領域です。出力先矩形は、出力サーフェスを基準としたピクセル座標で指定します。

既定の出力先矩形は空の矩形 (0, 0, 0, 0) です。このメソッドが一度も呼び出されない場合、または Enable パラメーターが FALSE の場合、このストリームからはデータが書き込まれません。

vtbl 32 void VideoProcessorSetStreamAlpha(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, FLOAT Alpha)

ビデオプロセッサーの入力ストリームのプレーナーアルファを設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinアルファブレンドを有効にするかどうかを指定します。
AlphaFLOATinプレーナーアルファ値。値の範囲は 0.0 (透明) から 1.0 (不透明) です。 EnableFALSE の場合、このパラメーターは無視されます。

解説(Remarks)

この機能を使用するには、ドライバーがステレオビデオをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALHPA_STREAM 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。

アルファブレンドは既定では無効です。

各ピクセルについて、出力先の色値は次のように計算されます。

Cd = Cs * (As * Ap * Ae) + Cd * (1.0 - As * Ap * Ae)

ここで、各項目の意味は次のとおりです。

パレットエントリのアルファ値は、パレット化された色形式で、かつデバイスが D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE 機能をサポートしている場合にのみ適用されます。それ以外の場合、この係数は 1.0 になります。
出力先のアルファ値は、アルファ塗りつぶしモードに従って計算されます。詳細については、ID3D11VideoContext::VideoProcessorSetOutputAlphaFillMode を参照してください。
vtbl 33 void VideoProcessorSetStreamPalette(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, DWORD Count, DWORD* pEntries)

ビデオプロセッサーの入力ストリームのカラーパレットエントリを設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
CountDWORDinpEntries 配列の要素数。
pEntriesDWORD*inoptionalパレットエントリの配列へのポインター。RGB ストリームの場合、パレットエントリは DXGI_FORMAT_B8G8R8A8 表現を使用します。YCbCr ストリームの場合、パレットエントリは DXGI_FORMAT_AYUV 表現を使用します。配列は呼び出し元が割り当てます。

解説(Remarks)

このメソッドは、パレット化された色形式を持つ入力ストリームにのみ適用されます。4 ビット/ピクセル (bpp) のパレット形式では、リストの先頭 16 エントリが使用されます。8 bpp の形式では先頭 256 エントリが使用されます。

ピクセルのパレットインデックスがエントリ数を超える場合、デバイスはそのピクセルを不透明アルファの白として扱います。フルレンジ RGB ではこの値は (255, 255, 255, 255)、YCbCr では (255, 235, 128, 128) です。

ドライバーが D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE 機能フラグを報告しない場合、すべてのパレットエントリのアルファ値は 0xFF (不透明) でなければなりません。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。

vtbl 34 void VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, DXGI_RATIONAL* pSourceAspectRatio, DXGI_RATIONAL* pDestinationAspectRatio)

ビデオプロセッサーの入力ストリームのピクセルアスペクト比を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinpSourceAspectRatiopDestinationAspectRatio のパラメーターが有効な値を含むかどうかを指定します。含まない場合、ピクセルアスペクト比は未指定となります。
pSourceAspectRatioDXGI_RATIONAL*inoptionalソース矩形のピクセルアスペクト比を格納する DXGI_RATIONAL 構造体へのポインター。EnableFALSE の場合、このパラメーターは NULL にできます。
pDestinationAspectRatioDXGI_RATIONAL*inoptional出力先矩形のピクセルアスペクト比を格納する DXGI_RATIONAL 構造体へのポインター。EnableFALSE の場合、このパラメーターは NULL にできます。

解説(Remarks)

この関数は、ドライバーが D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO 機能を報告する場合にのみ呼び出せます。この機能が設定されていない場合、この関数は何の効果もありません。

0/n や n/0 の形式のピクセルアスペクト比は無効です。

既定のピクセルアスペクト比は 1:1 (正方形ピクセル) です。

vtbl 35 void VideoProcessorSetStreamLumaKey(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, FLOAT Lower, FLOAT Upper)

ビデオプロセッサーの入力ストリームのルーマキーを設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinルーマキーを有効にするかどうかを指定します。
LowerFLOATinルーマキーの下限。有効な範囲は [0…1] です。EnableFALSE の場合、このパラメーターは無視されます。
UpperFLOATinルーマキーの上限。有効な範囲は [0…1] です。EnableFALSE の場合、このパラメーターは無視されます。

解説(Remarks)

この機能を使用するには、ドライバーがルーマキーをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。さらに、入力形式が RGB の場合、デバイスは D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY 機能をサポートしている必要があります。

LowerUpper の値は、[0...1] の公称範囲を用いてルーマキーの下限と上限を指定します。1 チャネルあたり n ビットの形式の場合、これらの値は次のようにルーマ値へ変換されます。

val = f * ((1 << n)-1)

ルーマ値が上限と下限の範囲内 (両端を含む) にあるピクセルは、透明として扱われます。

たとえば、ピクセル形式が 8 ビットのルーマを使用する場合、上限は次のように計算されます。

BYTE Y = BYTE(max(min(1.0, Upper), 0.0) * 255.0)

値は 255 を掛ける前に [0...1] の範囲にクランプされることに注意してください。

vtbl 36 void VideoProcessorSetStreamStereoFormat(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format, BOOL LeftViewFrame0, BOOL BaseViewFrame0, D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode, INT MonoOffset)

ビデオプロセッサーの入力ストリームでステレオ 3D ビデオを有効または無効にします。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinこのストリームでステレオ 3D を有効にするかどうかを指定します。値が FALSE の場合、このメソッドの残りのパラメーターは無視されます。
FormatD3D11_VIDEO_PROCESSOR_STEREO_FORMATinメモリ内での 2 つのステレオビューの配置を、D3D11_VIDEO_PROCESSOR_STEREO_FORMAT 値として指定します。
LeftViewFrame0BOOLin

TRUE の場合、フレーム 0 に左目用ビューが含まれます。それ以外の場合、フレーム 0 に右目用ビューが含まれます。

次のステレオ形式では、このパラメーターは無視されます。

BaseViewFrame0BOOLin

TRUE の場合、フレーム 0 にベースビューが含まれます。それ以外の場合、フレーム 1 にベースビューが含まれます。

次のステレオ形式では、このパラメーターは無視されます。

FlipModeD3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODEinいずれかのビューを反転するかどうかを指定する、D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE 列挙型のフラグ。
MonoOffsetINTin

D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET 形式の場合、このパラメーターは左目用ビューと右目用ビューの生成方法を指定します。

  • MonoOffset が正の場合、右目用ビューはその分だけ右へシフトされ、左目用ビューは同じ量だけ左へシフトされます。
  • MonoOffset が負の場合、右目用ビューはその分だけ左へシフトされ、左目用ビューは同じ量だけ右へシフトされます。
FormatD3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET でない場合、このパラメーターは 0 でなければなりません。
vtbl 37 void VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable)

ビデオプロセッサーの自動処理機能を有効または無効にします。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinTRUE の場合、自動処理機能が有効になります。FALSE の場合、ドライバーは実行している可能性のある追加のビデオ処理を無効にします。

解説(Remarks)

既定では、ドライバーはビデオプロセッサーのブリット中に特定の処理を自動的に実行することがあります。このメソッドを使用すると、アプリケーションはこうした追加のビデオ処理機能を無効にできます。たとえば、ビデオプロセッサー用に独自のピクセルシェーダーを用意する場合は、ドライバーの自動処理を無効にしたいことがあります。

vtbl 38 void VideoProcessorSetStreamFilter(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_PROCESSOR_FILTER Filter, BOOL Enable, INT Level)

ビデオプロセッサーの入力ストリームに対して画像フィルターを有効または無効にします。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
FilterD3D11_VIDEO_PROCESSOR_FILTERin

フィルター。D3D11_VIDEO_PROCESSOR_FILTER 値として指定します。

ドライバーがサポートするフィルターを照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。

EnableBOOLinフィルターを有効にするかどうかを指定します。
LevelINTin

フィルターレベル。EnableFALSE の場合、このパラメーターは無視されます。

指定したフィルターの有効なレベルの範囲を調べるには、ID3D11VideoProcessorEnumerator::GetVideoProcessorFilterRange を呼び出します。

vtbl 39 INT VideoProcessorSetStreamExtension(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, GUID* pExtensionGuid, DWORD DataSize, void* pData)

ビデオ処理ストリームにドライバー固有の状態を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pExtensionGuidGUID*in操作を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。
DataSizeDWORDinpData バッファーのサイズ (バイト単位)。
pDatavoid*inプライベートな状態データを格納するバッファーへのポインター。メソッドはこのバッファーを検証せずにドライバーへ直接渡します。データの検証はドライバーの責任です。

戻り値

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

vtbl 40 void VideoProcessorGetStreamFrameFormat(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_FRAME_FORMAT* pFrameFormat)

ビデオプロセッサーの入力ストリームの形式を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pFrameFormatD3D11_VIDEO_FRAME_FORMAT*outストリームがインターレースフレームとプログレッシブフレームのどちらを含むかを示す D3D11_VIDEO_FRAME_FORMAT 値を受け取ります。
vtbl 41 void VideoProcessorGetStreamColorSpace(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_PROCESSOR_COLOR_SPACE* pColorSpace)

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

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pColorSpaceD3D11_VIDEO_PROCESSOR_COLOR_SPACE*out色空間を指定する D3D11_VIDEO_PROCESSOR_COLOR_SPACE 値を受け取ります。
vtbl 42 void VideoProcessorGetStreamOutputRate(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_PROCESSOR_OUTPUT_RATE* pOutputRate, BOOL* pRepeatFrame, DXGI_RATIONAL* pCustomRate)

ビデオプロセッサーが入力ストリームに対して出力フレームを生成するレートを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pOutputRateD3D11_VIDEO_PROCESSOR_OUTPUT_RATE*out出力レートを示す D3D11_VIDEO_PROCESSOR_OUTPUT_RATE 値を受け取ります。
pRepeatFrameBOOL*out

フレームレート変換が必要な場合に、ドライバーがどのように変換を行うかを示すブール値を受け取ります。

意味
TRUE
フレームを繰り返します。
FALSE
フレームを補間します。
pCustomRateDXGI_RATIONAL*outDXGI_RATIONAL 構造体へのポインター。出力レートが D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM の場合、メソッドはこの構造体に正確な出力レートを格納します。それ以外の場合、このパラメーターは無視されます。
vtbl 43 void VideoProcessorGetStreamSourceRect(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnabled, RECT* pRect)

ビデオプロセッサーの入力ストリームのソース矩形を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnabledBOOL*outソース矩形が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。
pRectRECT*outソース矩形を受け取る RECT 構造体へのポインター。
vtbl 44 void VideoProcessorGetStreamDestRect(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnabled, RECT* pRect)

ビデオプロセッサーの入力ストリームの出力先矩形を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnabledBOOL*out出力先矩形が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。
pRectRECT*out出力先矩形を受け取る RECT 構造体へのポインター。
vtbl 45 void VideoProcessorGetStreamAlpha(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnabled, FLOAT* pAlpha)

ビデオプロセッサーの入力ストリームのプレーナーアルファを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnabledBOOL*outプレーナーアルファが有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。
pAlphaFLOAT*outプレーナーアルファ値を受け取ります。値の範囲は 0.0 (透明) から 1.0 (不透明) です。
vtbl 46 void VideoProcessorGetStreamPalette(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, DWORD Count, DWORD* pEntries)

ビデオプロセッサーの入力ストリームのカラーパレットエントリを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
CountDWORDinpEntries 配列のエントリ数。
pEntriesDWORD*out呼び出し元が割り当てた UINT 配列へのポインター。メソッドはこの配列にパレットエントリを格納します。RGB ストリームの場合、パレットエントリは DXGI_FORMAT_B8G8R8A8 表現を使用します。YCbCr ストリームの場合、パレットエントリは DXGI_FORMAT_AYUV 表現を使用します。

解説(Remarks)

このメソッドは、パレット化された色形式を持つ入力ストリームにのみ適用されます。4 ビット/ピクセル (bpp) のパレット形式では 16 個のパレットエントリが使用されます。8 bpp の形式では 256 個のエントリが使用されます。

vtbl 47 void VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnabled, DXGI_RATIONAL* pSourceAspectRatio, DXGI_RATIONAL* pDestinationAspectRatio)

ビデオプロセッサーの入力ストリームのピクセルアスペクト比を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnabledBOOL*outピクセルアスペクト比が指定されている場合は TRUE を受け取ります。それ以外の場合は FALSE を受け取ります。
pSourceAspectRatioDXGI_RATIONAL*outDXGI_RATIONAL 構造体へのポインター。*pEnabledTRUE の場合、このパラメーターはソース矩形のピクセルアスペクト比を受け取ります。
pDestinationAspectRatioDXGI_RATIONAL*outDXGI_RATIONAL 構造体へのポインター。*pEnabledTRUE の場合、このパラメーターは出力先矩形のピクセルアスペクト比を受け取ります。

解説(Remarks)

メソッドから戻ったとき、*pEnabledTRUE であれば、pSourceAspectRatiopDestinationAspectRatio のパラメーターにピクセルアスペクト比が格納されています。それ以外の場合、既定のピクセルアスペクト比は 1:1 (正方形ピクセル) です。

vtbl 48 void VideoProcessorGetStreamLumaKey(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnabled, FLOAT* pLower, FLOAT* pUpper)

ビデオプロセッサーの入力ストリームのルーマキーを取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnabledBOOL*outルーマキーが有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。
pLowerFLOAT*outルーマキーの下限を受け取ります。有効な範囲は [0…1] です。
pUpperFLOAT*outルーマキーの上限を受け取ります。有効な範囲は [0…1] です。
vtbl 49 void VideoProcessorGetStreamStereoFormat(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnable, D3D11_VIDEO_PROCESSOR_STEREO_FORMAT* pFormat, BOOL* pLeftViewFrame0, BOOL* pBaseViewFrame0, D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE* pFlipMode, INT* MonoOffset)

ビデオプロセッサーの入力ストリームのステレオ 3D 形式を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnableBOOL*outこのストリームでステレオ 3D が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。値が FALSE の場合、残りのパラメーターは無視してください。
pFormatD3D11_VIDEO_PROCESSOR_STEREO_FORMAT*outメモリ内での 2 つのステレオビューの配置を示す D3D11_VIDEO_PROCESSOR_STEREO_FORMAT 値を受け取ります。
pLeftViewFrame0BOOL*out

ブール値を受け取ります。

意味
TRUE
フレーム 0 に左目用ビューが含まれます。
FALSE
フレーム 0 に右目用ビューが含まれます。
pBaseViewFrame0BOOL*out

ブール値を受け取ります。

意味
TRUE
フレーム 0 にベースビューが含まれます。
FALSE
フレーム 1 にベースビューが含まれます。
pFlipModeD3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE*outD3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE 値を受け取ります。この値は、いずれかのビューが反転されているかどうかを示します。
MonoOffsetINT*outD3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET 形式で使用されるピクセルオフセットを受け取ります。他のステレオ形式では、このパラメーターは無視されます。
vtbl 50 void VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnabled)

ビデオプロセッサーの自動処理機能が有効かどうかを照会します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnabledBOOL*out自動処理機能が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。

解説(Remarks)

自動処理とは、アプリケーションがデータを受け取る前に、ドライバーが画像データに対して実行した可能性のある追加の画像処理を指します。

vtbl 51 void VideoProcessorGetStreamFilter(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, D3D11_VIDEO_PROCESSOR_FILTER Filter, BOOL* pEnabled, INT* pLevel)

ビデオプロセッサーの入力ストリームの画像フィルター設定を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
FilterD3D11_VIDEO_PROCESSOR_FILTERin照会するフィルター。D3D11_VIDEO_PROCESSOR_FILTER 値として指定します。
pEnabledBOOL*out画像フィルターが有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。
pLevelINT*outフィルターレベルを受け取ります。
vtbl 52 INT VideoProcessorGetStreamExtension(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, GUID* pExtensionGuid, DWORD DataSize, void* pData)

ビデオ処理ストリームのドライバー固有の状態を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pExtensionGuidGUID*in状態を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。
DataSizeDWORDinpData バッファーのサイズ (バイト単位)。
pDatavoid*outプライベートな状態データを受け取るバッファーへのポインター。

戻り値

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

vtbl 53 HRESULT VideoProcessorBlt(ID3D11VideoProcessor* pVideoProcessor, ID3D11VideoProcessorOutputView* pView, DWORD OutputFrame, DWORD StreamCount, D3D11_VIDEO_PROCESSOR_STREAM* pStreams)

1 つ以上の入力サンプルに対してビデオ処理操作を実行し、その結果を Direct3D サーフェスに書き込みます。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor メソッドを呼び出します。
pViewID3D11VideoProcessorOutputView*in出力サーフェスの ID3D11VideoProcessorOutputView インターフェイスへのポインター。ビデオ処理操作の出力は、このサーフェスに書き込まれます。
OutputFrameDWORDin出力ビデオフレームのフレーム番号 (0 から始まります)。
StreamCountDWORDin処理する入力ストリームの数。
pStreamsD3D11_VIDEO_PROCESSOR_STREAM*in入力ストリームの情報を格納する D3D11_VIDEO_PROCESSOR_STREAM 構造体の配列へのポインター。呼び出し元が配列を割り当て、各構造体に値を設定します。配列の要素数は StreamCount パラメーターで指定します。

戻り値

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

解説(Remarks)

StreamCount の最大値は、D3D11_VIDEO_PROCESSOR_CAPS 構造体の MaxStreamStates メンバーで示されます。同時に有効にできるストリームの最大数は、同じ構造体の MaxInputStreams メンバーで示されます。

出力ステレオモードが TRUE の場合:

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

アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。

vtbl 54 HRESULT NegotiateCryptoSessionKeyExchange(ID3D11CryptoSession* pCryptoSession, DWORD DataSize, void* pData)

暗号化セッションのセッションキーを確立します。

pCryptoSessionID3D11CryptoSession*in暗号化セッションの ID3D11CryptoSession インターフェイスへのポインター。
DataSizeDWORDinpData バイト配列のサイズ (バイト単位)。
pDatavoid*inout暗号化されたセッションキーを格納するバイト配列へのポインター。

戻り値

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

解説(Remarks)

キー交換の仕組みは、暗号化セッションの種類によって異なります。

RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) の場合、ソフトウェアデコーダーはシークレットキーを生成し、公開キーを使用して RSAES-OAEP でシークレットキーを暗号化し、その暗号文を pData パラメーターに格納します。RSAES-OAEP でのバッファーの実際のサイズは 256 バイトです。

vtbl 55 void EncryptionBlt(ID3D11CryptoSession* pCryptoSession, ID3D11Texture2D* pSrcSurface, ID3D11Texture2D* pDstSurface, DWORD IVSize, void* pIV)

保護されたサーフェスから暗号化されたデータを読み取ります。(ID3D11VideoContext.EncryptionBlt)

pCryptoSessionID3D11CryptoSession*in暗号化セッションの ID3D11CryptoSession インターフェイスへのポインター。
pSrcSurfaceID3D11Texture2D*in保護されたサーフェスの ID3D11Texture2D インターフェイスへのポインター。
pDstSurfaceID3D11Texture2D*in暗号化されたデータを受け取るサーフェスの ID3D11Texture2D インターフェイスへのポインター。
IVSizeDWORDinpIV バッファーのサイズ (バイト単位)。
pIVvoid*inoutoptional

初期化ベクター (IV) を受け取るバッファーへのポインター。このバッファーは呼び出し元が割り当てますが、IV を生成するのはドライバーです。

128 ビット AES-CTR 暗号化の場合、pIVD3D11_AES_CTR_IV 構造体を指します。ドライバーは最初の IV を生成する際、構造体を乱数で初期化します。以降の IV では、ドライバーは構造体の IV メンバーをインクリメントするだけで、値が常に増加するようにします。これにより、アプリケーションは同じキーペアに対して同じ IV が 2 回以上使用されないことを検証できます。

戻り値

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

解説(Remarks)

すべてのドライバーがこのメソッドをサポートしているわけではありません。ドライバーの機能を照会するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_VIDEO_CONTENT_PROTECTION_CAPS 構造体の Caps メンバーに D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK フラグがあるかどうかを確認します。

一部のドライバーでは、読み戻したデータを復号するために別個のキーが必要になる場合があります。この要件を確認するには、GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY フラグがあるかどうかを確認します。このフラグが存在する場合は、ID3D11VideoContext::GetEncryptionBltKey を呼び出して復号キーを取得します。

このメソッドには次の制限があります。

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

アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。

vtbl 56 void DecryptionBlt(ID3D11CryptoSession* pCryptoSession, ID3D11Texture2D* pSrcSurface, ID3D11Texture2D* pDstSurface, D3D11_ENCRYPTED_BLOCK_INFO* pEncryptedBlockInfo, DWORD ContentKeySize, void* pContentKey, DWORD IVSize, void* pIV)

保護されたサーフェスに暗号化されたデータを書き込みます。(ID3D11VideoContext.DecryptionBlt)

pCryptoSessionID3D11CryptoSession*inID3D11CryptoSession インターフェイスへのポインター。
pSrcSurfaceID3D11Texture2D*inソースデータを格納するサーフェスへのポインター。
pDstSurfaceID3D11Texture2D*in暗号化されたデータの書き込み先となる保護されたサーフェスへのポインター。
pEncryptedBlockInfoD3D11_ENCRYPTED_BLOCK_INFO*inoptional

D3D11_ENCRYPTED_BLOCK_INFO 構造体へのポインター、または NULL

ドライバーが部分的に暗号化されたバッファーをサポートする場合、pEncryptedBlockInfo はバッファーのどの部分が暗号化されているかを示します。サーフェス全体が暗号化されている場合は、このパラメーターを NULL に設定します。

ドライバーが部分的に暗号化されたバッファーをサポートするかどうかを確認するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION 機能フラグがあるかどうかを確認します。ドライバーが部分的に暗号化されたバッファーをサポートしない場合は、このパラメーターを NULL に設定します。

ContentKeySizeDWORDin暗号化されたコンテンツキーのサイズ (バイト単位)。
pContentKeyvoid*inoptional

コンテンツ暗号化キーを格納するバッファーへのポインター、または NULL。ドライバーがコンテンツキーの使用をサポートするかどうかを照会するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY 機能フラグがあるかどうかを確認します。

ドライバーがコンテンツキーをサポートする場合は、コンテンツキーを使用してサーフェスを暗号化します。コンテンツキーはセッションキーを使用して暗号化し、その暗号文を pContentKey に格納します。ドライバーがコンテンツキーをサポートしない場合は、セッションキーを使用してサーフェスを暗号化し、pContentKeyNULL に設定します。

IVSizeDWORDinpIV バッファーのサイズ (バイト単位)。
pIVvoid*inoutoptional

初期化ベクター (IV) を格納するバッファーへのポインター。

128 ビット AES-CTR 暗号化の場合、pIVD3D11_AES_CTR_IV 構造体を指します。呼び出し元が構造体を割り当て、IV を生成します。最初の IV を生成する際は、構造体を乱数で初期化します。以降の IV では、構造体の IV メンバーをインクリメントするだけで、値が常に増加するようにします。この手順により、ドライバーは同じキーペアに対して同じ IV が 2 回以上使用されないことを検証できます。

他の暗号化方式では、別の構造体が使用される場合や、IV を使用しない場合があります。

戻り値

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

解説(Remarks)

すべてのハードウェアやドライバーが、すべての暗号化方式についてこの機能をサポートしているわけではありません。この関数は、D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT 機能が報告されている場合にのみ呼び出せます。

このメソッドは、サーフェスのサブ矩形への書き込みをサポートしません。

ハードウェアとドライバーがコンテンツキーをサポートする場合:

それ以外の場合、データは呼び出し元がセッションキーを使用して暗号化し、コンテンツキーとして NULL を渡します。

ドライバーとハードウェアが部分的に暗号化されたバッファーをサポートする場合、pEncryptedBlockInfo はバッファーのどの部分が暗号化され、どの部分が暗号化されていないかを示します。バッファー全体が暗号化されている場合、pEncryptedBlockinfoNULL にしてください。

D3D11_ENCRYPTED_BLOCK_INFO により、アプリケーションはバッファー内のどのバイトが暗号化されているかを示せます。これはバイト単位で指定されるため、アプリケーションは暗号化ブロックが GPU の暗号ブロックのアライメントに一致するようにする必要があります。

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

アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。

vtbl 57 void StartSessionKeyRefresh(ID3D11CryptoSession* pCryptoSession, DWORD RandomNumberSize, void* pRandomNumber)

セッションキーの更新に使用できる乱数を取得します。(ID3D11VideoContext.StartSessionKeyRefresh)

pCryptoSessionID3D11CryptoSession*inID3D11CryptoSession インターフェイスへのポインター。
RandomNumberSizeDWORDinpRandomNumber 配列のサイズ (バイト単位)。サイズはセッションキーのサイズと一致させる必要があります。
pRandomNumbervoid*out乱数を受け取るバイト配列へのポインター。

戻り値

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

解説(Remarks)

新しいセッションキーを生成するには、以前のセッションキーと乱数のビット単位の XOR を計算します。新しいセッションキーは、アプリケーションが ID3D11VideoContext::FinishSessionKeyRefresh を呼び出すまで有効になりません。

ドライバーがこのメソッドをサポートするかどうかを照会するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY 機能フラグがあるかどうかを確認します。

vtbl 58 void FinishSessionKeyRefresh(ID3D11CryptoSession* pCryptoSession)

新しいセッションキーに切り替えます。(ID3D11VideoContext.FinishSessionKeyRefresh)

pCryptoSessionID3D11CryptoSession*inID3D11CryptoSession インターフェイスへのポインター。

戻り値

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

解説(Remarks)

この関数は、D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY 機能が報告されている場合にのみ呼び出せます。

このメソッドを呼び出す前に、ID3D11VideoContext::StartSessionKeyRefresh を呼び出します。StartSessionKeyRefresh メソッドはドライバーから乱数を取得し、その乱数を使用して新しいセッションキーを作成します。新しいセッションキーは、アプリケーションが FinishSessionKeyRefresh を呼び出すまで有効になりません。アプリケーションが FinishSessionKeyRefresh を呼び出した後は、保護されたすべてのサーフェスが新しいセッションキーで暗号化されます。

vtbl 59 HRESULT GetEncryptionBltKey(ID3D11CryptoSession* pCryptoSession, DWORD KeySize, void* pReadbackKey)

ID3D11VideoContext::EncryptionBlt メソッドが返すデータを復号するための暗号キーを取得します。

pCryptoSessionID3D11CryptoSession*inID3D11CryptoSession インターフェイスへのポインター。
KeySizeDWORDinpReadbackKey 配列のサイズ (バイト単位)。サイズはセッションキーのサイズと一致させる必要があります。
pReadbackKeyvoid*outキーを受け取るバイト配列へのポインター。キーはセッションキーで暗号化されています。

戻り値

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

解説(Remarks)

このメソッドは、ドライバーが EncryptionBlt メソッド用に別個のコンテンツキーを必要とする場合にのみ適用されます。詳細については、EncryptionBlt の「解説」を参照してください。

このメソッドを呼び出すたびに、ドライバーは新しいキーを生成します。

KeySize はセッションキーのサイズと一致させる必要があります。

読み戻し用のキーは、ドライバー/ハードウェアによってセッションキーで暗号化されます。

vtbl 60 HRESULT NegotiateAuthenticatedChannelKeyExchange(ID3D11AuthenticatedChannel* pChannel, DWORD DataSize, void* pData)

認証済みチャネルのセッションキーを確立します。

pChannelID3D11AuthenticatedChannel*inID3D11AuthenticatedChannel インターフェイスへのポインター。チャネルの種類が D3D11_AUTHENTICATED_CHANNEL_D3D11 の場合、Direct3D11 チャネルは認証をサポートしないため、このメソッドは失敗します。
DataSizeDWORDinpData 配列内のデータのサイズ (バイト単位)。
pDatavoid*inout暗号化されたセッションキーを格納するバイト配列へのポインター。バッファーには、RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) で暗号化された 256 バイトのデータを格納する必要があります。

戻り値

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

解説(Remarks)

チャネルの種類が D3D11_AUTHENTICATED_CHANNEL_D3D11 の場合、Direct3D11 チャネルは認証をサポートしないため、このメソッドは失敗します。

vtbl 61 HRESULT QueryAuthenticatedChannel(ID3D11AuthenticatedChannel* pChannel, DWORD InputSize, void* pInput, DWORD OutputSize, void* pOutput)

認証済みチャネルにクエリを送信します。

pChannelID3D11AuthenticatedChannel*inID3D11AuthenticatedChannel インターフェイスへのポインター。
InputSizeDWORDinpInput 配列のサイズ (バイト単位)。
pInputvoid*inクエリの入力データを格納するバイト配列へのポインター。この配列は常に D3D11_AUTHENTICATED_QUERY_INPUT 構造体で始まります。構造体の QueryType メンバーがクエリを指定し、配列の残りの部分の意味を定義します。
OutputSizeDWORDinpOutput 配列のサイズ (バイト単位)。
pOutputvoid*outクエリの結果を受け取るバイト配列へのポインター。この配列は常に D3D11_AUTHENTICATED_QUERY_OUTPUT 構造体で始まります。配列の残りの部分の意味は、クエリによって異なります。

戻り値

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

vtbl 62 HRESULT ConfigureAuthenticatedChannel(ID3D11AuthenticatedChannel* pChannel, DWORD InputSize, void* pInput, D3D11_AUTHENTICATED_CONFIGURE_OUTPUT* pOutput)

認証済みチャネルに構成コマンドを送信します。

pChannelID3D11AuthenticatedChannel*inID3D11AuthenticatedChannel インターフェイスへのポインター。
InputSizeDWORDinpInput 配列のサイズ (バイト単位)。
pInputvoid*inコマンドの入力データを格納するバイト配列へのポインター。このバッファーは常に D3D11_AUTHENTICATED_CONFIGURE_INPUT 構造体で始まります。構造体の ConfigureType メンバーがコマンドを指定し、バッファーの残りの部分の意味を定義します。
pOutputD3D11_AUTHENTICATED_CONFIGURE_OUTPUT*outコマンドへの応答を受け取る D3D11_AUTHENTICATED_CONFIGURE_OUTPUT 構造体へのポインター。

戻り値

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

vtbl 63 void VideoProcessorSetStreamRotation(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL Enable, D3D11_VIDEO_PROCESSOR_ROTATION Rotation)

ビデオプロセッサーの入力ストリームのストリーム回転を設定します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
EnableBOOLinストリームを時計回りに回転させるかどうかを指定します。
RotationD3D11_VIDEO_PROCESSOR_ROTATIONinストリームの回転を指定します。

解説(Remarks)

これは省略可能な状態であり、D3D11_VIDEO_PROCESSOR_CAPS.FeatureCapsD3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION が報告されている場合にのみ、アプリケーションはこれを使用してください。

ストリームのソース矩形は回転前の座標 (通常は横向き) で指定し、ストリームの出力先矩形は回転後の座標 (通常は縦向き) で指定します。0° と 180° 以外の回転値を使用する場合、アプリケーションはストリームの出力先矩形を正しく更新する必要があります。

vtbl 64 void VideoProcessorGetStreamRotation(ID3D11VideoProcessor* pVideoProcessor, DWORD StreamIndex, BOOL* pEnable, D3D11_VIDEO_PROCESSOR_ROTATION* pRotation)

ビデオプロセッサーの入力ストリームのストリーム回転を取得します。

pVideoProcessorID3D11VideoProcessor*inID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。
StreamIndexDWORDin入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。
pEnableBOOL*outストリームが回転されているかどうかを示します。
pRotationD3D11_VIDEO_PROCESSOR_ROTATION*out時計回りでのストリームの回転を示します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ID3D11VideoContext "{61F21C45-3C0E-4A74-9CEA-67100D9AD5E4}"
#usecom global ID3D11VideoContext IID_ID3D11VideoContext "{}"
#comfunc global ID3D11VideoContext_GetDecoderBuffer                           7 sptr,int,var,sptr
#comfunc global ID3D11VideoContext_ReleaseDecoderBuffer                       8 sptr,int
#comfunc global ID3D11VideoContext_DecoderBeginFrame                          9 sptr,sptr,int,sptr
#comfunc global ID3D11VideoContext_DecoderEndFrame                            10 sptr
#comfunc global ID3D11VideoContext_SubmitDecoderBuffers                       11 sptr,int,var
#comfunc global ID3D11VideoContext_DecoderExtension                           12 sptr,var
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputTargetRect          13 sptr,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor     14 sptr,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputColorSpace          15 sptr,var
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputAlphaFillMode       16 sptr,int,int
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputConstriction        17 sptr,int,int
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputStereoMode          18 sptr,int
#comfunc global ID3D11VideoContext_VideoProcessorSetOutputExtension           19 sptr,var,int,sptr
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputTargetRect          20 sptr,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor     21 sptr,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputColorSpace          22 sptr,var
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode       23 sptr,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputConstriction        24 sptr,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputStereoMode          25 sptr,var
#comfunc global ID3D11VideoContext_VideoProcessorGetOutputExtension           26 sptr,var,int,sptr
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamFrameFormat         27 sptr,int,int
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamColorSpace          28 sptr,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamOutputRate          29 sptr,int,int,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamSourceRect          30 sptr,int,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamDestRect            31 sptr,int,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamAlpha               32 sptr,int,int,float
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamPalette             33 sptr,int,int,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio    34 sptr,int,int,var,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamLumaKey             35 sptr,int,int,float,float
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamStereoFormat        36 sptr,int,int,int,int,int,int,int
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamAutoProcessingMode  37 sptr,int,int
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamFilter              38 sptr,int,int,int,int
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamExtension           39 sptr,int,var,int,sptr
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamFrameFormat         40 sptr,int,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamColorSpace          41 sptr,int,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamOutputRate          42 sptr,int,var,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamSourceRect          43 sptr,int,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamDestRect            44 sptr,int,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamAlpha               45 sptr,int,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamPalette             46 sptr,int,int,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio    47 sptr,int,var,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamLumaKey             48 sptr,int,var,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamStereoFormat        49 sptr,int,var,var,var,var,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode  50 sptr,int,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamFilter              51 sptr,int,int,var,var
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamExtension           52 sptr,int,var,int,sptr
#comfunc global ID3D11VideoContext_VideoProcessorBlt                          53 sptr,sptr,int,int,var
#comfunc global ID3D11VideoContext_NegotiateCryptoSessionKeyExchange          54 sptr,int,sptr
#comfunc global ID3D11VideoContext_EncryptionBlt                              55 sptr,sptr,sptr,int,sptr
#comfunc global ID3D11VideoContext_DecryptionBlt                              56 sptr,sptr,sptr,var,int,sptr,int,sptr
#comfunc global ID3D11VideoContext_StartSessionKeyRefresh                     57 sptr,int,sptr
#comfunc global ID3D11VideoContext_FinishSessionKeyRefresh                    58 sptr
#comfunc global ID3D11VideoContext_GetEncryptionBltKey                        59 sptr,int,sptr
#comfunc global ID3D11VideoContext_NegotiateAuthenticatedChannelKeyExchange   60 sptr,int,sptr
#comfunc global ID3D11VideoContext_QueryAuthenticatedChannel                  61 sptr,int,sptr,int,sptr
#comfunc global ID3D11VideoContext_ConfigureAuthenticatedChannel              62 sptr,int,sptr,var
#comfunc global ID3D11VideoContext_VideoProcessorSetStreamRotation            63 sptr,int,int,int
#comfunc global ID3D11VideoContext_VideoProcessorGetStreamRotation            64 sptr,int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。