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
[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。
- 譯碼器可以選擇使用會話密鑰加密壓縮的緩衝區。 在此案例中,譯碼器會指定包含所有零的內容索引鍵。
- 譯碼器可以選擇使用個別的內容密鑰來加密壓縮的緩衝區。 在此案例中,譯碼器會使用會話密鑰加密內容金鑰,並傳遞加密的內容密鑰。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平臺 | 窗戶 |
標頭 | d3d11.h |