ビデオ デコードの機能の提供

ビデオ デコード機能にクエリを実行する方法

ユーザー モード ディスプレイ ドライバー (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_GETCAPSpData メンバーが指すバッファーに、その要求の種類に対する 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_GETCAPSpInfo メンバーが指す変数に、特定の DirectX VA デコードの種類の GUID を指定します。 UMD は、特定の DirectX VA デコードの種類のためにサポートしているレンダー ターゲット形式の数の後にリストを返します。

D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFOCOUNT と D3DDDICAPS_GETDECODECOMPRESSEDBUFFERINFO 要求の種類

Direct3D ランタイムは、D3DDDIARG_GETCAPSpInfo メンバーが指す変数に、特定の 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 構造体の配列に、高速デコード構成を返します。