Compartilhar via


Fornecendo recursos para decodificação de vídeo

Como consultar recursos de decodificação de vídeo

Para consultar os recursos de decodificação de vídeo de um UMD (driver de exibição no modo de usuário), o runtime D3D chama a função GetCaps da UMD com um dos seguintes tipos de solicitação especificados no membro Type da estrutura D3DDDIARG_GETCAPS passada para GetCaps:

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

GetCaps retorna o seguinte:

  • Os recursos da UMD para o tipo de solicitação, no buffer para o qual o membro pData de D3DDDIARG_GETCAPS aponta. O UMD deve alocar um buffer grande o suficiente para manter os recursos.
  • O tamanho (em bytes) do buffer que contém os recursos, em DataSize.

Os subtópicos a seguir listam os possíveis tipos de solicitação e seus recursos de decodificação de vídeo associados.

tipos de solicitação D3DDDICAPS_GETDECODEGUIDCOUNT e D3DDDICAPS_GETDECODEGUIDS

O runtime do Direct3D chama GetCaps para solicitar o número de GUIDs e, em seguida, chama GetCaps novamente com uma solicitação para a lista de GUIDs com suporte. O UMD retorna o número e, em seguida, uma lista de GUIDs da lista a seguir compatível com a decodificação va (aceleração de vídeo). O D3DDDIARG_GETCAPS. O membro pInfo é NULL para ambos os tipos de solicitação.

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

tipos de solicitação D3DDDICAPS_GETDECODERTFORMATCOUNT e D3DDDICAPS_GETDECODERTFORMATS

O runtime do Direct3D especifica o GUID para um tipo de decodificação específico do DirectX VA em uma variável para a qual o membro pInfo de D3DDDIARG_GETCAPS aponta. O UMD retorna o número e, em seguida, uma lista de formatos de destino de renderização compatíveis com um tipo de decodificação directX VA específico.

tipos de solicitação D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNT e D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFO

O runtime do Direct3D especifica uma estrutura de DXVADDI_DECODEINPUT para um tipo de decodificação específico do DirectX VA em uma variável para a qual o membro pInfo de D3DDDIARG_GETCAPS aponta. O UMD retorna o número de e informações sobre os tipos de buffer compactados necessários para acelerar a decodificação de vídeo. O UMD retorna informações sobre os tipos de buffer compactados em uma matriz de estruturas de DXVADDI_DECODEBUFFERINFOespecificadas pelo membro pData do D3DDDIARG_GETCAPS.

tipos de solicitação D3DDDICAPS_GETDECODECONFIGURATIONCOUNT e D3DDDICAPS_GETDECODECONFIGURATIONS

O runtime do Direct3D especifica uma estrutura de DXVADDI_DECODEINPUT para um tipo de decodificação específico do DirectX VA em uma variável para a qual o membro pInfo de D3DDDIARG_GETCAPS aponta. O UMD retorna o número e uma lista de configurações de decodificação aceleradas compatíveis com um tipo de decodificação directX VA específico. O UMD retorna configurações de decodificação aceleradas em uma matriz de estruturas de DXVADDI_CONFIGPICTUREDECODEespecificadas pelo membro pData do D3DDDIARG_GETCAPS.