blob: 8aa038976b24c66f5b2502021af25e8ba5ad2bc0 [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
import "unknwn.idl";
/* Fake widl types */
cpp_quote("#if 0")
typedef DWORD IDirect3DDevice9;
typedef DWORD IDirect3DSurface9;
typedef DWORD D3DFORMAT;
typedef DWORD D3DPOOL;
cpp_quote("#endif")
interface IDirectXVideoDecoderService;
cpp_quote("#ifndef __REFERENCE_TIME_DEFINED")
cpp_quote("#define __REFERENCE_TIME_DEFINED")
cpp_quote("typedef LONGLONG REFERENCE_TIME;")
cpp_quote("#endif /*__REFERENCE_TIME_DEFINED*/")
cpp_quote("#define DXVA2_ProcAmp_None 0x0000")
cpp_quote("#define DXVA2_ProcAmp_Brightness 0x0001")
cpp_quote("#define DXVA2_ProcAmp_Contrast 0x0002")
cpp_quote("#define DXVA2_ProcAmp_Hue 0x0004")
cpp_quote("#define DXVA2_ProcAmp_Saturation 0x0008")
cpp_quote("")
cpp_quote("#define DXVA2_E_NOT_INITIALIZED MAKE_HRESULT(1, 4, 4096)")
cpp_quote("#define DXVA2_E_NEW_VIDEO_DEVICE MAKE_HRESULT(1, 4, 4097)")
cpp_quote("#define DXVA2_E_VIDEO_DEVICE_LOCKED MAKE_HRESULT(1, 4, 4098)")
cpp_quote("#define DXVA2_E_NOT_AVAILABLE MAKE_HRESULT(1, 4, 4099)")
cpp_quote("")
cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0,0x4563, 0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);")
cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea,0x4690, 0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);")
cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65, 0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);")
cpp_quote("DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_SampleFormat {")
cpp_quote(" DXVA2_SampleFormatMask = 0x00FF,")
cpp_quote(" DXVA2_SampleUnknown = 0,")
cpp_quote(" DXVA2_SampleProgressiveFrame = 2,")
cpp_quote(" DXVA2_SampleFieldInterleavedEvenFirst = 3,")
cpp_quote(" DXVA2_SampleFieldInterleavedOddFirst = 4,")
cpp_quote(" DXVA2_SampleFieldSingleEven = 5,")
cpp_quote(" DXVA2_SampleFieldSingleOdd = 6,")
cpp_quote(" DXVA2_SampleSubStream = 7 ")
cpp_quote("} DXVA2_SampleFormat;")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_VideoChromaSubSampling {")
cpp_quote(" DXVA2_VideoChromaSubsamplingMask = 0x0F,")
cpp_quote(" DXVA2_VideoChromaSubsampling_Unknown = 0,")
cpp_quote(" DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8,")
cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4,")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2,")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,")
cpp_quote(" DXVA2_VideoChromaSubsampling_MPEG2 = ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited |")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,")
cpp_quote(" DXVA2_VideoChromaSubsampling_MPEG1 = ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,")
cpp_quote(" DXVA2_VideoChromaSubsampling_DV_PAL = ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited | ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_Cosited,")
cpp_quote(" DXVA2_VideoChromaSubsampling_Cosited = ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited | ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_Cosited | ")
cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes ")
cpp_quote("} DXVA2_VideoChromaSubSampling;")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_NominalRange {")
cpp_quote(" DXVA2_NominalRangeMask = 0x07,")
cpp_quote(" DXVA2_NominalRange_Unknown = 0,")
cpp_quote(" DXVA2_NominalRange_Normal = 1,")
cpp_quote(" DXVA2_NominalRange_Wide = 2,")
cpp_quote(" DXVA2_NominalRange_0_255 = 1,")
cpp_quote(" DXVA2_NominalRange_16_235 = 2,")
cpp_quote(" DXVA2_NominalRange_48_208 = 3 ")
cpp_quote("} DXVA2_NominalRange;")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_VideoLighting {")
cpp_quote(" DXVA2_VideoLightingMask = 0x0F,")
cpp_quote(" DXVA2_VideoLighting_Unknown = 0,")
cpp_quote(" DXVA2_VideoLighting_bright = 1,")
cpp_quote(" DXVA2_VideoLighting_office = 2,")
cpp_quote(" DXVA2_VideoLighting_dim = 3,")
cpp_quote(" DXVA2_VideoLighting_dark = 4 ")
cpp_quote("} DXVA2_VideoLighting;")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_VideoPrimaries {")
cpp_quote(" DXVA2_VideoPrimariesMask = 0x001f,")
cpp_quote(" DXVA2_VideoPrimaries_Unknown = 0,")
cpp_quote(" DXVA2_VideoPrimaries_reserved = 1,")
cpp_quote(" DXVA2_VideoPrimaries_BT709 = 2,")
cpp_quote(" DXVA2_VideoPrimaries_BT470_2_SysM = 3,")
cpp_quote(" DXVA2_VideoPrimaries_BT470_2_SysBG = 4,")
cpp_quote(" DXVA2_VideoPrimaries_SMPTE170M = 5,")
cpp_quote(" DXVA2_VideoPrimaries_SMPTE240M = 6,")
cpp_quote(" DXVA2_VideoPrimaries_EBU3213 = 7,")
cpp_quote(" DXVA2_VideoPrimaries_SMPTE_C = 8 ")
cpp_quote("} DXVA2_VideoPrimaries;")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_VideoTransferFunction {")
cpp_quote(" DXVA2_VideoTransFuncMask = 0x001f,")
cpp_quote(" DXVA2_VideoTransFunc_Unknown = 0,")
cpp_quote(" DXVA2_VideoTransFunc_10 = 1,")
cpp_quote(" DXVA2_VideoTransFunc_18 = 2,")
cpp_quote(" DXVA2_VideoTransFunc_20 = 3,")
cpp_quote(" DXVA2_VideoTransFunc_22 = 4,")
cpp_quote(" DXVA2_VideoTransFunc_709 = 5,")
cpp_quote(" DXVA2_VideoTransFunc_240M = 6,")
cpp_quote(" DXVA2_VideoTransFunc_sRGB = 7,")
cpp_quote(" DXVA2_VideoTransFunc_28 = 8 ")
cpp_quote("} DXVA2_VideoTransferFunction;")
cpp_quote("")
cpp_quote("typedef enum {")
cpp_quote(" DXVA2_SurfaceType_DecoderRenderTarget = 0,")
cpp_quote(" DXVA2_SurfaceType_ProcessorRenderTarget = 1,")
cpp_quote(" DXVA2_SurfaceType_D3DRenderTargetTexture = 2 ")
cpp_quote("} DXVA2_SurfaceType;")
cpp_quote("")
cpp_quote("typedef enum _DXVA2_VideoTransferMatrix {")
cpp_quote(" DXVA2_VideoTransferMatrixMask = 0x07,")
cpp_quote(" DXVA2_VideoTransferMatrix_Unknown = 0,")
cpp_quote(" DXVA2_VideoTransferMatrix_BT709 = 1,")
cpp_quote(" DXVA2_VideoTransferMatrix_BT601 = 2,")
cpp_quote(" DXVA2_VideoTransferMatrix_SMPTE240M = 3 ")
cpp_quote("} DXVA2_VideoTransferMatrix;")
cpp_quote("")
cpp_quote("typedef struct _DXVA2_AYUVSample16 {")
cpp_quote(" USHORT Cr;")
cpp_quote(" USHORT Cb;")
cpp_quote(" USHORT Y;")
cpp_quote(" USHORT Alpha;")
cpp_quote("} DXVA2_AYUVSample16;")
cpp_quote("")
cpp_quote("typedef struct _DXVA2_AYUVSample8 {")
cpp_quote(" UCHAR Cr;")
cpp_quote(" UCHAR Cb;")
cpp_quote(" UCHAR Y;")
cpp_quote(" UCHAR Alpha;")
cpp_quote("} DXVA2_AYUVSample8;")
typedef struct _DXVA2_ConfigPictureDecode {
GUID guidConfigBitstreamEncryption;
GUID guidConfigMBcontrolEncryption;
GUID guidConfigResidDiffEncryption;
UINT ConfigBitstreamRaw;
UINT ConfigMBcontrolRasterOrder;
UINT ConfigResidDiffHost;
UINT ConfigSpatialResid8;
UINT ConfigResid8Subtraction;
UINT ConfigSpatialHost8or9Clipping;
UINT ConfigSpatialResidInterleaved;
UINT ConfigIntraResidUnsigned;
UINT ConfigResidDiffAccelerator;
UINT ConfigHostInverseScan;
UINT ConfigSpecificIDCT;
UINT Config4GroupedCoefs;
USHORT ConfigMinRenderTargetBuffCount;
USHORT ConfigDecoderSpecific;
} DXVA2_ConfigPictureDecode;
typedef struct _DXVA2_DecodeBufferDesc {
DWORD CompressedBufferType;
UINT BufferIndex;
UINT DataOffset;
UINT DataSize;
UINT FirstMBaddress;
UINT NumMBsInBuffer;
UINT Width;
UINT Height;
UINT Stride;
UINT ReservedBits;
PVOID pvPVPState;
} DXVA2_DecodeBufferDesc;
typedef struct _DXVA2_DecodeExtensionData {
UINT Function;
PVOID pPrivateInputData;
UINT PrivateInputDataSize;
PVOID pPrivateOutputData;
UINT PrivateOutputDataSize;
} DXVA2_DecodeExtensionData;
typedef struct _DXVA2_DecodeExecuteParams {
UINT NumCompBuffers;
DXVA2_DecodeBufferDesc *pCompressedBuffers;
DXVA2_DecodeExtensionData *pExtensionData;
} DXVA2_DecodeExecuteParams;
typedef struct _DXVA2_ExtendedFormat {
union {
struct {
UINT SampleFormat :8;
UINT VideoChromaSubsampling :4;
UINT NominalRange :3;
UINT VideoTransferMatrix :3;
UINT VideoLighting :4;
UINT VideoPrimaries :5;
UINT VideoTransferFunction :5;
};
UINT value;
};
} DXVA2_ExtendedFormat;
cpp_quote("typedef struct _DXVA2_Fixed32 {")
cpp_quote(" __C89_NAMELESS union {")
cpp_quote(" __C89_NAMELESS struct {")
cpp_quote(" USHORT Fraction;")
cpp_quote(" SHORT Value;")
cpp_quote(" } DUMMYSTRUCTNAME;")
cpp_quote(" LONG ll;")
cpp_quote(" } DUMMYUNIONNAME;")
cpp_quote("} DXVA2_Fixed32;")
cpp_quote("")
cpp_quote("typedef struct _DXVA2_FilterValues {")
cpp_quote(" DXVA2_Fixed32 Level;")
cpp_quote(" DXVA2_Fixed32 Threshold;")
cpp_quote(" DXVA2_Fixed32 Radius;")
cpp_quote("} DXVA2_FilterValues;")
typedef struct _DXVA2_Frequency {
UINT Numerator;
UINT Denominator;
} DXVA2_Frequency;
cpp_quote("typedef struct _DXVA2_ProcAmpValues {")
cpp_quote(" DXVA2_Fixed32 Brightness;")
cpp_quote(" DXVA2_Fixed32 Contrast;")
cpp_quote(" DXVA2_Fixed32 Hue;")
cpp_quote(" DXVA2_Fixed32 Saturation;")
cpp_quote("} DXVA2_ProcAmpValues;")
cpp_quote("")
cpp_quote("typedef struct _DXVA2_ValueRange {")
cpp_quote(" DXVA2_Fixed32 MinValue;")
cpp_quote(" DXVA2_Fixed32 MaxValue;")
cpp_quote(" DXVA2_Fixed32 DefaultValue;")
cpp_quote(" DXVA2_Fixed32 StepSize;")
cpp_quote("} DXVA2_ValueRange;")
typedef struct _DXVA2_VideoDesc {
UINT SampleWidth;
UINT SampleHeight;
DXVA2_ExtendedFormat SampleFormat;
D3DFORMAT Format;
DXVA2_Frequency InputSampleFreq;
DXVA2_Frequency OutputFrameFreq;
UINT UABProtectionLevel;
UINT Reserved;
} DXVA2_VideoDesc;
cpp_quote("/* DeviceCaps")
cpp_quote("DXVA2_VPDev_EmulatedDXVA1")
cpp_quote("DXVA2_VPDev_HardwareDevice")
cpp_quote("DXVA2_VPDev_SoftwareDevice")
cpp_quote("*/")
cpp_quote("/* DeinterlaceTechnology")
cpp_quote("DXVA2_DeinterlaceTech_Unknown")
cpp_quote("DXVA2_DeinterlaceTech_BOBLineReplicate")
cpp_quote("DXVA2_DeinterlaceTech_BOBVerticalStretch")
cpp_quote("DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap")
cpp_quote("DXVA2_DeinterlaceTech_MedianFiltering")
cpp_quote("DXVA2_DeinterlaceTech_EdgeFiltering")
cpp_quote("DXVA2_DeinterlaceTech_FieldAdaptive")
cpp_quote("DXVA2_DeinterlaceTech_PixelAdaptive")
cpp_quote("DXVA2_DeinterlaceTech_MotionVectorSteered")
cpp_quote("DXVA2_DeinterlaceTech_InverseTelecine")
cpp_quote("*/")
cpp_quote("")
cpp_quote("/* VideoProcessorOperations")
cpp_quote("DXVA2_VideoProcess_YUV2RGB")
cpp_quote("DXVA2_VideoProcess_StretchX")
cpp_quote("DXVA2_VideoProcess_StretchY")
cpp_quote("DXVA2_VideoProcess_AlphaBlend")
cpp_quote("DXVA2_VideoProcess_SubRects")
cpp_quote("DXVA2_VideoProcess_SubStreams")
cpp_quote("DXVA2_VideoProcess_SubStreamsExtended")
cpp_quote("DXVA2_VideoProcess_YUV2RGBExtended")
cpp_quote("DXVA2_VideoProcess_AlphaBlendExtended")
cpp_quote("DXVA2_VideoProcess_Constriction")
cpp_quote("DXVA2_VideoProcess_NoiseFilter")
cpp_quote("DXVA2_VideoProcess_DetailFilter")
cpp_quote("DXVA2_VideoProcess_PlanarAlpha")
cpp_quote("DXVA2_VideoProcess_LinearScaling")
cpp_quote("DXVA2_VideoProcess_GammaCompensated")
cpp_quote("DXVA2_VideoProcess_MaintainsOriginalFieldData")
cpp_quote("*/")
cpp_quote("")
cpp_quote("/*NoiseFilterTechnology")
cpp_quote("DXVA2_NoiseFilterTech_Unsupported")
cpp_quote("DXVA2_NoiseFilterTech_Unknown")
cpp_quote("DXVA2_NoiseFilterTech_Median")
cpp_quote("DXVA2_NoiseFilterTech_Temporal")
cpp_quote("DXVA2_NoiseFilterTech_BlockNoise")
cpp_quote("DXVA2_NoiseFilterTech_MosquitoNoise")
cpp_quote("*/")
cpp_quote("")
cpp_quote("/* DetailFilterTechnology")
cpp_quote("DXVA2_DetailFilterTech_Unsupported")
cpp_quote("DXVA2_DetailFilterTech_Unknown")
cpp_quote("DXVA2_DetailFilterTech_Edge")
cpp_quote("DXVA2_DetailFilterTech_Sharpening")
cpp_quote("*/")
cpp_quote("typedef struct _DXVA2_VideoProcessBltParams {")
cpp_quote(" REFERENCE_TIME TargetFrame;")
cpp_quote(" RECT TargetRect;")
cpp_quote(" SIZE ConstrictionSize;")
cpp_quote(" UINT StreamingFlags;")
cpp_quote(" DXVA2_AYUVSample16 BackgroundColor;")
cpp_quote(" DXVA2_ExtendedFormat DestFormat;")
cpp_quote(" DXVA2_ProcAmpValues ProcAmpValues;")
cpp_quote(" DXVA2_Fixed32 Alpha;")
cpp_quote(" DXVA2_FilterValues NoiseFilterLuma;")
cpp_quote(" DXVA2_FilterValues NoiseFilterChroma;")
cpp_quote(" DXVA2_FilterValues DetailFilterLuma;")
cpp_quote(" DXVA2_FilterValues DetailFilterChroma;")
cpp_quote(" DWORD DestData;")
cpp_quote("} DXVA2_VideoProcessBltParams;")
cpp_quote("")
cpp_quote("#ifdef _D3D9_H_")
cpp_quote("typedef struct _DXVA2_VideoProcessorCaps {")
cpp_quote(" UINT DeviceCaps;")
cpp_quote(" D3DPOOL InputPool;")
cpp_quote(" UINT NumForwardRefSamples;")
cpp_quote(" UINT NumBackwardRefSamples;")
cpp_quote(" UINT Reserved;")
cpp_quote(" UINT DeinterlaceTechnology;")
cpp_quote(" UINT ProcAmpControlCaps;")
cpp_quote(" UINT VideoProcessorOperations;")
cpp_quote(" UINT NoiseFilterTechnology;")
cpp_quote(" UINT DetailFilterTechnology;")
cpp_quote("} DXVA2_VideoProcessorCaps;")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("/* SampleData")
cpp_quote("DXVA2_SampleData_RFF")
cpp_quote("DXVA2_SampleData_TFF")
cpp_quote("DXVA2_SampleData_RFF_TFF_Present")
cpp_quote("*/")
cpp_quote("")
cpp_quote("#ifdef _D3D9_H_")
cpp_quote("typedef struct _DXVA2_VideoSample {")
cpp_quote(" REFERENCE_TIME Start;")
cpp_quote(" REFERENCE_TIME End;")
cpp_quote(" DXVA2_ExtendedFormat SampleFormat;")
cpp_quote(" IDirect3DSurface9* SrcSurface;")
cpp_quote(" RECT SrcRect;")
cpp_quote(" RECT DstRect;")
cpp_quote(" DXVA2_AYUVSample8 Pal[16];")
cpp_quote(" DXVA2_Fixed32 PlanarAlpha;")
cpp_quote(" DWORD SampleData;")
cpp_quote("} DXVA2_VideoSample;")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("/* Constants */")
cpp_quote("")
cpp_quote("#define DXVA2_VideoDecoderRenderTarget 0")
cpp_quote("#define DXVA2_VideoProcessorRenderTarget 1")
cpp_quote("#define DXVA2_VideoSoftwareRenderTarget 2")
cpp_quote("")
cpp_quote("/* CompressedBufferType */")
cpp_quote("#define DXVA2_PictureParametersBufferType 0")
cpp_quote("#define DXVA2_MacroBlockControlBufferType 1")
cpp_quote("#define DXVA2_ResidualDifferenceBufferType 2")
cpp_quote("#define DXVA2_DeblockingControlBufferType 3")
cpp_quote("#define DXVA2_InverseQuantizationMatrixBufferType 4")
cpp_quote("#define DXVA2_SliceControlBufferType 5")
cpp_quote("#define DXVA2_BitStreamDateBufferType 6")
cpp_quote("#define DXVA2_MotionVectorBuffer 7")
cpp_quote("#define DXVA2_FilmGrainBuffer 8")
cpp_quote("")
cpp_quote("__forceinline const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha (void) {")
cpp_quote(" DXVA2_Fixed32 f32;")
cpp_quote(" f32.ll = 0 + (1 << 16);")
cpp_quote(" return f32;")
cpp_quote("}")
cpp_quote("")
cpp_quote("__forceinline const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha (void) {")
cpp_quote(" DXVA2_Fixed32 f32;")
cpp_quote(" f32.ll = 0;")
cpp_quote(" return f32;")
cpp_quote("}")
cpp_quote("")
cpp_quote("__forceinline float DXVA2FixedToFloat (const DXVA2_Fixed32 f32) {")
cpp_quote(" return (float)f32.Value + (float)f32.Fraction / (1 << 16);")
cpp_quote("}")
cpp_quote("")
cpp_quote("__forceinline DXVA2_Fixed32 DXVA2FloatToFixed (const float f) {")
cpp_quote(" DXVA2_Fixed32 f32;")
cpp_quote(" f32.Value = ((ULONG) (f * (1 << 16))) >> 16;")
cpp_quote(" f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;")
cpp_quote(" return f32;")
cpp_quote("}")
cpp_quote("#ifdef _D3D9_H_")
cpp_quote("HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager);")
cpp_quote("HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService);")
[
object,
uuid(a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75),
local
]
interface IDirect3DDeviceManager9 : IUnknown
{
HRESULT ResetDevice([in] IDirect3DDevice9 *pDevice, [in] UINT resetToken);
HRESULT OpenDeviceHandle([out] HANDLE *phDevice);
HRESULT CloseDeviceHandle([in] HANDLE hDevice);
HRESULT TestDevice([in] HANDLE hDevice);
HRESULT LockDevice([in] HANDLE hDevice, [out] IDirect3DDevice9 **ppDevice, [in] BOOL fBlock);
HRESULT UnlockDevice([in] HANDLE hDevice, [in] BOOL fSaveState);
HRESULT GetVideoService([in] HANDLE hDevice, [in] REFIID riid, [out] void **ppService);
}
[
object,
uuid(f2b0810a-fd00-43c9-918c-df94e2d8ef7d),
local
]
interface IDirectXVideoDecoder : IUnknown
{
HRESULT GetVideoDecoderService([out] IDirectXVideoDecoderService **ppService);
HRESULT GetCreationParameters([out] GUID *pDeviceGuid, [out] DXVA2_VideoDesc *pVideoDesc,
[out] DXVA2_ConfigPictureDecode *pConfig,
[out, unique, size_is(*pNumSurfaces)] IDirect3DSurface9 ***pDecoderRenderTargets,
[out] UINT *pNumSurfaces);
HRESULT GetBuffer([in] UINT BufferType, [out] void **ppBuffer, [out] UINT *pBufferSize);
HRESULT ReleaseBuffer([in] UINT BufferType);
HRESULT BeginFrame([in] IDirect3DSurface9 *pRenderTarget, [in] void *pvPVPData);
HRESULT EndFrame([out] HANDLE *pHandleComplete);
HRESULT Execute([in] const DXVA2_DecodeExecuteParams *pExecuteParams);
}
[
object,
uuid(fc51a550-d5e7-11d9-af55-00054e43ff02),
local
]
interface IDirectXVideoAccelerationService : IUnknown
{
HRESULT CreateSurface([in] UINT Width, [in] UINT Height, [in] UINT BackBuffers, [in] D3DFORMAT Format,
[in] D3DPOOL Pool, [in] DWORD Usage, [in] DWORD DxvaType, [out, size_is(BackBuffers+1)] IDirect3DSurface9 **ppSurface,
[in, out] HANDLE *pSharedHandle);
}
[
object,
uuid(fc51a551-d5e7-11d9-af55-00054e43ff02),
local
]
interface IDirectXVideoDecoderService : IDirectXVideoAccelerationService
{
HRESULT GetDecoderDeviceGuids([out] UINT *pCount, [out, unique, size_is(*pCount)] GUID **pGuids);
HRESULT GetDecoderRenderTargets([in] REFGUID Guid, [out] UINT *pCount, [out, unique, size_is(*pCount)] D3DFORMAT **pFormats);
HRESULT GetDecoderConfigurations([in] REFGUID Guid, [in] const DXVA2_VideoDesc *pVideoDesc, [in] void *pReserved,
[out] UINT *pCount, [out, unique, size_is(*pCount)] DXVA2_ConfigPictureDecode **ppConfigs);
HRESULT CreateVideoDecoder([in] REFGUID Guid, [in] const DXVA2_VideoDesc *pVideoDesc,
[in] const DXVA2_ConfigPictureDecode *pConfig,
[in, size_is(NumRenderTargets)] IDirect3DSurface9 **ppDecoderRenderTargets,
[in] UINT NumRenderTargets, [out] IDirectXVideoDecoder **ppDecode);
}
cpp_quote("#endif /* _D3D9_H_ */")