Freigeben über


Bereitstellen von Funktionen für die Videodecodierung

Abfragen von Videodecodierungsfunktionen

Um die Videodecodierungsfunktionen eines Benutzermodusanzeigetreibers (UMD) abzufragen, ruft die D3D-Runtime die GetCaps-Funktion von UMD mit einem der folgenden Anforderungstypen auf, die im Element Typ der an GetCaps übergebenen D3DDDIARG_GETCAPS-Struktur angegeben sind:

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

GetCaps gibt Folgendes zurück:

  • Die UMD-Funktionen für den Anforderungstyp im Puffer, auf den das pData-Mitgliedvon D3DDDIARG_GETCAPS verweist. Die UMD muss einen Puffer zuordnen, der groß genug ist, um die Funktionen aufzunehmen.
  • Die Größe (in Bytes) des Puffers, der die Funktionen in DataSize enthält.

In den folgenden Unterthemen werden die möglichen Anforderungstypen und die zugehörigen Videodecodierungsfunktionen aufgelistet.

D3DDDICAPS_GETDECODEGUIDCOUNT und D3DDDICAPS_GETDECODEGUIDS Anforderungstypen

Die Direct3D-Runtime ruft GetCaps auf, um die Anzahl von GUIDs anzufordern, und ruft getCaps dann erneut mit einer Anforderung für die Liste der unterstützten GUIDs auf. Die UMD gibt die Zahl und dann eine Liste der GUIDs aus der folgenden Liste zurück, die für die Decodierung der Videobeschleunigung (VA) unterstützt werden. Die D3DDDIARG_GETCAPS. pInfo-Member ist null für beide Anforderungstypen.

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

D3DDDICAPS_GETDECODERTFORMATCOUNT und D3DDDICAPS_GETDECODERTFORMATS Anforderungstypen

Die Direct3D-Runtime gibt die GUID für einen bestimmten DirectX VA-Decodierungstyp in einer Variablen an, auf die das pInfo-Elementvon D3DDDIARG_GETCAPS zeigt. Die UMD gibt die Zahl und dann eine Liste der Renderzielformate zurück, die für einen bestimmten DirectX VA-Decodierungstyp unterstützt werden.

D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNT und D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFO Anforderungstypen

Die Direct3D-Runtime gibt eine DXVADDI_DECODEINPUT Struktur für einen bestimmten DirectX VA-Decodierungstyp in einer Variablen an, auf die das pInfo-Elementvon D3DDDIARG_GETCAPS verweist. Die UMD gibt die Anzahl und Informationen zu den komprimierten Puffertypen zurück, die erforderlich sind, um die Videodecodierung zu beschleunigen. Die UMD gibt Informationen zu den komprimierten Puffertypen in einem Array von DXVADDI_DECODEBUFFERINFO Strukturen zurück, die das pData-Member von D3DDDIARG_GETCAPS angibt.

D3DDDICAPS_GETDECODECONFIGURATIONCOUNT und D3DDDICAPS_GETDECODECONFIGURATIONS Anforderungstypen

Die Direct3D-Runtime gibt eine DXVADDI_DECODEINPUT-Struktur für einen bestimmten DirectX VA-Decodierungstyp in einer Variablen an, auf die das pInfo-Element von D3DDDIARG_GETCAPS verweist. Die UMD gibt die Anzahl und eine Liste der Konfigurationen für die beschleunigte Decodierung zurück, die für einen bestimmten DirectX VA-Decodierungstyp unterstützt werden. Die UMD gibt Konfigurationen mit beschleunigter Decodierung in einem Array von DXVADDI_CONFIGPICTUREDECODE Strukturen zurück, die das pData-Element von D3DDDIARG_GETCAPS angibt.