次の方法で共有


ビデオ デコードの機能を提供する

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

この記事では、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_GETCAPSpData メンバーが指すバッファー内の要求の種類に対する UMD の機能。 UMD は、機能を保持するのに十分な大きさのバッファーを割り当てる必要があります。
  • DataSize の機能を含むバッファーのサイズ (バイト単位)。

次のサブトピックでは、使用可能な要求の種類とそれに関連するビデオ デコード機能の一覧を示します。

リクエストタイプのD3DDDICAPS_GETDECODEGUIDCOUNTとD3DDDICAPS_GETDECODEGUIDS

Direct3D ランタイムは GetCaps を 呼び出して GUID の数を要求した後、サポートされている GUID の一覧を要求して GetCaps を再度呼び出します。 UMD は、ビデオ アクセラレーション (VA) デコードでサポートされている次の一覧から数値と GUID の一覧を返します。 D3DDDIARG_GETCAPSpInfo メンバーは、これらの両方の要求の種類に対して 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構造体の配列で高速デコード構成を返します。