共用方式為


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 設為零。

[in] pContentKey

用來加密框架數據之內容金鑰的選擇性指標。 如果未使用任何內容金鑰,請將此參數設定為 NULL。 如果呼叫端提供內容密鑰,呼叫端必須使用會話密鑰來加密內容密鑰。

傳回值

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。 如果硬體忙碌,則會傳回 D3DERR_WASSTILLDRAWINGE_PENDING,在此情況下譯碼器應該嘗試再次進行呼叫。

言論

呼叫此方法之後,呼叫 ID3D11VideoContext::SubmitDecoderBuffers 來執行譯碼作業。 當所有譯碼作業都已執行時,請呼叫 ID3D11VideoContext::D ecoderEndFrame

DecoderBeginFrame 的每個呼叫 都必須有相對應的呼叫,DecoderEndFrame。 在大部分情況下,您無法巢狀 DecoderBeginFrame 呼叫,但某些編解碼器,例如 VC-1,可以有巢狀 DecoderBeginFrame 呼叫,例如後續處理等特殊作業。

透過內容金鑰支援下列加密案例:

  • 譯碼器可以選擇不加密每個畫面,例如,它只能加密 I 畫面格,而不是加密 P/B 畫面格。 在這些案例中,譯碼器會針對未加密的畫面指定 pContentKey = NULL 和 ContentKeySize = 0。
  • 譯碼器可以選擇使用會話密鑰加密壓縮的緩衝區。 在此案例中,譯碼器會指定包含所有零的內容索引鍵。
  • 譯碼器可以選擇使用個別的內容密鑰來加密壓縮的緩衝區。 在此案例中,譯碼器會使用會話密鑰加密內容金鑰,並傳遞加密的內容密鑰。

要求

要求 價值
最低支援的用戶端 Windows 8 [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2012 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 d3d11.h

另請參閱

ID3D11VideoContext