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.