📄 dxva.h
字号:
typedef struct _DXVA_DeinterlaceQueryAvailableModes {
DWORD Size;
DWORD NumGuids;
GUID Guids[MAX_DEINTERLACE_DEVICE_GUIDS];
} DXVA_DeinterlaceQueryAvailableModes;
#define DXVA_DeinterlaceQueryAvailableModesFnCode 0x01
// lpInput => DXVA_VideoDesc*
// lpOuput => DXVA_DeinterlaceQueryAvailableModes*
typedef struct _DXVA_DeinterlaceQueryModeCaps {
DWORD Size;
GUID Guid;
DXVA_VideoDesc VideoDesc;
} DXVA_DeinterlaceQueryModeCaps;
#define DXVA_DeinterlaceQueryModeCapsFnCode 0x02
// lpInput => DXVA_DeinterlaceQueryModeCaps*
// lpOuput => DXVA_DeinterlaceCaps*
#endif /* __DIRECTX_VA_DEINTERLACE__ */
// -------------------------------------------------------------------------
//
// The definitions that follow describe the video ProcAmp interface
// between the VMR and the graphics device driver. This interface is not
// accessable via the IAMVideoAccelerator interface.
//
// -------------------------------------------------------------------------
//
#ifndef __DIRECTX_VA_PROCAMPCONTROL__
#define __DIRECTX_VA_PROCAMPCONTROL__
DEFINE_GUID(DXVA_ProcAmpControlDevice,
0x9f200913,0x2ffd,0x4056,0x9f,0x1e,0xe1,0xb5,0x08,0xf2,0x2d,0xcf);
typedef enum _DXVA_ProcAmpControlProp {
DXVA_ProcAmp_None = 0x0000,
DXVA_ProcAmp_Brightness = 0x0001,
DXVA_ProcAmp_Contrast = 0x0002,
DXVA_ProcAmp_Hue = 0x0004,
DXVA_ProcAmp_Saturation = 0x0008
} DXVA_ProcAmpControlProp;
typedef struct _DXVA_ProcAmpControlCaps {
DWORD Size;
DWORD InputPool;
D3DFORMAT d3dOutputFormat;
DWORD ProcAmpControlProps;// see DXVA_ProcAmpControlProp
DWORD VideoProcessingCaps;// see DXVA_VideoProcessCaps
} DXVA_ProcAmpControlCaps, *LPDXVA_ProcAmpControlCaps;
#define DXVA_ProcAmpControlQueryCapsFnCode 0x03
// lpInput => DXVA_VideoDesc*
// lpOuput => DXVA_ProcAmpControlCaps*
typedef struct _DXVA_ProcAmpControlQueryRange {
DWORD Size;
DXVA_ProcAmpControlProp ProcAmpControlProp;
DXVA_VideoDesc VideoDesc;
} DXVA_ProcAmpControlQueryRange, *LPDXVA_ProcAmpControlQueryRange;
typedef struct _DXVA_VideoPropertyRange {
FLOAT MinValue;
FLOAT MaxValue;
FLOAT DefaultValue;
FLOAT StepSize;
} DXVA_VideoPropertyRange, *LPDXVA_VideoPropertyRange;
#define DXVA_ProcAmpControlQueryRangeFnCode 0x04
// lpInput => DXVA_ProcAmpControlQueryRange*
// lpOuput => DXVA_VideoPropertyRange*
typedef struct _DXVA_ProcAmpControlBlt {
DWORD Size;
RECT DstRect;
RECT SrcRect;
FLOAT Alpha;
FLOAT Brightness;
FLOAT Contrast;
FLOAT Hue;
FLOAT Saturation;
} DXVA_ProcAmpControlBlt;
#define DXVA_ProcAmpControlBltFnCode 0x01
// lpInput => DXVA_ProcAmpControlBlt*
// lpOuput => NULL /* not currently used */
#endif /* __DIRECTX_VA_PROCAMPCONTROL__ */
// -------------------------------------------------------------------------
//
// The definitions that follow describe the Certified Output Protection
// Protocol between the VMR and the graphics device driver. This interface
// is not accessable via the IAMVideoAccelerator interface.
//
// -------------------------------------------------------------------------
//
#ifndef __DIRECTX_VA_CERTOUTPUTPROTECT__
#define __DIRECTX_VA_CERTOUTPUTPROTECT__
DEFINE_GUID(DXVA_COPPDevice,
0xd2457add,0x8999,0x45ed,0x8a,0x8a,0xd1,0xaa,0x04,0x7b,0xa4,0xd5);
// -------------------------------------------------------------------------
// COPPGetCertificateLength
// -------------------------------------------------------------------------
#define DXVA_COPPGetCertificateLengthFnCode 0x01
// lpInput => NULL
// lpOuput => DWORD*
// -------------------------------------------------------------------------
// COPPKeyExchange
// -------------------------------------------------------------------------
#define DXVA_COPPKeyExchangeFnCode 0x02
// lpInputData => NULL
// lpOuputData => GUID*
// -------------------------------------------------------------------------
// COPPSequenceStart
// -------------------------------------------------------------------------
typedef struct _DXVA_COPPSignature {
UCHAR Signature[256];
} DXVA_COPPSignature, *LPDXVA_COPPSignature;
#define DXVA_COPPSequenceStartFnCode 0x03
// lpInputData => DXVA_COPPSignature*
// lpOuputData => NULL
// -------------------------------------------------------------------------
// COPPCommand
// -------------------------------------------------------------------------
typedef struct _DXVA_COPPCommand {
GUID macKDI; // 16 bytes
GUID guidCommandID; // 16 bytes
ULONG dwSequence; // 4 bytes
ULONG cbSizeData; // 4 bytes
UCHAR CommandData[4056]; // 4056 bytes (4056+4+4+16+16 = 4096)
} DXVA_COPPCommand, *LPDXVA_COPPCommand;
#define DXVA_COPPCommandFnCode 0x04
// lpInputData => DXVA_COPPCommand*
// lpOuputData => NULL
DEFINE_GUID(DXVA_COPPSetProtectionLevel,
0x9bb9327c,0x4eb5,0x4727,0x9f,0x00,0xb4,0x2b,0x09,0x19,0xc0,0xda);
typedef struct _DXVA_COPPSetProtectionLevelCmdData {
ULONG ProtType;
ULONG ProtLevel;
ULONG TypeSpecificMask;
ULONG TypeSpecificInfo;
} DXVA_COPPSetProtectionLevelCmdData;
// Set the HDCP protection level - (0 - 1 DWORD, 4 bytes)
typedef enum _COPP_HDCP_Protection_Level {
COPP_HDCP_Level0 = 0,
COPP_HDCP_LevelMin = COPP_HDCP_Level0,
COPP_HDCP_Level1 = 1,
COPP_HDCP_LevelMax = COPP_HDCP_Level1,
COPP_HDCP_ForceDWORD = 0x7fffffff
} COPP_HDCP_Protection_Level;
typedef enum _COPP_CGMSA_Protection_Level {
COPP_CGMSA_CopyFreely = 0,
COPP_CGMSA_LevelMin = COPP_CGMSA_CopyFreely,
COPP_CGMSA_CopyOneGeneration = 2,
COPP_CGMSA_CopyNever = 3,
COPP_CGMSA_RedistributionControlRequired = 0x04,
COPP_CGMSA_LevelMax = (COPP_CGMSA_RedistributionControlRequired + COPP_CGMSA_CopyNever),
COPP_CGMSA_ForceDWORD = 0x7fffffff
} COPP_CGMSA_Protection_Level;
#define COPP_WSS_FLAG 0x01 // used with DXVA_COPPSetProtectionLevelCmdData::TypeSpecificInfo
typedef enum _COPP_ACP_Protection_Level {
COPP_ACP_Level0 = 0,
COPP_ACP_LevelMin = COPP_ACP_Level0,
COPP_ACP_Level1 = 1,
COPP_ACP_Level2 = 2,
COPP_ACP_Level3 = 3,
COPP_ACP_LevelMax = COPP_ACP_Level3,
COPP_ACP_ForceDWORD = 0x7fffffff
} COPP_ACP_Protection_Level;
#define COPP_NoProtectionLevelAvailable -1
#define COPP_DefaultProtectionLevel 0
//
// Bit flags of possible protection types. Note that it is possible to apply
// different protection settings to a single connector.
//
enum {
COPP_ProtectionType_Unknown = 0x80000000,
COPP_ProtectionType_None = 0x00000000,
COPP_ProtectionType_HDCP = 0x00000001,
COPP_ProtectionType_ACP = 0x00000002,
COPP_ProtectionType_CGMSA = 0x00000004,
COPP_ProtectionType_Mask = 0x80000007,
COPP_ProtectionType_Reserved = 0x7FFFFFF8
};
// -------------------------------------------------------------------------
// COPPQueryStatus
// -------------------------------------------------------------------------
typedef struct _DXVA_COPPStatusInput {
GUID rApp; // 16 bytes
GUID guidStatusRequestID;// 16 bytes
ULONG dwSequence; // 4 bytes
ULONG cbSizeData; // 4 bytes
UCHAR StatusData[4056]; // 4056 bytes (4056+4+4+16+16 = 4096)
} DXVA_COPPStatusInput, *LPDXVA_COPPStatusInput;
typedef struct _DXVA_COPPStatusOutput {
GUID macKDI; // 16 bytes
ULONG cbSizeData; // 4 bytes
UCHAR COPPStatus[4076]; // 4076 bytes (4076+16+4 = 4096)
} DXVA_COPPStatusOutput, *LPDXVA_COPPStatusOutput;
typedef enum _COPP_StatusFlags {
COPP_StatusNormal = 0x00,
COPP_LinkLost = 0x01,
COPP_RenegotiationRequired = 0x02,
COPP_StatusFlagsReserved = 0xFFFFFFFC
} COPP_StatusFlags;
typedef struct _DXVA_COPPStatusData {
GUID rApp;
ULONG dwFlags; // See COPP_StatusFlags above
ULONG dwData;
ULONG TypeSpecificMask;
ULONG TypeSpecificInfo;
} DXVA_COPPStatusData;
typedef struct _DXVA_COPPStatusDisplayData {
GUID rApp;
ULONG dwFlags; // See COPP_StatusFlags above
ULONG DisplayWidth;
ULONG Displayheight;
ULONG Format; // also contains extended color data
ULONG d3dFormat;
ULONG FreqNumerator;
ULONG FreqDenominator;
} DXVA_COPPStatusDisplayData;
typedef enum _COPP_StatusHDCPFlags {
COPP_HDCPReceiver = 0x00,
COPP_HDCPRepeater = 0x01
} COPP_StatusHDCPFlags;
typedef struct _DXVA_COPPStatusHDCPKeyData {
GUID rApp;
ULONG dwFlags; // See COPP_StatusFlags above
ULONG dwHDCPFlags; // See COPP_StatusHDCPFlags above
GUID BKey; // Lower 40 bits
GUID reserved1;
GUID reserved2;
} DXVA_COPPStatusHDCPKeyData;
#define DXVA_COPPQueryStatusFnCode 0x05
// lpInputData => DXVA_COPPStatusInput*
// lpOuputData => DXVA_COPPStatusOutput*
//
// Status GUID and enumerations
//
DEFINE_GUID(DXVA_COPPQueryConnectorType,
0x81d0bfd5,0x6afe,0x48c2,0x99,0xc0,0x95,0xa0,0x8f,0x97,0xc5,0xda);
typedef enum _COPP_ConnectorType {
COPP_ConnectorType_Unknown = -1,
COPP_ConnectorType_VGA = 0,
COPP_ConnectorType_SVideo = 1,
COPP_ConnectorType_CompositeVideo = 2,
COPP_ConnectorType_ComponentVideo = 3,
COPP_ConnectorType_DVI = 4,
COPP_ConnectorType_HDMI = 5,
COPP_ConnectorType_LVDS = 6,
COPP_ConnectorType_TMDS = 7,
COPP_ConnectorType_D_JPN = 8,
COPP_ConnectorType_Internal = 0x80000000, // can be combined with the other connector types
COPP_ConnectorType_ForceDWORD = 0x7fffffff /* force 32-bit size enum */
} COPP_ConnectorType;
DEFINE_GUID(DXVA_COPPQueryProtectionType,
0x38f2a801,0x9a6c,0x48bb,0x91,0x07,0xb6,0x69,0x6e,0x6f,0x17,0x97);
DEFINE_GUID(DXVA_COPPQueryLocalProtectionLevel,
0xb2075857,0x3eda,0x4d5d,0x88,0xdb,0x74,0x8f,0x8c,0x1a,0x05,0x49);
DEFINE_GUID(DXVA_COPPQueryGlobalProtectionLevel,
0x1957210a,0x7766,0x452a,0xb9,0x9a,0xd2,0x7a,0xed,0x54,0xf0,0x3a);
DEFINE_GUID(DXVA_COPPQueryDisplayData,
0xd7bf1ba3,0xad13,0x4f8e,0xaf,0x98,0x0d,0xcb,0x3c,0xa2,0x04,0xcc);
DEFINE_GUID(DXVA_COPPQueryHDCPKeyData,
0xdb59d74, 0xa992, 0x492e, 0xa0, 0xbd, 0xc2, 0x3f, 0xda, 0x56, 0x4e, 0x0);
DEFINE_GUID(DXVA_COPPQueryBusData,
0xc6f4d673, 0x6174, 0x4184, 0x8e, 0x35, 0xf6, 0xdb, 0x52, 0x0, 0xbc, 0xba);
typedef enum _COPP_BusType {
COPP_BusType_Unknown = 0,
COPP_BusType_PCI = 1,
COPP_BusType_PCIX = 2,
COPP_BusType_PCIExpress = 3,
COPP_BusType_AGP = 4,
COPP_BusType_Integrated = 0x80000000, // can be combined with the other bus types
COPP_BusType_ForceDWORD = 0x7fffffff /* force 32-bit size enum */
} COPP_BusType;
#endif /* __DIRECTX_VA_CERTOUTPUTPROTECT__ */
#ifdef __cplusplus
}
#endif
#endif /* __DIRECTX_VA__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -