Condividi tramite


Metodo ID3D11VideoContext::D ecoderBeginFrame (d3d11.h)

Avvia un'operazione di decodifica per decodificare un fotogramma video.

Sintassi

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

Parametri

[in] pDecoder

Puntatore all'interfaccia ID3D11VideoDecoder . Per ottenere questo puntatore, chiamare ID3D11VideoDevice::CreateVideoDecoder.

[in] pView

Puntatore all'interfaccia ID3D11VideoDecoderOutputView. Questa interfaccia descrive la risorsa che riceverà il frame decodificato. Per ottenere questo puntatore, chiamare ID3D11VideoDevice::CreateVideoDecoderOutputView.

[in] ContentKeySize

Dimensione della chiave simmetrica specificata in pContentKey. Se pContentKey è NULL, impostare ContentKeySize su zero.

[in] pContentKey

Puntatore facoltativo a una chiave simmetrica usata per crittografare i dati del frame. Se non è stata usata alcuna chiave simmetrica, impostare questo parametro su NULL. Se il chiamante fornisce una chiave simmetrica, il chiamante deve usare la chiave di sessione per crittografare la chiave simmetrica.

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT. D3DERR_WASSTILLDRAWING o E_PENDING viene restituito se l'hardware è occupato, nel qual caso il decodificatore deve tentare di eseguire di nuovo la chiamata.

Osservazioni

Dopo aver chiamato questo metodo, chiamare ID3D11VideoContext::SubmitDecoderBuffers per eseguire operazioni di decodifica. Quando tutte le operazioni di decodifica sono state eseguite, chiamare ID3D11VideoContext::D ecoderEndFrame.

Ogni chiamata a DecoderBeginFrame deve avere una chiamata corrispondente a DecoderEndFrame. Nella maggior parte dei casi non è possibile annidare decoderBeginFrame chiamate, ma alcuni codec, ad esempio VC-1, possono avere decodificatoreBeginFrame annidato chiamate per operazioni speciali come post-elaborazione.

Gli scenari di crittografia seguenti sono supportati tramite la chiave simmetrica:

  • Il decodificatore può scegliere di non crittografare ogni fotogramma, ad esempio può crittografare solo i fotogrammi I e non crittografare i fotogrammi P/B. In questo scenario, il decodificatore specifica pContentKey = NULL e ContentKeySize = 0 per i fotogrammi che non crittografa.
  • Il decodificatore può scegliere di crittografare i buffer compressi usando la chiave di sessione. In questo scenario, il decodificatore specifica una chiave simmetrica contenente tutti gli zeri.
  • Il decodificatore può scegliere di crittografare i buffer compressi usando una chiave simmetrica separata. In questo scenario, il decodificatore crittograferà la chiave simmetrica usando la chiave di sessione e passerà la chiave simmetrica crittografata.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8 [app desktop | App UWP]
server minimo supportato Windows Server 2012 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione d3d11.h

Vedere anche

ID3D11VideoContext