ID3D11VideoContext
COM公式ドキュメント
Microsoft Direct3D 11 デバイスのビデオ機能を提供します。(ID3D11VideoContext)
解説(Remarks)
このインターフェイスへのポインターを取得するには、QueryInterface を ID3D11DeviceContext インターフェイスポインターに対して呼び出します。
このインターフェイスは、Microsoft Direct3D のビデオ機能のうち、次の分野へのアクセスを提供します。
- ハードウェアアクセラレーションによるビデオデコード
- ビデオ処理
- GPU ベースのコンテンツ保護
- ビデオの暗号化と復号
メソッド 58
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
デコーダーバッファーへのポインターを取得します。
| pDecoder | ID3D11VideoDecoder* | in | ID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。 |
| Type | D3D11_VIDEO_DECODER_BUFFER_TYPE | in | 取得するバッファーの種類。D3D11_VIDEO_DECODER_BUFFER_TYPE 列挙型のメンバーとして指定します。 |
| pBufferSize | DWORD* | out | バッファーのサイズ (バイト単位) を受け取ります。 |
| ppBuffer | void** | out | メモリバッファーの先頭へのポインターを受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
デコードに使用されるバッファーはグラフィックスドライバーが割り当てます。このメソッドは、バッファーを含む Microsoft Direct3D サーフェスをロックします。バッファーの使用が終わったら、ID3D11VideoContext::ReleaseDecoderBuffer を呼び出してサーフェスのロックを解除してください。
ID3D11VideoContext::GetDecoderBuffer メソッドで取得したバッファーを解放します。
| pDecoder | ID3D11VideoDecoder* | in | ID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。 |
| Type | D3D11_VIDEO_DECODER_BUFFER_TYPE | in | 解放するバッファーの種類。GetDecoderBuffer メソッドの Type パラメーターに指定したものと同じ値を指定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ビデオフレームをデコードするデコード操作を開始します。
| pDecoder | ID3D11VideoDecoder* | in | ID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。 |
| pView | ID3D11VideoDecoderOutputView* | in | ID3D11VideoDecoderOutputView インターフェイスへのポインター。このインターフェイスは、デコードされたフレームを受け取るリソースを表します。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoderOutputView を呼び出します。 |
| ContentKeySize | DWORD | in | pContentKey に指定するコンテンツキーのサイズ。pContentKey が NULL の場合は、ContentKeySize を 0 に設定します。 |
| pContentKey | void* | inoptional | フレームデータの暗号化に使用したコンテンツキーへの省略可能なポインター。コンテンツキーを使用していない場合は、このパラメーターを NULL に設定します。呼び出し元がコンテンツキーを指定する場合、呼び出し元はセッションキーを使用してコンテンツキーを暗号化する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。 ハードウェアがビジー状態の場合は D3DERR_WASSTILLDRAWING または E_PENDING が返されます。この場合、デコーダーは呼び出しを再試行してください。
解説(Remarks)
このメソッドを呼び出した後、ID3D11VideoContext::SubmitDecoderBuffers を呼び出してデコード操作を実行します。すべてのデコード操作が実行されたら、ID3D11VideoContext::DecoderEndFrame を呼び出します。
DecoderBeginFrame の各呼び出しには、対応する DecoderEndFrame の呼び出しが必要です。ほとんどの場合、DecoderBeginFrame の呼び出しを入れ子にすることはできませんが、VC-1 などの一部のコーデックでは、後処理といった特別な操作のために DecoderBeginFrame の呼び出しを入れ子にできます。
コンテンツキーを通じて、次の暗号化シナリオがサポートされます。
- デコーダーは、すべてのフレームを暗号化しないことを選択できます。たとえば、I フレームのみを暗号化し、P/B フレームは暗号化しないといった方法です。このシナリオでは、デコーダーは暗号化しないフレームに対して pContentKey = NULL、ContentKeySize = 0 を指定します。
- デコーダーは、セッションキーを使用して圧縮バッファーを暗号化することを選択できます。このシナリオでは、デコーダーはすべてが 0 のコンテンツキーを指定します。
- デコーダーは、別個のコンテンツキーを使用して圧縮バッファーを暗号化することを選択できます。このシナリオでは、デコーダーはセッションキーを使用してコンテンツキーを ECB 暗号化し、暗号化したコンテンツキーを渡します。
デコード操作の終了を通知します。
| pDecoder | ID3D11VideoDecoder* | in | ID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
1 つ以上のバッファーをデコード用に送信します。(ID3D11VideoContext.SubmitDecoderBuffers)
| pDecoder | ID3D11VideoDecoder* | in | ID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder メソッドを呼び出します。 |
| NumBuffers | DWORD | in | デコード用に送信するバッファーの数。 |
| pBufferDesc | D3D11_VIDEO_DECODER_BUFFER_DESC* | in | D3D11_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 を使用する必要があり、部分暗号化をフレーム単位で無効にすることはできません。
デコードのための拡張機能を実行します。
| pDecoder | ID3D11VideoDecoder* | in | ID3D11VideoDecoder インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoDecoder を呼び出します。 |
| pExtensionData | D3D11_VIDEO_DECODER_EXTENSION* | in | 当該機能のデータを格納する D3D11_VIDEO_DECODER_EXTENSION 構造体へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ビデオプロセッサーのターゲット矩形を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| Enable | BOOL | in | ターゲット矩形を適用するかどうかを指定します。 |
| pRect | RECT* | inoptional | ターゲット矩形を指定する RECT 構造体へのポインター。Enable が FALSE の場合、このパラメーターは無視されます。 |
解説(Remarks)
ターゲット矩形は、出力が描画される出力先サーフェス内の領域です。ターゲット矩形は、出力先サーフェスを基準としたピクセル座標で指定します。
このメソッドが一度も呼び出されない場合、または Enable パラメーターが FALSE の場合、ビデオプロセッサーは出力先サーフェス全体に書き込みます。
ビデオプロセッサーの背景色を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| YCbCr | BOOL | in | TRUE の場合、色は YCbCr 値として指定します。それ以外の場合、色は RGB 値として指定します。 |
| pColor | D3D11_VIDEO_COLOR* | in | 背景色を指定する D3D11_VIDEO_COLOR 構造体へのポインター。 |
解説(Remarks)
ビデオプロセッサーは、ターゲット矩形内のビデオ画像が存在しない領域を背景色で塗りつぶします。ターゲット矩形の外側の領域は影響を受けません。
ビデオプロセッサーの出力色空間を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pColorSpace | D3D11_VIDEO_PROCESSOR_COLOR_SPACE* | in | 色空間を指定する D3D11_VIDEO_PROCESSOR_COLOR_SPACE 構造体へのポインター。 |
ビデオプロセッサーがレンダーターゲットに書き込むデータのアルファ塗りつぶしモードを設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| AlphaFillMode | D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE | in | アルファ塗りつぶしモード。D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE 値として指定します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。このパラメーターは、AlphaFillMode が D3D11_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 です。
出力に対して実行するダウンサンプリングの量を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| Enable | BOOL | in | TRUE の場合、ダウンサンプリングが有効になります。それ以外の場合、ダウンサンプリングは無効になり、Size メンバーは無視されます。 |
| Size | SIZE | in | サンプリングサイズ。 |
解説(Remarks)
ダウンサンプリングは、他の形式のコンテンツ保護が利用できない場合に、プレミアムコンテンツの品質を下げる目的で使用されることがあります。既定ではダウンサンプリングは無効です。
Enable パラメーターが TRUE の場合、ドライバーは合成された画像を指定されたサイズにダウンサンプリングし、その後ターゲット矩形のサイズに拡大し直します。
Size の幅と高さは 0 より大きい必要があります。サイズがターゲット矩形より大きい場合、ダウンサンプリングは行われません。
この機能を使用するには、ドライバーがダウンサンプリングをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。
ビデオプロセッサーがステレオビデオフレームを生成するかどうかを指定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| Enable | BOOL | in | TRUE の場合、ステレオ出力が有効になります。それ以外の場合、ビデオプロセッサーはモノラルのビデオフレームを生成します。 |
解説(Remarks)
既定では、ビデオプロセッサーはモノラルのビデオフレームを生成します。
この機能を使用するには、ドライバーがステレオビデオをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。
ドライバー固有のビデオ処理状態を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pExtensionGuid | GUID* | in | 操作を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。 |
| DataSize | DWORD | in | pData バッファーのサイズ (バイト単位)。 |
| pData | void* | in | プライベートな状態データを格納するバッファーへのポインター。メソッドはこのバッファーを検証せずにドライバーへ直接渡します。データの検証はドライバーの責任です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ビデオプロセッサーの現在のターゲット矩形を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| Enabled | BOOL* | out | ID3D11VideoContext::VideoProcessorSetOutputTargetRect メソッドでターゲット矩形が明示的に設定されている場合は TRUE を受け取ります。ターゲット矩形が無効化されている場合、または一度も設定されていない場合は FALSE を受け取ります。 |
| pRect | RECT* | out | Enabled が TRUE を受け取る場合、このパラメーターはターゲット矩形を受け取ります。それ以外の場合、このパラメーターは無視されます。 |
ビデオプロセッサーの現在の背景色を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pYCbCr | BOOL* | out | 背景色が YCbCr の色である場合は TRUE を、RGB の色である場合は FALSE を受け取ります。 |
| pColor | D3D11_VIDEO_COLOR* | out | D3D11_VIDEO_COLOR 構造体へのポインター。メソッドはこの構造体に背景色を格納します。 |
ビデオプロセッサーの現在の出力色空間を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pColorSpace | D3D11_VIDEO_PROCESSOR_COLOR_SPACE* | out | D3D11_VIDEO_PROCESSOR_COLOR_SPACE 構造体へのポインター。メソッドはこの構造体に出力色空間を格納します。 |
ビデオプロセッサーの現在のアルファ塗りつぶしモードを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pAlphaFillMode | D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE* | out | アルファ塗りつぶしモードを D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE 値として受け取ります。 |
| pStreamIndex | DWORD* | out | アルファ塗りつぶしモードが D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM の場合、このパラメーターは入力ストリームの 0 から始まるインデックスを受け取ります。その入力ストリームが、アルファ塗りつぶしに使用するアルファ値を提供します。 |
ビデオプロセッサーが実行しているダウンサンプリングの現在のレベルを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pEnabled | BOOL* | out | ID3D11VideoContext::VideoProcessorSetOutputConstriction メソッドでダウンサンプリングが明示的に有効化されている場合は TRUE を受け取ります。ダウンサンプリングが無効化されている場合、または一度も設定されていない場合は FALSE を受け取ります。 |
| pSize | SIZE* | out | Enabled が TRUE を受け取る場合、このパラメーターはダウンサンプリングのサイズを受け取ります。それ以外の場合、このパラメーターは無視されます。 |
ビデオプロセッサーがステレオビデオフレームを生成するかどうかを照会します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pEnabled | BOOL* | out | ステレオ出力が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
ビデオプロセッサーからプライベートな状態データを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| pExtensionGuid | GUID* | in | 状態を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。 |
| DataSize | DWORD | in | pData バッファーのサイズ (バイト単位)。 |
| pData | void* | out | プライベートな状態データを受け取るバッファーへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ビデオプロセッサーの入力ストリームがインターレースフレームとプログレッシブフレームのどちらを含むかを指定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| FrameFormat | D3D11_VIDEO_FRAME_FORMAT | in | インターレース方式を指定する D3D11_VIDEO_FRAME_FORMAT 値。 |
ビデオプロセッサーの入力ストリームの色空間を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pColorSpace | D3D11_VIDEO_PROCESSOR_COLOR_SPACE* | in | 色空間を指定する D3D11_VIDEO_PROCESSOR_COLOR_SPACE 構造体へのポインター。 |
ビデオプロセッサーが入力ストリームに対して出力フレームを生成するレートを設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 | ||||||
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 | ||||||
| OutputRate | D3D11_VIDEO_PROCESSOR_OUTPUT_RATE | in | 出力レート。D3D11_VIDEO_PROCESSOR_OUTPUT_RATE 値として指定します。 | ||||||
| RepeatFrame | BOOL | in | フレームレート変換が必要な場合に、ドライバーがどのように変換を行うかを指定します。
| ||||||
| pCustomRate | DXGI_RATIONAL* | inoptional | DXGI_RATIONAL 構造体へのポインター。OutputRate が D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM の場合、このパラメーターは正確な出力レートを指定します。それ以外の場合、このパラメーターは無視され、NULL にできます。 |
解説(Remarks)
標準の出力レートは、通常のフレームレート (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL) と半分のフレームレート (D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF) です。さらに、ドライバーはレート変換や逆テレシネ用のカスタムレートをサポートする場合があります。カスタムレートの一覧を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCustomRate を呼び出します。
出力レートによっては、ドライバーがフレームレートを変換する必要があります。その場合、RepeatFrame の値によって、ドライバーが補間フレームを生成するか、単に入力フレームを繰り返すかが決まります。
ビデオプロセッサーの入力ストリームのソース矩形を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | ソース矩形を適用するかどうかを指定します。 |
| pRect | RECT* | inoptional | ソース矩形を指定する RECT 構造体へのポインター。Enable が FALSE の場合、このパラメーターは無視されます。 |
解説(Remarks)
ソース矩形は、出力先サーフェスへ転送 (ブリット) される入力サーフェスの領域です。ソース矩形は、入力サーフェスを基準としたピクセル座標で指定します。
このメソッドが一度も呼び出されない場合、または Enable パラメーターが FALSE の場合、ビデオプロセッサーは入力サーフェス全体から読み取ります。
ビデオプロセッサーの入力ストリームの出力先矩形を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | 出力先矩形を適用するかどうかを指定します。 |
| pRect | RECT* | inoptional | 出力先矩形を指定する RECT 構造体へのポインター。Enable が FALSE の場合、このパラメーターは無視されます。 |
解説(Remarks)
出力先矩形は、このストリームのブリットを受け取る出力サーフェスの領域です。出力先矩形は、出力サーフェスを基準としたピクセル座標で指定します。
既定の出力先矩形は空の矩形 (0, 0, 0, 0) です。このメソッドが一度も呼び出されない場合、または Enable パラメーターが FALSE の場合、このストリームからはデータが書き込まれません。
ビデオプロセッサーの入力ストリームのプレーナーアルファを設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | アルファブレンドを有効にするかどうかを指定します。 |
| Alpha | FLOAT | in | プレーナーアルファ値。値の範囲は 0.0 (透明) から 1.0 (不透明) です。 Enable が FALSE の場合、このパラメーターは無視されます。 |
解説(Remarks)
この機能を使用するには、ドライバーがステレオビデオをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALHPA_STREAM 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。
アルファブレンドは既定では無効です。
各ピクセルについて、出力先の色値は次のように計算されます。
Cd = Cs * (As * Ap * Ae) + Cd * (1.0 - As * Ap * Ae)
ここで、各項目の意味は次のとおりです。
Cd= 出力先ピクセルの色値Cs= ソースピクセルの色値As= ピクセルごとのソースアルファAp= プレーナーアルファ値Ae= パレットエントリのアルファ値、または 1.0 (注を参照)
ビデオプロセッサーの入力ストリームのカラーパレットエントリを設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Count | DWORD | in | pEntries 配列の要素数。 |
| pEntries | DWORD* | 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 を呼び出します。
ビデオプロセッサーの入力ストリームのピクセルアスペクト比を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | pSourceAspectRatio と pDestinationAspectRatio のパラメーターが有効な値を含むかどうかを指定します。含まない場合、ピクセルアスペクト比は未指定となります。 |
| pSourceAspectRatio | DXGI_RATIONAL* | inoptional | ソース矩形のピクセルアスペクト比を格納する DXGI_RATIONAL 構造体へのポインター。Enable が FALSE の場合、このパラメーターは NULL にできます。 |
| pDestinationAspectRatio | DXGI_RATIONAL* | inoptional | 出力先矩形のピクセルアスペクト比を格納する DXGI_RATIONAL 構造体へのポインター。Enable が FALSE の場合、このパラメーターは NULL にできます。 |
解説(Remarks)
この関数は、ドライバーが D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO 機能を報告する場合にのみ呼び出せます。この機能が設定されていない場合、この関数は何の効果もありません。
0/n や n/0 の形式のピクセルアスペクト比は無効です。
既定のピクセルアスペクト比は 1:1 (正方形ピクセル) です。
ビデオプロセッサーの入力ストリームのルーマキーを設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | ルーマキーを有効にするかどうかを指定します。 |
| Lower | FLOAT | in | ルーマキーの下限。有効な範囲は [0…1] です。Enable が FALSE の場合、このパラメーターは無視されます。 |
| Upper | FLOAT | in | ルーマキーの上限。有効な範囲は [0…1] です。Enable が FALSE の場合、このパラメーターは無視されます。 |
解説(Remarks)
この機能を使用するには、ドライバーがルーマキーをサポートしている必要があります。これは D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY 機能フラグで示されます。この機能を照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。さらに、入力形式が RGB の場合、デバイスは D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY 機能をサポートしている必要があります。
Lower と Upper の値は、[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] の範囲にクランプされることに注意してください。
ビデオプロセッサーの入力ストリームでステレオ 3D ビデオを有効または無効にします。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | このストリームでステレオ 3D を有効にするかどうかを指定します。値が FALSE の場合、このメソッドの残りのパラメーターは無視されます。 |
| Format | D3D11_VIDEO_PROCESSOR_STEREO_FORMAT | in | メモリ内での 2 つのステレオビューの配置を、D3D11_VIDEO_PROCESSOR_STEREO_FORMAT 値として指定します。 |
| LeftViewFrame0 | BOOL | in | TRUE の場合、フレーム 0 に左目用ビューが含まれます。それ以外の場合、フレーム 0 に右目用ビューが含まれます。 次のステレオ形式では、このパラメーターは無視されます。 |
| BaseViewFrame0 | BOOL | in | TRUE の場合、フレーム 0 にベースビューが含まれます。それ以外の場合、フレーム 1 にベースビューが含まれます。 次のステレオ形式では、このパラメーターは無視されます。
|
| FlipMode | D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE | in | いずれかのビューを反転するかどうかを指定する、D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE 列挙型のフラグ。 |
| MonoOffset | INT | in | D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET 形式の場合、このパラメーターは左目用ビューと右目用ビューの生成方法を指定します。
|
ビデオプロセッサーの自動処理機能を有効または無効にします。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | TRUE の場合、自動処理機能が有効になります。FALSE の場合、ドライバーは実行している可能性のある追加のビデオ処理を無効にします。 |
解説(Remarks)
既定では、ドライバーはビデオプロセッサーのブリット中に特定の処理を自動的に実行することがあります。このメソッドを使用すると、アプリケーションはこうした追加のビデオ処理機能を無効にできます。たとえば、ビデオプロセッサー用に独自のピクセルシェーダーを用意する場合は、ドライバーの自動処理を無効にしたいことがあります。
ビデオプロセッサーの入力ストリームに対して画像フィルターを有効または無効にします。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Filter | D3D11_VIDEO_PROCESSOR_FILTER | in | フィルター。D3D11_VIDEO_PROCESSOR_FILTER 値として指定します。 ドライバーがサポートするフィルターを照会するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出します。 |
| Enable | BOOL | in | フィルターを有効にするかどうかを指定します。 |
| Level | INT | in | フィルターレベル。Enable が FALSE の場合、このパラメーターは無視されます。 指定したフィルターの有効なレベルの範囲を調べるには、ID3D11VideoProcessorEnumerator::GetVideoProcessorFilterRange を呼び出します。 |
ビデオ処理ストリームにドライバー固有の状態を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pExtensionGuid | GUID* | in | 操作を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。 |
| DataSize | DWORD | in | pData バッファーのサイズ (バイト単位)。 |
| pData | void* | in | プライベートな状態データを格納するバッファーへのポインター。メソッドはこのバッファーを検証せずにドライバーへ直接渡します。データの検証はドライバーの責任です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ビデオプロセッサーの入力ストリームの形式を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pFrameFormat | D3D11_VIDEO_FRAME_FORMAT* | out | ストリームがインターレースフレームとプログレッシブフレームのどちらを含むかを示す D3D11_VIDEO_FRAME_FORMAT 値を受け取ります。 |
ビデオプロセッサーの入力ストリームの色空間を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pColorSpace | D3D11_VIDEO_PROCESSOR_COLOR_SPACE* | out | 色空間を指定する D3D11_VIDEO_PROCESSOR_COLOR_SPACE 値を受け取ります。 |
ビデオプロセッサーが入力ストリームに対して出力フレームを生成するレートを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 | ||||||
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 | ||||||
| pOutputRate | D3D11_VIDEO_PROCESSOR_OUTPUT_RATE* | out | 出力レートを示す D3D11_VIDEO_PROCESSOR_OUTPUT_RATE 値を受け取ります。 | ||||||
| pRepeatFrame | BOOL* | out | フレームレート変換が必要な場合に、ドライバーがどのように変換を行うかを示すブール値を受け取ります。
| ||||||
| pCustomRate | DXGI_RATIONAL* | out | DXGI_RATIONAL 構造体へのポインター。出力レートが D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM の場合、メソッドはこの構造体に正確な出力レートを格納します。それ以外の場合、このパラメーターは無視されます。 |
ビデオプロセッサーの入力ストリームのソース矩形を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnabled | BOOL* | out | ソース矩形が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
| pRect | RECT* | out | ソース矩形を受け取る RECT 構造体へのポインター。 |
ビデオプロセッサーの入力ストリームの出力先矩形を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnabled | BOOL* | out | 出力先矩形が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
| pRect | RECT* | out | 出力先矩形を受け取る RECT 構造体へのポインター。 |
ビデオプロセッサーの入力ストリームのプレーナーアルファを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnabled | BOOL* | out | プレーナーアルファが有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
| pAlpha | FLOAT* | out | プレーナーアルファ値を受け取ります。値の範囲は 0.0 (透明) から 1.0 (不透明) です。 |
ビデオプロセッサーの入力ストリームのカラーパレットエントリを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Count | DWORD | in | pEntries 配列のエントリ数。 |
| pEntries | DWORD* | out | 呼び出し元が割り当てた UINT 配列へのポインター。メソッドはこの配列にパレットエントリを格納します。RGB ストリームの場合、パレットエントリは DXGI_FORMAT_B8G8R8A8 表現を使用します。YCbCr ストリームの場合、パレットエントリは DXGI_FORMAT_AYUV 表現を使用します。 |
解説(Remarks)
このメソッドは、パレット化された色形式を持つ入力ストリームにのみ適用されます。4 ビット/ピクセル (bpp) のパレット形式では 16 個のパレットエントリが使用されます。8 bpp の形式では 256 個のエントリが使用されます。
ビデオプロセッサーの入力ストリームのピクセルアスペクト比を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnabled | BOOL* | out | ピクセルアスペクト比が指定されている場合は TRUE を受け取ります。それ以外の場合は FALSE を受け取ります。 |
| pSourceAspectRatio | DXGI_RATIONAL* | out | DXGI_RATIONAL 構造体へのポインター。*pEnabled が TRUE の場合、このパラメーターはソース矩形のピクセルアスペクト比を受け取ります。 |
| pDestinationAspectRatio | DXGI_RATIONAL* | out | DXGI_RATIONAL 構造体へのポインター。*pEnabled が TRUE の場合、このパラメーターは出力先矩形のピクセルアスペクト比を受け取ります。 |
解説(Remarks)
メソッドから戻ったとき、*pEnabled が TRUE であれば、pSourceAspectRatio と pDestinationAspectRatio のパラメーターにピクセルアスペクト比が格納されています。それ以外の場合、既定のピクセルアスペクト比は 1:1 (正方形ピクセル) です。
ビデオプロセッサーの入力ストリームのルーマキーを取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnabled | BOOL* | out | ルーマキーが有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
| pLower | FLOAT* | out | ルーマキーの下限を受け取ります。有効な範囲は [0…1] です。 |
| pUpper | FLOAT* | out | ルーマキーの上限を受け取ります。有効な範囲は [0…1] です。 |
ビデオプロセッサーの入力ストリームのステレオ 3D 形式を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 | ||||||
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 | ||||||
| pEnable | BOOL* | out | このストリームでステレオ 3D が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。値が FALSE の場合、残りのパラメーターは無視してください。 | ||||||
| pFormat | D3D11_VIDEO_PROCESSOR_STEREO_FORMAT* | out | メモリ内での 2 つのステレオビューの配置を示す D3D11_VIDEO_PROCESSOR_STEREO_FORMAT 値を受け取ります。 | ||||||
| pLeftViewFrame0 | BOOL* | out | ブール値を受け取ります。
| ||||||
| pBaseViewFrame0 | BOOL* | out | ブール値を受け取ります。
| ||||||
| pFlipMode | D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE* | out | D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE 値を受け取ります。この値は、いずれかのビューが反転されているかどうかを示します。 | ||||||
| MonoOffset | INT* | out | D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET 形式で使用されるピクセルオフセットを受け取ります。他のステレオ形式では、このパラメーターは無視されます。 |
ビデオプロセッサーの自動処理機能が有効かどうかを照会します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnabled | BOOL* | out | 自動処理機能が有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
解説(Remarks)
自動処理とは、アプリケーションがデータを受け取る前に、ドライバーが画像データに対して実行した可能性のある追加の画像処理を指します。
ビデオプロセッサーの入力ストリームの画像フィルター設定を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Filter | D3D11_VIDEO_PROCESSOR_FILTER | in | 照会するフィルター。D3D11_VIDEO_PROCESSOR_FILTER 値として指定します。 |
| pEnabled | BOOL* | out | 画像フィルターが有効な場合は TRUE を、それ以外の場合は FALSE を受け取ります。 |
| pLevel | INT* | out | フィルターレベルを受け取ります。 |
ビデオ処理ストリームのドライバー固有の状態を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pExtensionGuid | GUID* | in | 状態を識別する GUID へのポインター。この GUID の意味はグラフィックスドライバーによって定義されます。 |
| DataSize | DWORD | in | pData バッファーのサイズ (バイト単位)。 |
| pData | void* | out | プライベートな状態データを受け取るバッファーへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
1 つ以上の入力サンプルに対してビデオ処理操作を実行し、その結果を Direct3D サーフェスに書き込みます。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor メソッドを呼び出します。 |
| pView | ID3D11VideoProcessorOutputView* | in | 出力サーフェスの ID3D11VideoProcessorOutputView インターフェイスへのポインター。ビデオ処理操作の出力は、このサーフェスに書き込まれます。 |
| OutputFrame | DWORD | in | 出力ビデオフレームのフレーム番号 (0 から始まります)。 |
| StreamCount | DWORD | in | 処理する入力ストリームの数。 |
| pStreams | D3D11_VIDEO_PROCESSOR_STREAM* | in | 入力ストリームの情報を格納する D3D11_VIDEO_PROCESSOR_STREAM 構造体の配列へのポインター。呼び出し元が配列を割り当て、各構造体に値を設定します。配列の要素数は StreamCount パラメーターで指定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
StreamCount の最大値は、D3D11_VIDEO_PROCESSOR_CAPS 構造体の MaxStreamStates メンバーで示されます。同時に有効にできるストリームの最大数は、同じ構造体の MaxInputStreams メンバーで示されます。
出力ステレオモードが TRUE の場合:
- 出力ビューは 2 要素のテクスチャ配列を含む必要があります。
- 少なくとも 1 つのステレオストリームを指定する必要があります。
- 複数の入力ストリームが有効な場合、その一部がモノラルデータを含むことがあります。
- 出力ビューは単一の要素を含む必要があります。
- ステレオ形式を D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO にすることはできません。
アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。
暗号化セッションのセッションキーを確立します。
| pCryptoSession | ID3D11CryptoSession* | in | 暗号化セッションの ID3D11CryptoSession インターフェイスへのポインター。 |
| DataSize | DWORD | in | pData バイト配列のサイズ (バイト単位)。 |
| pData | void* | inout | 暗号化されたセッションキーを格納するバイト配列へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
キー交換の仕組みは、暗号化セッションの種類によって異なります。
RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) の場合、ソフトウェアデコーダーはシークレットキーを生成し、公開キーを使用して RSAES-OAEP でシークレットキーを暗号化し、その暗号文を pData パラメーターに格納します。RSAES-OAEP でのバッファーの実際のサイズは 256 バイトです。
保護されたサーフェスから暗号化されたデータを読み取ります。(ID3D11VideoContext.EncryptionBlt)
| pCryptoSession | ID3D11CryptoSession* | in | 暗号化セッションの ID3D11CryptoSession インターフェイスへのポインター。 |
| pSrcSurface | ID3D11Texture2D* | in | 保護されたサーフェスの ID3D11Texture2D インターフェイスへのポインター。 |
| pDstSurface | ID3D11Texture2D* | in | 暗号化されたデータを受け取るサーフェスの ID3D11Texture2D インターフェイスへのポインター。 |
| IVSize | DWORD | in | pIV バッファーのサイズ (バイト単位)。 |
| pIV | void* | inoutoptional | 初期化ベクター (IV) を受け取るバッファーへのポインター。このバッファーは呼び出し元が割り当てますが、IV を生成するのはドライバーです。 128 ビット AES-CTR 暗号化の場合、pIV は D3D11_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_USAGE_STAGING リソースである必要があります。
- 保護されたサーフェスをマルチサンプルにすることはできません。
- 拡大縮小と色空間変換はサポートされません。
この関数は、設定されている可能性のある D3D11 述語 (predicate) を考慮しません。
アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。
保護されたサーフェスに暗号化されたデータを書き込みます。(ID3D11VideoContext.DecryptionBlt)
| pCryptoSession | ID3D11CryptoSession* | in | ID3D11CryptoSession インターフェイスへのポインター。 |
| pSrcSurface | ID3D11Texture2D* | in | ソースデータを格納するサーフェスへのポインター。 |
| pDstSurface | ID3D11Texture2D* | in | 暗号化されたデータの書き込み先となる保護されたサーフェスへのポインター。 |
| pEncryptedBlockInfo | D3D11_ENCRYPTED_BLOCK_INFO* | inoptional | D3D11_ENCRYPTED_BLOCK_INFO 構造体へのポインター、または NULL。 ドライバーが部分的に暗号化されたバッファーをサポートする場合、pEncryptedBlockInfo はバッファーのどの部分が暗号化されているかを示します。サーフェス全体が暗号化されている場合は、このパラメーターを NULL に設定します。 ドライバーが部分的に暗号化されたバッファーをサポートするかどうかを確認するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION 機能フラグがあるかどうかを確認します。ドライバーが部分的に暗号化されたバッファーをサポートしない場合は、このパラメーターを NULL に設定します。 |
| ContentKeySize | DWORD | in | 暗号化されたコンテンツキーのサイズ (バイト単位)。 |
| pContentKey | void* | inoptional | コンテンツ暗号化キーを格納するバッファーへのポインター、または NULL。ドライバーがコンテンツキーの使用をサポートするかどうかを照会するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY 機能フラグがあるかどうかを確認します。 ドライバーがコンテンツキーをサポートする場合は、コンテンツキーを使用してサーフェスを暗号化します。コンテンツキーはセッションキーを使用して暗号化し、その暗号文を pContentKey に格納します。ドライバーがコンテンツキーをサポートしない場合は、セッションキーを使用してサーフェスを暗号化し、pContentKey を NULL に設定します。 |
| IVSize | DWORD | in | pIV バッファーのサイズ (バイト単位)。 |
| pIV | void* | inoutoptional | 初期化ベクター (IV) を格納するバッファーへのポインター。 128 ビット AES-CTR 暗号化の場合、pIV は D3D11_AES_CTR_IV 構造体を指します。呼び出し元が構造体を割り当て、IV を生成します。最初の IV を生成する際は、構造体を乱数で初期化します。以降の IV では、構造体の IV メンバーをインクリメントするだけで、値が常に増加するようにします。この手順により、ドライバーは同じキーペアに対して同じ IV が 2 回以上使用されないことを検証できます。 他の暗号化方式では、別の構造体が使用される場合や、IV を使用しない場合があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
すべてのハードウェアやドライバーが、すべての暗号化方式についてこの機能をサポートしているわけではありません。この関数は、D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT 機能が報告されている場合にのみ呼び出せます。
このメソッドは、サーフェスのサブ矩形への書き込みをサポートしません。
ハードウェアとドライバーがコンテンツキーをサポートする場合:
- データは呼び出し元がコンテンツキーを使用して暗号化します。
- コンテンツキーは呼び出し元がセッションキーを使用して暗号化します。
- 暗号化されたコンテンツキーがドライバーに渡されます。
ドライバーとハードウェアが部分的に暗号化されたバッファーをサポートする場合、pEncryptedBlockInfo はバッファーのどの部分が暗号化され、どの部分が暗号化されていないかを示します。バッファー全体が暗号化されている場合、pEncryptedBlockinfo は NULL にしてください。
D3D11_ENCRYPTED_BLOCK_INFO により、アプリケーションはバッファー内のどのバイトが暗号化されているかを示せます。これはバイト単位で指定されるため、アプリケーションは暗号化ブロックが GPU の暗号ブロックのアライメントに一致するようにする必要があります。
この関数は、設定されている可能性のある D3D11 述語 (predicate) を考慮しません。
アプリケーションが D3D11 クエリ を使用する場合、機能レベル 11 未満では、この関数は D3D11_QUERY_EVENT および D3D11_QUERY_TIMESTAMP に計上されないことがあります。D3D11_QUERY_PIPELINE_STATISTICS は、いずれの機能レベルでもこの関数を含みません。
セッションキーの更新に使用できる乱数を取得します。(ID3D11VideoContext.StartSessionKeyRefresh)
| pCryptoSession | ID3D11CryptoSession* | in | ID3D11CryptoSession インターフェイスへのポインター。 |
| RandomNumberSize | DWORD | in | pRandomNumber 配列のサイズ (バイト単位)。サイズはセッションキーのサイズと一致させる必要があります。 |
| pRandomNumber | void* | out | 乱数を受け取るバイト配列へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
新しいセッションキーを生成するには、以前のセッションキーと乱数のビット単位の XOR を計算します。新しいセッションキーは、アプリケーションが ID3D11VideoContext::FinishSessionKeyRefresh を呼び出すまで有効になりません。
ドライバーがこのメソッドをサポートするかどうかを照会するには、ID3D11VideoDevice::GetContentProtectionCaps を呼び出し、D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY 機能フラグがあるかどうかを確認します。
新しいセッションキーに切り替えます。(ID3D11VideoContext.FinishSessionKeyRefresh)
| pCryptoSession | ID3D11CryptoSession* | in | ID3D11CryptoSession インターフェイスへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
この関数は、D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY 機能が報告されている場合にのみ呼び出せます。
このメソッドを呼び出す前に、ID3D11VideoContext::StartSessionKeyRefresh を呼び出します。StartSessionKeyRefresh メソッドはドライバーから乱数を取得し、その乱数を使用して新しいセッションキーを作成します。新しいセッションキーは、アプリケーションが FinishSessionKeyRefresh を呼び出すまで有効になりません。アプリケーションが FinishSessionKeyRefresh を呼び出した後は、保護されたすべてのサーフェスが新しいセッションキーで暗号化されます。
ID3D11VideoContext::EncryptionBlt メソッドが返すデータを復号するための暗号キーを取得します。
| pCryptoSession | ID3D11CryptoSession* | in | ID3D11CryptoSession インターフェイスへのポインター。 |
| KeySize | DWORD | in | pReadbackKey 配列のサイズ (バイト単位)。サイズはセッションキーのサイズと一致させる必要があります。 |
| pReadbackKey | void* | out | キーを受け取るバイト配列へのポインター。キーはセッションキーで暗号化されています。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、ドライバーが EncryptionBlt メソッド用に別個のコンテンツキーを必要とする場合にのみ適用されます。詳細については、EncryptionBlt の「解説」を参照してください。
このメソッドを呼び出すたびに、ドライバーは新しいキーを生成します。
KeySize はセッションキーのサイズと一致させる必要があります。
読み戻し用のキーは、ドライバー/ハードウェアによってセッションキーで暗号化されます。
認証済みチャネルのセッションキーを確立します。
| pChannel | ID3D11AuthenticatedChannel* | in | ID3D11AuthenticatedChannel インターフェイスへのポインター。チャネルの種類が D3D11_AUTHENTICATED_CHANNEL_D3D11 の場合、Direct3D11 チャネルは認証をサポートしないため、このメソッドは失敗します。 |
| DataSize | DWORD | in | pData 配列内のデータのサイズ (バイト単位)。 |
| pData | void* | inout | 暗号化されたセッションキーを格納するバイト配列へのポインター。バッファーには、RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) で暗号化された 256 バイトのデータを格納する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
チャネルの種類が D3D11_AUTHENTICATED_CHANNEL_D3D11 の場合、Direct3D11 チャネルは認証をサポートしないため、このメソッドは失敗します。
認証済みチャネルにクエリを送信します。
| pChannel | ID3D11AuthenticatedChannel* | in | ID3D11AuthenticatedChannel インターフェイスへのポインター。 |
| InputSize | DWORD | in | pInput 配列のサイズ (バイト単位)。 |
| pInput | void* | in | クエリの入力データを格納するバイト配列へのポインター。この配列は常に D3D11_AUTHENTICATED_QUERY_INPUT 構造体で始まります。構造体の QueryType メンバーがクエリを指定し、配列の残りの部分の意味を定義します。 |
| OutputSize | DWORD | in | pOutput 配列のサイズ (バイト単位)。 |
| pOutput | void* | out | クエリの結果を受け取るバイト配列へのポインター。この配列は常に D3D11_AUTHENTICATED_QUERY_OUTPUT 構造体で始まります。配列の残りの部分の意味は、クエリによって異なります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
認証済みチャネルに構成コマンドを送信します。
| pChannel | ID3D11AuthenticatedChannel* | in | ID3D11AuthenticatedChannel インターフェイスへのポインター。 |
| InputSize | DWORD | in | pInput 配列のサイズ (バイト単位)。 |
| pInput | void* | in | コマンドの入力データを格納するバイト配列へのポインター。このバッファーは常に D3D11_AUTHENTICATED_CONFIGURE_INPUT 構造体で始まります。構造体の ConfigureType メンバーがコマンドを指定し、バッファーの残りの部分の意味を定義します。 |
| pOutput | D3D11_AUTHENTICATED_CONFIGURE_OUTPUT* | out | コマンドへの応答を受け取る D3D11_AUTHENTICATED_CONFIGURE_OUTPUT 構造体へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
ビデオプロセッサーの入力ストリームのストリーム回転を設定します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| Enable | BOOL | in | ストリームを時計回りに回転させるかどうかを指定します。 |
| Rotation | D3D11_VIDEO_PROCESSOR_ROTATION | in | ストリームの回転を指定します。 |
解説(Remarks)
これは省略可能な状態であり、D3D11_VIDEO_PROCESSOR_CAPS.FeatureCaps に D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION が報告されている場合にのみ、アプリケーションはこれを使用してください。
ストリームのソース矩形は回転前の座標 (通常は横向き) で指定し、ストリームの出力先矩形は回転後の座標 (通常は縦向き) で指定します。0° と 180° 以外の回転値を使用する場合、アプリケーションはストリームの出力先矩形を正しく更新する必要があります。
ビデオプロセッサーの入力ストリームのストリーム回転を取得します。
| pVideoProcessor | ID3D11VideoProcessor* | in | ID3D11VideoProcessor インターフェイスへのポインター。このポインターを取得するには、ID3D11VideoDevice::CreateVideoProcessor を呼び出します。 |
| StreamIndex | DWORD | in | 入力ストリームの 0 から始まるインデックス。ストリームの最大数を取得するには、ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps を呼び出し、MaxStreamStates 構造体メンバーを確認します。 |
| pEnable | BOOL* | out | ストリームが回転されているかどうかを示します。 |
| pRotation | D3D11_VIDEO_PROCESSOR_ROTATION* | out | 時計回りでのストリームの回転を示します。 |
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 指定が可能。#define global IID_ID3D11VideoContext "{61F21C45-3C0E-4A74-9CEA-67100D9AD5E4}" #usecom global ID3D11VideoContext IID_ID3D11VideoContext "{}" #comfunc global ID3D11VideoContext_GetDecoderBuffer 7 sptr,int,sptr,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,sptr #comfunc global ID3D11VideoContext_DecoderExtension 12 sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetOutputTargetRect 13 sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor 14 sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetOutputColorSpace 15 sptr,sptr #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,sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputTargetRect 20 sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor 21 sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputColorSpace 22 sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode 23 sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputConstriction 24 sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputStereoMode 25 sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetOutputExtension 26 sptr,sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamFrameFormat 27 sptr,int,int #comfunc global ID3D11VideoContext_VideoProcessorSetStreamColorSpace 28 sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamOutputRate 29 sptr,int,int,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamSourceRect 30 sptr,int,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamDestRect 31 sptr,int,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamAlpha 32 sptr,int,int,float #comfunc global ID3D11VideoContext_VideoProcessorSetStreamPalette 33 sptr,int,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio 34 sptr,int,int,sptr,sptr #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,sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamFrameFormat 40 sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamColorSpace 41 sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamOutputRate 42 sptr,int,sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamSourceRect 43 sptr,int,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamDestRect 44 sptr,int,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamAlpha 45 sptr,int,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamPalette 46 sptr,int,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio 47 sptr,int,sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamLumaKey 48 sptr,int,sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamStereoFormat 49 sptr,int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode 50 sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamFilter 51 sptr,int,int,sptr,sptr #comfunc global ID3D11VideoContext_VideoProcessorGetStreamExtension 52 sptr,int,sptr,int,sptr #comfunc global ID3D11VideoContext_VideoProcessorBlt 53 sptr,sptr,int,int,sptr #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,sptr,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,sptr #comfunc global ID3D11VideoContext_VideoProcessorSetStreamRotation 63 sptr,int,int,int #comfunc global ID3D11VideoContext_VideoProcessorGetStreamRotation 64 sptr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。