次の方法で共有


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 アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー d3d11.h

関連項目

ID3D11VideoContext