ID3D11VideoContext::D ecoderBeginFrame メソッド (d3d11.h)

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

構文

HRESULT DecoderBeginFrame(
  [in] ID3D11VideoDecoder           *pDecoder,
  [in] ID3D11VideoDecoderOutputView *pView,
  [in] UINT                         ContentKeySize,
  [in] const void                   *pContentKey
);

パラメーター

[in] pDecoder

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

[in] pView

ID3D11VideoDecoderOutputView インターフェイスへのポインター。 このインターフェイスでは、デコードされたフレームを受け取るリソースについて説明します。 このポインターを取得するには、 ID3D11VideoDevice::CreateVideoDecoderOutputView を呼び出します。

[in] ContentKeySize

pContentKey で指定されたコンテンツ キーのサイズ。 pContentKey が NULL の場合は、ContentKeySize を 0 に設定します。

[in] pContentKey

フレーム データの暗号化に使用されたコンテンツ キーへのオプションのポインター。 コンテンツ キーが使用されなかった場合は、このパラメーターを NULL に設定します。 呼び出し元がコンテンツ キーを提供する場合、呼び出し元はセッション キーを使用してコンテンツ キーを暗号化する必要があります。

戻り値

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。 ハードウェア がビジー状態の場合、 D3DERR_WASSTILLDRAWINGまたはE_PENDING が返されます。その場合、デコーダーは再度呼び出しを試みる必要があります。

注釈

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

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

コンテンツ キーを使用すると、次の暗号化シナリオがサポートされます。

  • デコーダーは、すべてのフレームを暗号化しないことを選択できます。たとえば、I フレームのみを暗号化し、P/B フレームを暗号化することはできません。 これらのシナリオでは、デコーダーは暗号化しないフレームに pContentKey = NULL と ContentKeySize = 0 を指定します。
  • デコーダーは、セッション キーを使用して圧縮バッファーを暗号化することを選択できます。 このシナリオでは、デコーダーは、すべてのゼロを含むコンテンツ キーを指定します。
  • デコーダーは、別のコンテンツ キーを使用して圧縮バッファーを暗号化することを選択できます。 このシナリオでは、デコーダーはセッション キーを使用してコンテンツ キーを ECB で暗号化し、暗号化されたコンテンツ キーを渡します。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d3d11.h

こちらもご覧ください

ID3D11VideoContext