Partager via


Fourniture de fonctionnalités pour le décodage vidéo

Comment interroger les fonctionnalités de décodage vidéo

Pour interroger les fonctionnalités de décodage vidéo d’un pilote d’affichage en mode utilisateur (UMD), le runtime D3D appelle la fonction GetCaps de l’UMD avec l’un des types de requête suivants spécifiés dans le membre Type de la structure D3DDDIARG_GETCAPS passée à GetCaps :

  • D3DDDICAPS_GETDECODEGUIDCOUNT
  • D3DDDICAPS_GETDECODEGUIDS
  • D3DDDICAPS_GETDECODERTFORMATCOUNT
  • D3DDDICAPS_GETDECODERTFORMATS
  • D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNT
  • D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFO
  • D3DDDICAPS_GETDECODECONFIGURATIONCOUNT
  • D3DDDICAPS_GETDECODECONFIGURATIONS

GetCaps retourne ce qui suit :

  • Fonctionnalités de l’UMD pour le type de requête, dans la mémoire tampon vers laquelle pointe le membre pData de D3DDDIARG_GETCAPS . L’UMD doit allouer une mémoire tampon suffisamment grande pour contenir les fonctionnalités.
  • Taille (en octets) de la mémoire tampon contenant les fonctionnalités, dans DataSize.

Les sous-rubriques suivantes répertorient les types de requêtes possibles et les fonctionnalités de décodage vidéo associées.

types de requêtes D3DDDICAPS_GETDECODEGUIDCOUNT et D3DDDICAPS_GETDECODEGUIDS

Le runtime Direct3D appelle GetCaps pour demander le nombre de GUID, puis appelle à nouveau GetCaps avec une requête pour obtenir la liste des GUID pris en charge. L’UMD retourne le nombre, puis la liste des GUID de la liste suivante qu’il prend en charge pour le décodage d’accélération vidéo (VA). D3DDDIARG_GETCAPS. Le membre pInfo a la valeur NULL pour ces deux types de requête.

DEFINE_GUID(DXVADDI_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0, 0x4563,0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);
DEFINE_GUID(DXVADDI_ModeMPEG2_IDCT,   0xbf22ad00, 0x03ea, 0x4690,0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);
DEFINE_GUID(DXVADDI_ModeMPEG2_VLD,    0xee27417f, 0x5e28, 0x4e65,0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);

DEFINE_GUID(DXVADDI_ModeH264_A,  0x1b81be64, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeH264_B,  0x1b81be65, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeH264_C,  0x1b81be66, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeH264_D,  0x1b81be67, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeH264_E,  0x1b81be68, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeH264_F,  0x1b81be69, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);

DEFINE_GUID(DXVADDI_ModeWMV8_A,  0x1b81be80, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeWMV8_B,  0x1b81be81, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);

DEFINE_GUID(DXVADDI_ModeWMV9_A,  0x1b81be90, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeWMV9_B,  0x1b81be91, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeWMV9_C,  0x1b81be94, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);

DEFINE_GUID(DXVADDI_ModeVC1_A,   0x1b81beA0, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeVC1_B,   0x1b81beA1, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeVC1_C,   0x1b81beA2, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
DEFINE_GUID(DXVADDI_ModeVC1_D,   0x1b81beA3, 0xa0c7, 0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);

#define DXVADDI_ModeMPEG2_MOCOMP  DXVADDI_ModeMPEG2_MoComp

#define DXVADDI_ModeWMV8_PostProc  DXVADDI_ModeWMV8_A
#define DXVADDI_ModeWMV8_MoComp  DXVADDI_ModeWMV8_B

#define DXVADDI_ModeWMV9_PostProc  DXVADDI_ModeWMV9_A
#define DXVADDI_ModeWMV9_MoComp  DXVADDI_ModeWMV9_B
#define DXVADDI_ModeWMV9_IDCT  DXVADDI_ModeWMV9_C

#define DXVADDI_ModeVC1_PostProc  DXVADDI_ModeVC1_A
#define DXVADDI_ModeVC1_MoComp  DXVADDI_ModeVC1_B
#define DXVADDI_ModeVC1_IDCT  DXVADDI_ModeVC1_C
#define DXVADDI_ModeVC1_VLD  DXVADDI_ModeVC1_D

#define DXVADDI_ModeH264_MoComp_NoFGT  DXVADDI_ModeH264_A
#define DXVADDI_ModeH264_MoComp_FGT  DXVADDI_ModeH264_B
#define DXVADDI_ModeH264_IDCT_NoFGT  DXVADDI_ModeH264_C
#define DXVADDI_ModeH264_IDCT_FGT  DXVADDI_ModeH264_D
#define DXVADDI_ModeH264_VLD_NoFGT  DXVADDI_ModeH264_E
#define DXVADDI_ModeH264_VLD_FGT  DXVADDI_ModeH264_F

types de requêtes D3DDDICAPS_GETDECODERTFORMATCOUNT et D3DDDICAPS_GETDECODERTFORMATS

Le runtime Direct3D spécifie le GUID d’un type de décodage Va DirectX particulier dans une variable vers laquelle pointe le membre pInfo de D3DDDIARG_GETCAPS . L’UMD retourne le nombre, puis la liste des formats cibles de rendu qu’il prend en charge pour un type de décodage Va DirectX particulier.

types de requêtes D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNT et D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFO

Le runtime Direct3D spécifie une structure DXVADDI_DECODEINPUT pour un type de décodage Va DirectX particulier dans une variable vers laquelle pointe le membre pInfo de D3DDDIARG_GETCAPS . L’UMD retourne le nombre et les informations sur les types de mémoire tampon compressés nécessaires pour accélérer le décodage vidéo. L’UMD retourne des informations sur les types de mémoire tampon compressée dans un tableau de structures DXVADDI_DECODEBUFFERINFO que le membre pData de D3DDDIARG_GETCAPS spécifie.

types de requêtes D3DDDICAPS_GETDECODECONFIGURATIONCOUNT et D3DDDICAPS_GETDECODECONFIGURATIONS

Le runtime Direct3D spécifie une structure DXVADDI_DECODEINPUT pour un type de décodage Va DirectX particulier dans une variable vers laquelle pointe le membre pInfo de D3DDDIARG_GETCAPS. L’UMD retourne le nombre et la liste des configurations de décodage accélérées qu’il prend en charge pour un type de décodage DirectX VA particulier. L’UMD retourne des configurations de décodage accélérées dans un tableau de structures DXVADDI_CONFIGPICTUREDECODE que le membre pData de D3DDDIARG_GETCAPS spécifie.