]> git.cworth.org Git - apitrace/blob - specs/d3d9dxva2.py
36499b7fac457a97b79cd6689ef51b10046c6967
[apitrace] / specs / d3d9dxva2.py
1 ##########################################################################
2 #
3 # Copyright 2012 VMware, Inc.
4 # All Rights Reserved.
5 #
6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 # of this software and associated documentation files (the "Software"), to deal
8 # in the Software without restriction, including without limitation the rights
9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 # copies of the Software, and to permit persons to whom the Software is
11 # furnished to do so, subject to the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 # THE SOFTWARE.
23 #
24 ##########################################################################/
25
26
27 from d3d9 import *
28
29 REFERENCE_TIME = Alias("REFERENCE_TIME", LONGLONG)
30
31 DXVA2_ProcAmp = Flags(UINT, [
32     "DXVA2_ProcAmp_None",
33     "DXVA2_ProcAmp_Brightness",
34     "DXVA2_ProcAmp_Contrast",
35     "DXVA2_ProcAmp_Hue",
36     "DXVA2_ProcAmp_Saturation",
37 ])
38
39 HRESULT = FakeEnum(HRESULT, [
40     "DXVA2_E_NOT_INITIALIZED",
41     "DXVA2_E_NEW_VIDEO_DEVICE",
42     "DXVA2_E_VIDEO_DEVICE_LOCKED",
43     "DXVA2_E_NOT_AVAILABLE",
44 ])
45
46 DXVA2_SampleFormat = Enum("DXVA2_SampleFormat", [
47     "DXVA2_SampleFormatMask",
48     "DXVA2_SampleUnknown",
49     "DXVA2_SampleProgressiveFrame",
50     "DXVA2_SampleFieldInterleavedEvenFirst",
51     "DXVA2_SampleFieldInterleavedOddFirst",
52     "DXVA2_SampleFieldSingleEven",
53     "DXVA2_SampleFieldSingleOdd",
54     "DXVA2_SampleSubStream",
55 ])
56
57 DXVA2_VideoChromaSubSampling = Enum("DXVA2_VideoChromaSubSampling", [
58     "DXVA2_VideoChromaSubsamplingMask",
59     "DXVA2_VideoChromaSubsampling_Unknown",
60     "DXVA2_VideoChromaSubsampling_ProgressiveChroma",
61     "DXVA2_VideoChromaSubsampling_Horizontally_Cosited",
62     "DXVA2_VideoChromaSubsampling_Vertically_Cosited",
63     "DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes",
64     "DXVA2_VideoChromaSubsampling_MPEG2",
65     "DXVA2_VideoChromaSubsampling_MPEG1",
66     "DXVA2_VideoChromaSubsampling_DV_PAL",
67     "DXVA2_VideoChromaSubsampling_Cosited",
68 ])
69
70 DXVA2_NominalRange = Enum("DXVA2_NominalRange", [
71     "DXVA2_NominalRangeMask",
72     "DXVA2_NominalRange_Unknown",
73     "DXVA2_NominalRange_Normal",
74     "DXVA2_NominalRange_Wide",
75     "DXVA2_NominalRange_0_255",
76     "DXVA2_NominalRange_16_235",
77     "DXVA2_NominalRange_48_208",
78 ])
79
80 DXVA2_VideoLighting = Enum("DXVA2_VideoLighting", [
81     "DXVA2_VideoLightingMask",
82     "DXVA2_VideoLighting_Unknown",
83     "DXVA2_VideoLighting_bright",
84     "DXVA2_VideoLighting_office",
85     "DXVA2_VideoLighting_dim",
86     "DXVA2_VideoLighting_dark",
87 ])
88
89 DXVA2_VideoPrimaries = Enum("DXVA2_VideoPrimaries", [
90     "DXVA2_VideoPrimariesMask",
91     "DXVA2_VideoPrimaries_Unknown",
92     "DXVA2_VideoPrimaries_reserved",
93     "DXVA2_VideoPrimaries_BT709",
94     "DXVA2_VideoPrimaries_BT470_2_SysM",
95     "DXVA2_VideoPrimaries_BT470_2_SysBG",
96     "DXVA2_VideoPrimaries_SMPTE170M",
97     "DXVA2_VideoPrimaries_SMPTE240M",
98     "DXVA2_VideoPrimaries_EBU3213",
99     "DXVA2_VideoPrimaries_SMPTE_C",
100 ])
101
102 DXVA2_VideoTransferFunction = Enum("DXVA2_VideoTransferFunction", [
103     "DXVA2_VideoTransFuncMask",
104     "DXVA2_VideoTransFunc_Unknown",
105     "DXVA2_VideoTransFunc_10",
106     "DXVA2_VideoTransFunc_18",
107     "DXVA2_VideoTransFunc_20",
108     "DXVA2_VideoTransFunc_22",
109     "DXVA2_VideoTransFunc_709",
110     "DXVA2_VideoTransFunc_240M",
111     "DXVA2_VideoTransFunc_sRGB",
112     "DXVA2_VideoTransFunc_28",
113 ])
114
115 DXVA2_SurfaceType = FakeEnum(DWORD, [
116     "DXVA2_SurfaceType_DecoderRenderTarget",
117     "DXVA2_SurfaceType_ProcessorRenderTarget",
118     "DXVA2_SurfaceType_D3DRenderTargetTexture",
119 ])
120
121 DXVA2_VideoTransferMatrix = Enum("DXVA2_VideoTransferMatrix", [
122     "DXVA2_VideoTransferMatrixMask",
123     "DXVA2_VideoTransferMatrix_Unknown",
124     "DXVA2_VideoTransferMatrix_BT709",
125     "DXVA2_VideoTransferMatrix_BT601",
126     "DXVA2_VideoTransferMatrix_SMPTE240M",
127 ])
128
129 DXVA2_AYUVSample16 = Struct("DXVA2_AYUVSample16", [
130     (USHORT, "Cr"),
131     (USHORT, "Cb"),
132     (USHORT, "Y"),
133     (USHORT, "Alpha"),
134 ])
135
136 DXVA2_AYUVSample8 = Struct("DXVA2_AYUVSample8", [
137     (UCHAR, "Cr"),
138     (UCHAR, "Cb"),
139     (UCHAR, "Y"),
140     (UCHAR, "Alpha"),
141 ])
142
143 DXVA2_ConfigPictureDecode = Struct("DXVA2_ConfigPictureDecode", [
144     (GUID, "guidConfigBitstreamEncryption"),
145     (GUID, "guidConfigMBcontrolEncryption"),
146     (GUID, "guidConfigResidDiffEncryption"),
147     (UINT, "ConfigBitstreamRaw"),
148     (UINT, "ConfigMBcontrolRasterOrder"),
149     (UINT, "ConfigResidDiffHost"),
150     (UINT, "ConfigSpatialResid8"),
151     (UINT, "ConfigResid8Subtraction"),
152     (UINT, "ConfigSpatialHost8or9Clipping"),
153     (UINT, "ConfigSpatialResidInterleaved"),
154     (UINT, "ConfigIntraResidUnsigned"),
155     (UINT, "ConfigResidDiffAccelerator"),
156     (UINT, "ConfigHostInverseScan"),
157     (UINT, "ConfigSpecificIDCT"),
158     (UINT, "Config4GroupedCoefs"),
159     (USHORT, "ConfigMinRenderTargetBuffCount"),
160     (USHORT, "ConfigDecoderSpecific"),
161 ])
162
163 DXVA2_DecodeBufferDesc = Struct("DXVA2_DecodeBufferDesc", [
164     (DWORD, "CompressedBufferType"),
165     (UINT, "BufferIndex"),
166     (UINT, "DataOffset"),
167     (UINT, "DataSize"),
168     (UINT, "FirstMBaddress"),
169     (UINT, "NumMBsInBuffer"),
170     (UINT, "Width"),
171     (UINT, "Height"),
172     (UINT, "Stride"),
173     (UINT, "ReservedBits"),
174     (PVOID, "pvPVPState"),
175 ])
176
177 DXVA2_DecodeExtensionData = Struct("DXVA2_DecodeExtensionData", [
178     (UINT, "Function"),
179     (PVOID, "pPrivateInputData"),
180     (UINT, "PrivateInputDataSize"),
181     (PVOID, "pPrivateOutputData"),
182     (UINT, "PrivateOutputDataSize"),
183 ])
184
185 DXVA2_DecodeExecuteParams = Struct("DXVA2_DecodeExecuteParams", [
186     (UINT, "NumCompBuffers"),
187     (Pointer(DXVA2_DecodeBufferDesc), "pCompressedBuffers"),
188     (Pointer(DXVA2_DecodeExtensionData), "pExtensionData"),
189 ])
190
191 DXVA2_ExtendedFormat = Struct("DXVA2_ExtendedFormat", [
192     (UINT, "value"),
193 ])
194
195 DXVA2_Fixed32 = Struct("DXVA2_Fixed32", [
196     (USHORT, "Fraction"),
197     (SHORT, "Value"),
198 ])
199
200 DXVA2_FilterValues = Struct("DXVA2_FilterValues", [
201     (DXVA2_Fixed32, "Level"),
202     (DXVA2_Fixed32, "Threshold"),
203     (DXVA2_Fixed32, "Radius"),
204 ])
205
206 DXVA2_Frequency = Struct("DXVA2_Frequency", [
207     (UINT, "Numerator"),
208     (UINT, "Denominator"),
209 ])
210
211 DXVA2_ProcAmpValues = Struct("DXVA2_ProcAmpValues", [
212     (DXVA2_Fixed32, "Brightness"),
213     (DXVA2_Fixed32, "Contrast"),
214     (DXVA2_Fixed32, "Hue"),
215     (DXVA2_Fixed32, "Saturation"),
216 ])
217
218 DXVA2_ValueRange = Struct("DXVA2_ValueRange", [
219     (DXVA2_Fixed32, "MinValue"),
220     (DXVA2_Fixed32, "MaxValue"),
221     (DXVA2_Fixed32, "DefaultValue"),
222     (DXVA2_Fixed32, "StepSize"),
223 ])
224
225 DXVA2_VideoDesc = Struct("DXVA2_VideoDesc", [
226     (UINT, "SampleWidth"),
227     (UINT, "SampleHeight"),
228     (DXVA2_ExtendedFormat, "SampleFormat"),
229     (D3DFORMAT, "Format"),
230     (DXVA2_Frequency, "InputSampleFreq"),
231     (DXVA2_Frequency, "OutputFrameFreq"),
232     (UINT, "UABProtectionLevel"),
233     (UINT, "Reserved"),
234 ])
235
236 DXVA2_VideoProcessBltParams = Struct("DXVA2_VideoProcessBltParams", [
237     (REFERENCE_TIME, "TargetFrame"),
238     (RECT, "TargetRect"),
239     (SIZE, "ConstrictionSize"),
240     (UINT, "StreamingFlags"),
241     (DXVA2_AYUVSample16, "BackgroundColor"),
242     (DXVA2_ExtendedFormat, "DestFormat"),
243     (DXVA2_ProcAmpValues, "ProcAmpValues"),
244     (DXVA2_Fixed32, "Alpha"),
245     (DXVA2_FilterValues, "NoiseFilterLuma"),
246     (DXVA2_FilterValues, "NoiseFilterChroma"),
247     (DXVA2_FilterValues, "DetailFilterLuma"),
248     (DXVA2_FilterValues, "DetailFilterChroma"),
249     (DWORD, "DestData"),
250 ])
251
252 DXVA2_VideoProcessorCaps = Struct("DXVA2_VideoProcessorCaps", [
253     (UINT, "DeviceCaps"),
254     (D3DPOOL, "InputPool"),
255     (UINT, "NumForwardRefSamples"),
256     (UINT, "NumBackwardRefSamples"),
257     (UINT, "Reserved"),
258     (UINT, "DeinterlaceTechnology"),
259     (UINT, "ProcAmpControlCaps"),
260     (UINT, "VideoProcessorOperations"),
261     (UINT, "NoiseFilterTechnology"),
262     (UINT, "DetailFilterTechnology"),
263 ])
264
265
266 DXVA2_PVP_SETKEY = Opaque('DXVA2_PVP_SETKEY')
267
268 DXVA2_DECODEBUFFERDESC = Struct("DXVA2_DECODEBUFFERDESC", [
269     (ObjPointer(IDirect3DSurface9), "pRenderTarget"),
270     (DWORD, "CompressedBufferType"),
271     (DWORD, "BufferIndex"),
272     (DWORD, "DataOffset"),
273     (DWORD, "DataSize"),
274     (DWORD, "FirstMBaddress"),
275     (DWORD, "NumMBsInBuffer"),
276     (DWORD, "Width"),
277     (DWORD, "Height"),
278     (DWORD, "Stride"),
279     (DWORD, "ReservedBits"),
280     (PVOID, "pCipherCounter"),
281 ])
282
283 DXVA2_DECODEEXECUTE = Struct("DXVA2_DECODEEXECUTE", [
284     (UINT, "NumCompBuffers"),
285     (Array(DXVA2_DECODEBUFFERDESC, "{self}.NumCompBuffers"), "pCompressedBuffers"),
286 ])
287
288 DXVA2_VIDEOSAMPLE = Struct("DXVA2_VIDEOSAMPLE", [
289     (REFERENCE_TIME, "Start"),
290     (REFERENCE_TIME, "End"),
291     (DXVA2_ExtendedFormat, "SampleFormat"),
292     (DWORD, "SampleFlags"),
293     (ObjPointer(IDirect3DSurface9), "SrcSurface"),
294     (RECT, "SrcRect"),
295     (RECT, "DstRect"),
296     #(Array(DXVA2_AYUVSample8, 16), "Pal"),
297     (DXVA2_Fixed32, "PlanarAlpha"),
298 ])
299
300 DXVA2_VIDEOPROCESSBLT = Struct("DXVA2_VIDEOPROCESSBLT", [
301     (REFERENCE_TIME, "TargetFrame"),
302     (RECT, "TargetRect"),
303     (SIZE, "ConstrictionSize"),
304     (DWORD, "StreamingFlags"),
305     (DXVA2_AYUVSample16, "BackgroundColor"),
306     (DXVA2_ExtendedFormat, "DestFormat"),
307     (DWORD, "DestFlags"),
308     (DXVA2_ProcAmpValues, "ProcAmpValues"),
309     (DXVA2_Fixed32, "Alpha"),
310     (DXVA2_FilterValues, "NoiseFilterLuma"),
311     (DXVA2_FilterValues, "NoiseFilterChroma"),
312     (DXVA2_FilterValues, "DetailFilterLuma"),
313     (DXVA2_FilterValues, "DetailFilterChroma"),
314     (Array(DXVA2_VIDEOSAMPLE, "{self}.NumSrcSurfaces"), "pSrcSurfaces"),
315     (UINT, "NumSrcSurfaces"),
316 ])
317
318 DXVA2_EXTENSIONEXECUTE = Opaque('DXVA2_EXTENSIONEXECUTE')
319 DXVA2_DECODEBUFFERINFO = Opaque('DXVA2_DECODEBUFFERINFO')
320
321
322 IDirect3DDecodeDevice9 = Interface("IDirect3DDecodeDevice9", IUnknown)
323 IDirect3DDecodeDevice9.methods += [
324     StdMethod(HRESULT, "DecodeBeginFrame", [(OpaquePointer(DXVA2_PVP_SETKEY), "pPVPSetKey")]),
325     StdMethod(HRESULT, "DecodeEndFrame", [(Pointer(HANDLE), "pHandleComplete")]),
326     StdMethod(HRESULT, "DecodeSetRenderTarget", [(ObjPointer(IDirect3DSurface9), "pRenderTarget")]),
327     StdMethod(HRESULT, "DecodeExecute", [(Pointer(DXVA2_DECODEEXECUTE), "pExecuteParams")]),
328 ]
329
330 IDirect3DVideoProcessDevice9 = Interface("IDirect3DVideoProcessDevice9", IUnknown)
331 IDirect3DVideoProcessDevice9.methods += [
332     StdMethod(HRESULT, "VideoProcessBeginFrame", []),
333     StdMethod(HRESULT, "VideoProcessEndFrame", [(Pointer(HANDLE), "pHandleComplete")]),
334     StdMethod(HRESULT, "VideoProcessSetRenderTarget", [(ObjPointer(IDirect3DSurface9), "pRenderTarget")]),
335     StdMethod(HRESULT, "VideoProcessBlt", [(Pointer(DXVA2_VIDEOPROCESSBLT), "pData")]),
336 ]
337
338 IDirect3DDXVAExtensionDevice9 = Interface("IDirect3DDXVAExtensionDevice9", IUnknown)
339 IDirect3DDXVAExtensionDevice9.methods += [
340     StdMethod(HRESULT, "ExtensionExecute", [(OpaquePointer(DXVA2_EXTENSIONEXECUTE), "pData")]),
341 ]
342
343 IDirect3DDxva2Container9 = Interface("IDirect3DDxva2Container9", IUnknown)
344 IDirect3DDxva2Container9.methods += [
345     StdMethod(HRESULT, "CreateSurface", [(UINT, "Width"), (UINT, "Height"), (UINT, "BackBuffers"), (D3DFORMAT, "Format"), (D3DPOOL, "Pool"), (DWORD, "Usage"), (DXVA2_SurfaceType, "DxvaType"), Out(Array(ObjPointer(IDirect3DSurface9), "1 + BackBuffers"), "ppSurface"), (Pointer(HANDLE), "pSharedHandle")]),
346     StdMethod(HRESULT, "VidToSysBlt", [(ObjPointer(IDirect3DSurface9), "pSourceSurface"), (Pointer(RECT), "pSourceRect"), (ObjPointer(IDirect3DSurface9), "pDestSurface"), (Pointer(RECT), "pDestRect")]),
347     StdMethod(HRESULT, "GetDecodeGuidCount", [Out(Pointer(UINT), "pCount")], sideeffects=False),
348     StdMethod(HRESULT, "GetDecodeGuids", [(UINT, "Count"), Out(Array(GUID, "Count"), "pGuids")], sideeffects=False),
349     StdMethod(HRESULT, "GetDecodeRenderTargetFormatCount", [(REFGUID, "Guid"), Out(Pointer(UINT), "pCount")], sideeffects=False),
350     StdMethod(HRESULT, "GetDecodeRenderTargets", [(REFGUID, "Guid"), (UINT, "Count"), Out(Array(D3DFORMAT, "Count"), "pFormats")], sideeffects=False),
351     StdMethod(HRESULT, "GetDecodeCompressedBufferCount", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), Out(Pointer(UINT), "pCount")], sideeffects=False),
352     StdMethod(HRESULT, "GetDecodeCompressedBuffers", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (UINT, "Count"), Out(OpaquePointer(DXVA2_DECODEBUFFERINFO), "pBufferInfo")], sideeffects=False),
353     StdMethod(HRESULT, "GetDecodeConfigurationCount", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), Out(Pointer(UINT), "pCount")], sideeffects=False),
354     StdMethod(HRESULT, "GetDecodeConfigurations", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (UINT, "Count"), Out(Array(DXVA2_ConfigPictureDecode, "Count"), "pConfigs")], sideeffects=False),
355     StdMethod(HRESULT, "CreateDecodeDevice", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (Pointer(Const(DXVA2_ConfigPictureDecode)), "pConfig"), (Array(ObjPointer(IDirect3DSurface9), "NumSurfaces"), "ppDecoderRenderTargets"), (UINT, "NumSurfaces"), Out(Pointer(ObjPointer(IDirect3DDecodeDevice9)), "ppDecode")]),
356     StdMethod(HRESULT, "GetVideoProcessorDeviceGuidCount", [(Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), Out(Pointer(UINT), "pCount")], sideeffects=False),
357     StdMethod(HRESULT, "GetVideoProcessorDeviceGuids", [(Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (UINT, "Count"), Out(Pointer(GUID), "pGuids")], sideeffects=False),
358     StdMethod(HRESULT, "GetVideoProcessorCaps", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (D3DFORMAT, "Format"), Out(Pointer(DXVA2_VideoProcessorCaps), "pCaps")], sideeffects=False),
359     StdMethod(HRESULT, "GetProcAmpRange", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (D3DFORMAT, "Format"), (UINT, "ProcAmpCap"), Out(Pointer(DXVA2_ValueRange), "pRange")]),
360     StdMethod(HRESULT, "GetFilterPropertyRange", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (D3DFORMAT, "Format"), (UINT, "FilterSetting"), Out(Pointer(DXVA2_ValueRange), "pRange")], sideeffects=False),
361     StdMethod(HRESULT, "GetVideoProcessorRenderTargetCount", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), Out(Pointer(UINT), "pCount")], sideeffects=False),
362     StdMethod(HRESULT, "GetVideoProcessorRenderTargets", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (UINT, "Count"), Out(Array(D3DFORMAT, "Count"), "pFormats")], sideeffects=False),
363     StdMethod(HRESULT, "GetVideoProcessorSubStreamFormatCount", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (D3DFORMAT, "Format"), Out(Pointer(UINT), "pCount")], sideeffects=False),
364     StdMethod(HRESULT, "GetVideoProcessorSubStreamFormats", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (D3DFORMAT, "Format"), (UINT, "Count"), Out(Array(D3DFORMAT, "Count"), "pFormats")], sideeffects=False),
365     StdMethod(HRESULT, "CreateVideoProcessDevice", [(REFGUID, "Guid"), (Pointer(Const(DXVA2_VideoDesc)), "pVideoDesc"), (D3DFORMAT, "Format"), (UINT, "MaxSubStreams"), Out(Pointer(ObjPointer(IDirect3DVideoProcessDevice9)), "ppVideoProcessDevice")]),
366     StdMethod(HRESULT, "GetExtensionGuidCount", [(DWORD, "Extension"), Out(Pointer(UINT), "pCount")], sideeffects=False),
367     StdMethod(HRESULT, "GetExtensionGuids", [(DWORD, "Extension"), (UINT, "Count"), Out(Array(GUID, "Count"), "pGuids")], sideeffects=False),
368     StdMethod(HRESULT, "GetExtensionCaps", [(REFGUID, "Guid"), (UINT, "arg2"), (OpaquePointer(Void), "arg3"), (UINT, "arg4"), (OpaquePointer(Void), "arg5"), (UINT, "arg6")], sideeffects=False),
369     StdMethod(HRESULT, "CreateExtensionDevice", [(REFGUID, "Guid"), (OpaquePointer(Void), "arg2"), (UINT, "arg3"), Out(Pointer(ObjPointer(IDirect3DDXVAExtensionDevice9)), "ppExtension")]),
370 ]
371
372 d3d9.addInterfaces([
373     IDirect3DDxva2Container9,
374 ])