Share via


ID3D11VideoContext ::D ecoderBeginFrame, méthode (d3d11.h)

Démarre une opération de décodage pour décoder une image vidéo.

Syntaxe

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

Paramètres

[in] pDecoder

Pointeur vers l’interface ID3D11VideoDecoder . Pour obtenir ce pointeur, appelez ID3D11VideoDevice ::CreateVideoDecoder.

[in] pView

Pointeur vers l’interface ID3D11VideoDecoderOutputView . Cette interface décrit la ressource qui recevra le cadre décodé. Pour obtenir ce pointeur, appelez ID3D11VideoDevice ::CreateVideoDecoderOutputView.

[in] ContentKeySize

Taille de la clé de contenu spécifiée dans pContentKey. Si pContentKey a la valeur NULL, définissez ContentKeySize sur zéro.

[in] pContentKey

Pointeur facultatif vers une clé de contenu utilisée pour chiffrer les données de trame. Si aucune clé de contenu n’a été utilisée, définissez ce paramètre sur NULL. Si l’appelant fournit une clé de contenu, l’appelant doit utiliser la clé de session pour chiffrer la clé de contenu.

Valeur retournée

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT. D3DERR_WASSTILLDRAWING ou E_PENDING est retourné si le matériel est occupé, auquel cas le décodeur doit essayer de refaire l’appel.

Remarques

Une fois cette méthode appelée, appelez ID3D11VideoContext ::SubmitDecoderBuffers pour effectuer des opérations de décodage. Une fois toutes les opérations de décodage exécutées, appelez ID3D11VideoContext ::D ecoderEndFrame.

Chaque appel à DecoderBeginFrame doit avoir un appel correspondant à DecoderEndFrame. Dans la plupart des cas, vous ne pouvez pas imbriquer les appels DecoderBeginFrame , mais certains codecs, tels que VC-1, peuvent avoir imbriqué des appels DecoderBeginFrame pour des opérations spéciales telles que le post-traitement.

Les scénarios de chiffrement suivants sont pris en charge via la clé de contenu :

  • Le décodeur peut choisir de ne pas chiffrer chaque trame, par exemple, il peut uniquement chiffrer les trames I et ne pas chiffrer les trames P/B. Dans ce scénario, le décodeur spécifie pContentKey = NULL et ContentKeySize = 0 pour les images qu’il ne chiffre pas.
  • Le décodeur peut choisir de chiffrer les mémoires tampons compressées à l’aide de la clé de session. Dans ce scénario, le décodeur spécifie une clé de contenu contenant tous les zéros.
  • Le décodeur peut choisir de chiffrer les mémoires tampons compressées à l’aide d’une clé de contenu distincte. Dans ce scénario, le décodeur chiffre la clé de contenu à l’aide de la clé de session et transmet la clé de contenu chiffrée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d3d11.h

Voir aussi

ID3D11VideoContext