ビデオ デコード機能のクエリを実行する方法
この記事では、DirectX ビデオ アクセラレーション (DXVA) 2.0 をサポートするユーザー モード ディスプレイ ドライバー (UMD) でビデオ デコード機能を照会する方法について説明します。
ユーザー モード ディスプレイ ドライバー (UMD) のビデオ デコード機能のクエリを実行するには、D3D ランタイムは、GetCaps に渡されるD3DDDIARG_GETCAPS構造体の Type メンバーで指定された次のいずれかの要求の種類を使用して UMD の GetCaps 関数を呼び出します。
- D3DDDICAPS_GETDECODEGUIDCOUNT
- D3DDDICAPS_GETDECODEGUIDS
- D3DDDICAPS_GETDECODERTFORMATCOUNT
- D3DDDICAPS_GETDECODERTFORMATS
- D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNT
- D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFO
- D3DDDICAPS_GETDECODECONFIGURATIONCOUNT
- D3DDDICAPS_GETDECODECONFIGURATIONS
GetCaps は 次を返します。
- D3DDDIARG_GETCAPSの pData メンバーが指すバッファー内の要求の種類に対する UMD の機能。 UMD は、機能を保持するのに十分な大きさのバッファーを割り当てる必要があります。
- DataSize の機能を含むバッファーのサイズ (バイト単位)。
次のサブトピックでは、使用可能な要求の種類とそれに関連するビデオ デコード機能の一覧を示します。
リクエストタイプのD3DDDICAPS_GETDECODEGUIDCOUNTとD3DDDICAPS_GETDECODEGUIDS
Direct3D ランタイムは GetCaps を 呼び出して GUID の数を要求した後、サポートされている GUID の一覧を要求して GetCaps を再度呼び出します。 UMD は、ビデオ アクセラレーション (VA) デコードでサポートされている次の一覧から数値と GUID の一覧を返します。 D3DDDIARG_GETCAPS。pInfo メンバーは、これらの両方の要求の種類に対して NULL です。
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 および D3DDDICAPS_GETDECODERTFORMATS の要求タイプ
Direct3D ランタイムは、 D3DDDIARG_GETCAPSの pInfo メンバー が指す 変数内の特定の DirectX VA デコード型の GUID を指定します。 UMD は、数値と、特定の DirectX VA デコードの種類でサポートされているレンダー ターゲット形式の一覧を返します。
D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNTとD3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOのリクエストタイプ
Direct3D ランタイムは、D3DDDIARG_GETCAPSの pInfo メンバーが指す変数内の特定の DirectX VA デコード型のDXVADDI_DECODEINPUT構造体を指定します。 UMD は、ビデオ デコードを高速化するために必要な圧縮バッファーの種類の数と情報を返します。 UMD は、D3DDDIARG_GETCAPSの pData メンバーが指定するDXVADDI_DECODEBUFFERINFO構造体の配列内の圧縮バッファー型に関する情報を返します。
D3DDDICAPS_GETDECODECONFIGURATIONCOUNTとD3DDDICAPS_GETDECODECONFIGURATIONSの要求の種類
Direct3D ランタイムは、D3DDDIARG_GETCAPSの pInfo メンバーが指す変数内の特定の DirectX VA デコード型のDXVADDI_DECODEINPUT構造体を指定します。 UMD は、特定の DirectX VA デコードの種類でサポートされている高速デコード構成の数と一覧を返します。 UMD は、D3DDDIARG_GETCAPSの pData メンバーが指定するDXVADDI_CONFIGPICTUREDECODE構造体の配列で高速デコード構成を返します。