dxva2api.h 68 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945
  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 8.01.0622 */
  3. /* @@MIDL_FILE_HEADING( ) */
  4. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  5. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  6. #define __REQUIRED_RPCNDR_H_VERSION__ 500
  7. #endif
  8. /* verify that the <rpcsal.h> version is high enough to compile this file*/
  9. #ifndef __REQUIRED_RPCSAL_H_VERSION__
  10. #define __REQUIRED_RPCSAL_H_VERSION__ 100
  11. #endif
  12. #include "rpc.h"
  13. #include "rpcndr.h"
  14. #ifndef __RPCNDR_H_VERSION__
  15. #error this stub requires an updated version of <rpcndr.h>
  16. #endif /* __RPCNDR_H_VERSION__ */
  17. #ifndef COM_NO_WINDOWS_H
  18. #include "windows.h"
  19. #include "ole2.h"
  20. #endif /*COM_NO_WINDOWS_H*/
  21. #ifndef __dxva2api_h__
  22. #define __dxva2api_h__
  23. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  24. #pragma once
  25. #endif
  26. /* Forward Declarations */
  27. #ifndef __IDirect3DDeviceManager9_FWD_DEFINED__
  28. #define __IDirect3DDeviceManager9_FWD_DEFINED__
  29. typedef interface IDirect3DDeviceManager9 IDirect3DDeviceManager9;
  30. #endif /* __IDirect3DDeviceManager9_FWD_DEFINED__ */
  31. #ifndef __IDirectXVideoAccelerationService_FWD_DEFINED__
  32. #define __IDirectXVideoAccelerationService_FWD_DEFINED__
  33. typedef interface IDirectXVideoAccelerationService IDirectXVideoAccelerationService;
  34. #endif /* __IDirectXVideoAccelerationService_FWD_DEFINED__ */
  35. #ifndef __IDirectXVideoDecoderService_FWD_DEFINED__
  36. #define __IDirectXVideoDecoderService_FWD_DEFINED__
  37. typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService;
  38. #endif /* __IDirectXVideoDecoderService_FWD_DEFINED__ */
  39. #ifndef __IDirectXVideoProcessorService_FWD_DEFINED__
  40. #define __IDirectXVideoProcessorService_FWD_DEFINED__
  41. typedef interface IDirectXVideoProcessorService IDirectXVideoProcessorService;
  42. #endif /* __IDirectXVideoProcessorService_FWD_DEFINED__ */
  43. #ifndef __IDirectXVideoDecoder_FWD_DEFINED__
  44. #define __IDirectXVideoDecoder_FWD_DEFINED__
  45. typedef interface IDirectXVideoDecoder IDirectXVideoDecoder;
  46. #endif /* __IDirectXVideoDecoder_FWD_DEFINED__ */
  47. #ifndef __IDirectXVideoProcessor_FWD_DEFINED__
  48. #define __IDirectXVideoProcessor_FWD_DEFINED__
  49. typedef interface IDirectXVideoProcessor IDirectXVideoProcessor;
  50. #endif /* __IDirectXVideoProcessor_FWD_DEFINED__ */
  51. #ifndef __IDirectXVideoMemoryConfiguration_FWD_DEFINED__
  52. #define __IDirectXVideoMemoryConfiguration_FWD_DEFINED__
  53. typedef interface IDirectXVideoMemoryConfiguration IDirectXVideoMemoryConfiguration;
  54. #endif /* __IDirectXVideoMemoryConfiguration_FWD_DEFINED__ */
  55. /* header files for imported files */
  56. #include "unknwn.h"
  57. #ifdef __cplusplus
  58. extern "C"{
  59. #endif
  60. /* interface __MIDL_itf_dxva2api_0000_0000 */
  61. /* [local] */
  62. //
  63. // The following declarations within the 'if 0' block are dummy typedefs used to make
  64. // the evr.idl file build. The actual definitions are contained in d3d9.h
  65. //
  66. #if 0
  67. typedef DWORD IDirect3DDevice9;
  68. typedef DWORD IDirect3DSurface9;
  69. typedef DWORD D3DFORMAT;
  70. typedef DWORD D3DPOOL;
  71. #endif
  72. #ifndef DXVA2_API_DEFINED
  73. #define DXVA2_API_DEFINED
  74. DEFINE_GUID(DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0, 0x4563,0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);
  75. DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea, 0x4690,0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);
  76. DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28, 0x4e65,0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);
  77. DEFINE_GUID(DXVA2_ModeMPEG1_VLD, 0x6f3ec719, 0x3735, 0x42cc,0x80,0x63,0x65,0xcc,0x3c,0xb3,0x66,0x16);
  78. DEFINE_GUID(DXVA2_ModeMPEG2and1_VLD,0x86695f12, 0x340e, 0x4f04,0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60);
  79. DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  80. DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  81. DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  82. DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  83. DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  84. DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  85. DEFINE_GUID(DXVA2_ModeH264_VLD_WithFMOASO_NoFGT, 0xd5f04ff9, 0x3418,0x45d8,0x95,0x61,0x32,0xa7,0x6a,0xae,0x2d,0xdd);
  86. DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT, 0xd79be8da, 0x0cf1,0x4c81,0xb8,0x2a,0x69,0xa4,0xe2,0x36,0xf4,0x3d);
  87. DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_NoFGT, 0xf9aaccbb, 0xc2b6,0x4cfc,0x87,0x79,0x57,0x07,0xb1,0x76,0x05,0x52);
  88. DEFINE_GUID(DXVA2_ModeH264_VLD_Multiview_NoFGT, 0x705b9d82, 0x76cf,0x49d6,0xb7,0xe6,0xac,0x88,0x72,0xdb,0x01,0x3c);
  89. DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  90. DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  91. DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  92. DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  93. DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  94. DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  95. DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  96. DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  97. DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  98. DEFINE_GUID(DXVA2_ModeVC1_D2010,0x1b81beA4, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  99. DEFINE_GUID(DXVA2_NoEncrypt, 0x1b81beD0, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
  100. DEFINE_GUID(DXVA2_VideoProcProgressiveDevice, 0x5a54a0c9,0xc7ec,0x4bd9,0x8e,0xde,0xf3,0xc7,0x5d,0xc4,0x39,0x3b);
  101. DEFINE_GUID(DXVA2_VideoProcBobDevice, 0x335aa36e,0x7884,0x43a4,0x9c,0x91,0x7f,0x87,0xfa,0xf3,0xe3,0x7e);
  102. DEFINE_GUID(DXVA2_VideoProcSoftwareDevice, 0x4553d47f,0xee7e,0x4e3f,0x94,0x75,0xdb,0xf1,0x37,0x6c,0x48,0x10);
  103. DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_Simple, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);
  104. DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC, 0xed418a9f, 0x010d,0x4eda,0x9a,0xe3,0x9a,0x65,0x35,0x8d,0x8d,0x2e);
  105. DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_GMC, 0xab998b5b, 0x4258,0x44a9,0x9f,0xeb,0x94,0xe5,0x97,0xa6,0xba,0xae);
  106. DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main, 0x5b11d51b, 0x2f4c,0x4452,0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0);
  107. DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main10, 0x107af0e0, 0xef1a,0x4d19,0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13);
  108. DEFINE_GUID(DXVA2_ModeVP9_VLD_Profile0, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);
  109. DEFINE_GUID(DXVA2_ModeVP9_VLD_10bit_Profile2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);
  110. DEFINE_GUID(DXVA2_ModeVP8_VLD, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);
  111. #define DXVA2_ModeMPEG2_MOCOMP DXVA2_ModeMPEG2_MoComp
  112. #define DXVA2_ModeWMV8_PostProc DXVA2_ModeWMV8_A
  113. #define DXVA2_ModeWMV8_MoComp DXVA2_ModeWMV8_B
  114. #define DXVA2_ModeWMV9_PostProc DXVA2_ModeWMV9_A
  115. #define DXVA2_ModeWMV9_MoComp DXVA2_ModeWMV9_B
  116. #define DXVA2_ModeWMV9_IDCT DXVA2_ModeWMV9_C
  117. #define DXVA2_ModeVC1_PostProc DXVA2_ModeVC1_A
  118. #define DXVA2_ModeVC1_MoComp DXVA2_ModeVC1_B
  119. #define DXVA2_ModeVC1_IDCT DXVA2_ModeVC1_C
  120. #define DXVA2_ModeVC1_VLD DXVA2_ModeVC1_D
  121. #define DXVA2_ModeH264_MoComp_NoFGT DXVA2_ModeH264_A
  122. #define DXVA2_ModeH264_MoComp_FGT DXVA2_ModeH264_B
  123. #define DXVA2_ModeH264_IDCT_NoFGT DXVA2_ModeH264_C
  124. #define DXVA2_ModeH264_IDCT_FGT DXVA2_ModeH264_D
  125. #define DXVA2_ModeH264_VLD_NoFGT DXVA2_ModeH264_E
  126. #define DXVA2_ModeH264_VLD_FGT DXVA2_ModeH264_F
  127. #define DXVA2_E_NOT_INITIALIZED ((HRESULT)0x80041000L)
  128. #define DXVA2_E_NEW_VIDEO_DEVICE ((HRESULT)0x80041001L)
  129. #define DXVA2_E_VIDEO_DEVICE_LOCKED ((HRESULT)0x80041002L)
  130. #define DXVA2_E_NOT_AVAILABLE ((HRESULT)0x80041003L)
  131. #if defined(_WIN32) && !defined(_NO_COM)
  132. DEFINE_GUID(IID_IDirect3DDeviceManager9, 0xa0cade0f,0x06d5,0x4cf4,0xa1,0xc7,0xf3,0xcd,0xd7,0x25,0xaa,0x75);
  133. DEFINE_GUID(IID_IDirectXVideoAccelerationService, 0xfc51a550,0xd5e7,0x11d9,0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02);
  134. DEFINE_GUID(IID_IDirectXVideoDecoderService, 0xfc51a551,0xd5e7,0x11d9,0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02);
  135. DEFINE_GUID(IID_IDirectXVideoProcessorService, 0xfc51a552,0xd5e7,0x11d9,0xaf,0x55,0x00,0x05,0x4e,0x43,0xff,0x02);
  136. DEFINE_GUID(IID_IDirectXVideoDecoder, 0xf2b0810a,0xfd00,0x43c9,0x91,0x8c,0xdf,0x94,0xe2,0xd8,0xef,0x7d);
  137. DEFINE_GUID(IID_IDirectXVideoProcessor, 0x8c3a39f0,0x916e,0x4690,0x80,0x4f,0x4c,0x80,0x01,0x35,0x5d,0x25);
  138. DEFINE_GUID(IID_IDirectXVideoMemoryConfiguration, 0xb7f916dd,0xdb3b,0x49c1,0x84,0xd7,0xe4,0x5e,0xf9,0x9e,0xc7,0x26);
  139. #endif
  140. #ifndef MAX_DEINTERLACE_SURFACES
  141. #define MAX_DEINTERLACE_SURFACES 32
  142. #endif
  143. #ifndef MAX_SUBSTREAMS
  144. #define MAX_SUBSTREAMS 15
  145. #endif
  146. #pragma warning( push )
  147. #pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
  148. typedef struct _DXVA2_ExtendedFormat
  149. {
  150. union
  151. {
  152. struct
  153. {
  154. UINT SampleFormat : 8;
  155. UINT VideoChromaSubsampling : 4;
  156. UINT NominalRange : 3;
  157. UINT VideoTransferMatrix : 3;
  158. UINT VideoLighting : 4;
  159. UINT VideoPrimaries : 5;
  160. UINT VideoTransferFunction : 5;
  161. } ;
  162. UINT value;
  163. } ;
  164. } DXVA2_ExtendedFormat;
  165. #pragma warning( pop )
  166. typedef
  167. enum _DXVA2_SampleFormat
  168. {
  169. DXVA2_SampleFormatMask = 0xff,
  170. DXVA2_SampleUnknown = 0,
  171. DXVA2_SampleProgressiveFrame = 2,
  172. DXVA2_SampleFieldInterleavedEvenFirst = 3,
  173. DXVA2_SampleFieldInterleavedOddFirst = 4,
  174. DXVA2_SampleFieldSingleEven = 5,
  175. DXVA2_SampleFieldSingleOdd = 6,
  176. DXVA2_SampleSubStream = 7
  177. } DXVA2_SampleFormat;
  178. typedef
  179. enum _DXVA2_VideoChromaSubSampling
  180. {
  181. DXVA2_VideoChromaSubsamplingMask = 0xf,
  182. DXVA2_VideoChromaSubsampling_Unknown = 0,
  183. DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8,
  184. DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4,
  185. DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2,
  186. DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
  187. DXVA2_VideoChromaSubsampling_MPEG2 = ( DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes ) ,
  188. DXVA2_VideoChromaSubsampling_MPEG1 = DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
  189. DXVA2_VideoChromaSubsampling_DV_PAL = ( DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited ) ,
  190. DXVA2_VideoChromaSubsampling_Cosited = ( ( DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited ) | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes )
  191. } DXVA2_VideoChromaSubSampling;
  192. typedef
  193. enum _DXVA2_NominalRange
  194. {
  195. DXVA2_NominalRangeMask = 0x7,
  196. DXVA2_NominalRange_Unknown = 0,
  197. DXVA2_NominalRange_Normal = 1,
  198. DXVA2_NominalRange_Wide = 2,
  199. DXVA2_NominalRange_0_255 = 1,
  200. DXVA2_NominalRange_16_235 = 2,
  201. DXVA2_NominalRange_48_208 = 3
  202. } DXVA2_NominalRange;
  203. typedef
  204. enum _DXVA2_VideoTransferMatrix
  205. {
  206. DXVA2_VideoTransferMatrixMask = 0x7,
  207. DXVA2_VideoTransferMatrix_Unknown = 0,
  208. DXVA2_VideoTransferMatrix_BT709 = 1,
  209. DXVA2_VideoTransferMatrix_BT601 = 2,
  210. DXVA2_VideoTransferMatrix_SMPTE240M = 3
  211. } DXVA2_VideoTransferMatrix;
  212. typedef
  213. enum _DXVA2_VideoLighting
  214. {
  215. DXVA2_VideoLightingMask = 0xf,
  216. DXVA2_VideoLighting_Unknown = 0,
  217. DXVA2_VideoLighting_bright = 1,
  218. DXVA2_VideoLighting_office = 2,
  219. DXVA2_VideoLighting_dim = 3,
  220. DXVA2_VideoLighting_dark = 4
  221. } DXVA2_VideoLighting;
  222. typedef
  223. enum _DXVA2_VideoPrimaries
  224. {
  225. DXVA2_VideoPrimariesMask = 0x1f,
  226. DXVA2_VideoPrimaries_Unknown = 0,
  227. DXVA2_VideoPrimaries_reserved = 1,
  228. DXVA2_VideoPrimaries_BT709 = 2,
  229. DXVA2_VideoPrimaries_BT470_2_SysM = 3,
  230. DXVA2_VideoPrimaries_BT470_2_SysBG = 4,
  231. DXVA2_VideoPrimaries_SMPTE170M = 5,
  232. DXVA2_VideoPrimaries_SMPTE240M = 6,
  233. DXVA2_VideoPrimaries_EBU3213 = 7,
  234. DXVA2_VideoPrimaries_SMPTE_C = 8
  235. } DXVA2_VideoPrimaries;
  236. typedef
  237. enum _DXVA2_VideoTransferFunction
  238. {
  239. DXVA2_VideoTransFuncMask = 0x1f,
  240. DXVA2_VideoTransFunc_Unknown = 0,
  241. DXVA2_VideoTransFunc_10 = 1,
  242. DXVA2_VideoTransFunc_18 = 2,
  243. DXVA2_VideoTransFunc_20 = 3,
  244. DXVA2_VideoTransFunc_22 = 4,
  245. DXVA2_VideoTransFunc_709 = 5,
  246. DXVA2_VideoTransFunc_240M = 6,
  247. DXVA2_VideoTransFunc_sRGB = 7,
  248. DXVA2_VideoTransFunc_28 = 8
  249. } DXVA2_VideoTransferFunction;
  250. //
  251. // Deprecated labels - please use the ones in the DXVA2_VideoTransferFunction enum.
  252. //
  253. #define DXVA2_VideoTransFunc_22_709 DXVA2_VideoTransFunc_709
  254. #define DXVA2_VideoTransFunc_22_240M DXVA2_VideoTransFunc_240M
  255. #define DXVA2_VideoTransFunc_22_8bit_sRGB DXVA2_VideoTransFunc_sRGB
  256. typedef struct _DXVA2_Frequency
  257. {
  258. UINT Numerator;
  259. UINT Denominator;
  260. } DXVA2_Frequency;
  261. typedef struct _DXVA2_VideoDesc
  262. {
  263. UINT SampleWidth;
  264. UINT SampleHeight;
  265. DXVA2_ExtendedFormat SampleFormat;
  266. D3DFORMAT Format;
  267. DXVA2_Frequency InputSampleFreq;
  268. DXVA2_Frequency OutputFrameFreq;
  269. UINT UABProtectionLevel;
  270. UINT Reserved;
  271. } DXVA2_VideoDesc;
  272. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0003
  273. {
  274. DXVA2_DeinterlaceTech_Unknown = 0,
  275. DXVA2_DeinterlaceTech_BOBLineReplicate = 0x1,
  276. DXVA2_DeinterlaceTech_BOBVerticalStretch = 0x2,
  277. DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap = 0x4,
  278. DXVA2_DeinterlaceTech_MedianFiltering = 0x8,
  279. DXVA2_DeinterlaceTech_EdgeFiltering = 0x10,
  280. DXVA2_DeinterlaceTech_FieldAdaptive = 0x20,
  281. DXVA2_DeinterlaceTech_PixelAdaptive = 0x40,
  282. DXVA2_DeinterlaceTech_MotionVectorSteered = 0x80,
  283. DXVA2_DeinterlaceTech_InverseTelecine = 0x100,
  284. DXVA2_DeinterlaceTech_Mask = 0x1ff
  285. } ;
  286. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0004
  287. {
  288. DXVA2_NoiseFilterLumaLevel = 1,
  289. DXVA2_NoiseFilterLumaThreshold = 2,
  290. DXVA2_NoiseFilterLumaRadius = 3,
  291. DXVA2_NoiseFilterChromaLevel = 4,
  292. DXVA2_NoiseFilterChromaThreshold = 5,
  293. DXVA2_NoiseFilterChromaRadius = 6,
  294. DXVA2_DetailFilterLumaLevel = 7,
  295. DXVA2_DetailFilterLumaThreshold = 8,
  296. DXVA2_DetailFilterLumaRadius = 9,
  297. DXVA2_DetailFilterChromaLevel = 10,
  298. DXVA2_DetailFilterChromaThreshold = 11,
  299. DXVA2_DetailFilterChromaRadius = 12
  300. } ;
  301. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0005
  302. {
  303. DXVA2_NoiseFilterTech_Unsupported = 0,
  304. DXVA2_NoiseFilterTech_Unknown = 0x1,
  305. DXVA2_NoiseFilterTech_Median = 0x2,
  306. DXVA2_NoiseFilterTech_Temporal = 0x4,
  307. DXVA2_NoiseFilterTech_BlockNoise = 0x8,
  308. DXVA2_NoiseFilterTech_MosquitoNoise = 0x10,
  309. DXVA2_NoiseFilterTech_Mask = 0x1f
  310. } ;
  311. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0006
  312. {
  313. DXVA2_DetailFilterTech_Unsupported = 0,
  314. DXVA2_DetailFilterTech_Unknown = 0x1,
  315. DXVA2_DetailFilterTech_Edge = 0x2,
  316. DXVA2_DetailFilterTech_Sharpening = 0x4,
  317. DXVA2_DetailFilterTech_Mask = 0x7
  318. } ;
  319. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0007
  320. {
  321. DXVA2_ProcAmp_None = 0,
  322. DXVA2_ProcAmp_Brightness = 0x1,
  323. DXVA2_ProcAmp_Contrast = 0x2,
  324. DXVA2_ProcAmp_Hue = 0x4,
  325. DXVA2_ProcAmp_Saturation = 0x8,
  326. DXVA2_ProcAmp_Mask = 0xf
  327. } ;
  328. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0008
  329. {
  330. DXVA2_VideoProcess_None = 0,
  331. DXVA2_VideoProcess_YUV2RGB = 0x1,
  332. DXVA2_VideoProcess_StretchX = 0x2,
  333. DXVA2_VideoProcess_StretchY = 0x4,
  334. DXVA2_VideoProcess_AlphaBlend = 0x8,
  335. DXVA2_VideoProcess_SubRects = 0x10,
  336. DXVA2_VideoProcess_SubStreams = 0x20,
  337. DXVA2_VideoProcess_SubStreamsExtended = 0x40,
  338. DXVA2_VideoProcess_YUV2RGBExtended = 0x80,
  339. DXVA2_VideoProcess_AlphaBlendExtended = 0x100,
  340. DXVA2_VideoProcess_Constriction = 0x200,
  341. DXVA2_VideoProcess_NoiseFilter = 0x400,
  342. DXVA2_VideoProcess_DetailFilter = 0x800,
  343. DXVA2_VideoProcess_PlanarAlpha = 0x1000,
  344. DXVA2_VideoProcess_LinearScaling = 0x2000,
  345. DXVA2_VideoProcess_GammaCompensated = 0x4000,
  346. DXVA2_VideoProcess_MaintainsOriginalFieldData = 0x8000,
  347. DXVA2_VideoProcess_Mask = 0xffff
  348. } ;
  349. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0009
  350. {
  351. DXVA2_VPDev_HardwareDevice = 0x1,
  352. DXVA2_VPDev_EmulatedDXVA1 = 0x2,
  353. DXVA2_VPDev_SoftwareDevice = 0x4,
  354. DXVA2_VPDev_Mask = 0x7
  355. } ;
  356. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0010
  357. {
  358. DXVA2_SampleData_RFF = 0x1,
  359. DXVA2_SampleData_TFF = 0x2,
  360. DXVA2_SampleData_RFF_TFF_Present = 0x4,
  361. DXVA2_SampleData_Mask = 0xffff
  362. } ;
  363. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0011
  364. {
  365. DXVA2_DestData_RFF = 0x1,
  366. DXVA2_DestData_TFF = 0x2,
  367. DXVA2_DestData_RFF_TFF_Present = 0x4,
  368. DXVA2_DestData_Mask = 0xffff
  369. } ;
  370. typedef struct _DXVA2_VideoProcessorCaps
  371. {
  372. UINT DeviceCaps;
  373. D3DPOOL InputPool;
  374. UINT NumForwardRefSamples;
  375. UINT NumBackwardRefSamples;
  376. UINT Reserved;
  377. UINT DeinterlaceTechnology;
  378. UINT ProcAmpControlCaps;
  379. UINT VideoProcessorOperations;
  380. UINT NoiseFilterTechnology;
  381. UINT DetailFilterTechnology;
  382. } DXVA2_VideoProcessorCaps;
  383. #ifdef __midl
  384. typedef LONG DXVA2_Fixed32;
  385. #else
  386. #pragma warning( push )
  387. #pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
  388. typedef struct _DXVA2_Fixed32
  389. {
  390. union {
  391. struct {
  392. USHORT Fraction;
  393. SHORT Value;
  394. };
  395. LONG ll;
  396. };
  397. } DXVA2_Fixed32;
  398. #pragma warning( pop )
  399. #endif
  400. typedef struct _DXVA2_AYUVSample8
  401. {
  402. UCHAR Cr;
  403. UCHAR Cb;
  404. UCHAR Y;
  405. UCHAR Alpha;
  406. } DXVA2_AYUVSample8;
  407. typedef struct _DXVA2_AYUVSample16
  408. {
  409. USHORT Cr;
  410. USHORT Cb;
  411. USHORT Y;
  412. USHORT Alpha;
  413. } DXVA2_AYUVSample16;
  414. typedef LONGLONG REFERENCE_TIME;
  415. #if defined(_D3D9_H_) || defined(_d3d9P_H_)
  416. typedef struct _DXVA2_VideoSample
  417. {
  418. REFERENCE_TIME Start;
  419. REFERENCE_TIME End;
  420. DXVA2_ExtendedFormat SampleFormat;
  421. IDirect3DSurface9 *SrcSurface;
  422. RECT SrcRect;
  423. RECT DstRect;
  424. DXVA2_AYUVSample8 Pal[ 16 ];
  425. DXVA2_Fixed32 PlanarAlpha;
  426. DWORD SampleData;
  427. } DXVA2_VideoSample;
  428. #endif // _D3D9_H_
  429. typedef struct _DXVA2_ValueRange
  430. {
  431. DXVA2_Fixed32 MinValue;
  432. DXVA2_Fixed32 MaxValue;
  433. DXVA2_Fixed32 DefaultValue;
  434. DXVA2_Fixed32 StepSize;
  435. } DXVA2_ValueRange;
  436. typedef struct _DXVA2_ProcAmpValues
  437. {
  438. DXVA2_Fixed32 Brightness;
  439. DXVA2_Fixed32 Contrast;
  440. DXVA2_Fixed32 Hue;
  441. DXVA2_Fixed32 Saturation;
  442. } DXVA2_ProcAmpValues;
  443. typedef struct _DXVA2_FilterValues
  444. {
  445. DXVA2_Fixed32 Level;
  446. DXVA2_Fixed32 Threshold;
  447. DXVA2_Fixed32 Radius;
  448. } DXVA2_FilterValues;
  449. typedef struct _DXVA2_VideoProcessBltParams
  450. {
  451. REFERENCE_TIME TargetFrame;
  452. RECT TargetRect;
  453. SIZE ConstrictionSize;
  454. UINT StreamingFlags;
  455. DXVA2_AYUVSample16 BackgroundColor;
  456. DXVA2_ExtendedFormat DestFormat;
  457. DXVA2_ProcAmpValues ProcAmpValues;
  458. DXVA2_Fixed32 Alpha;
  459. DXVA2_FilterValues NoiseFilterLuma;
  460. DXVA2_FilterValues NoiseFilterChroma;
  461. DXVA2_FilterValues DetailFilterLuma;
  462. DXVA2_FilterValues DetailFilterChroma;
  463. DWORD DestData;
  464. } DXVA2_VideoProcessBltParams;
  465. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0012
  466. {
  467. DXVA2_PictureParametersBufferType = 0,
  468. DXVA2_MacroBlockControlBufferType = 1,
  469. DXVA2_ResidualDifferenceBufferType = 2,
  470. DXVA2_DeblockingControlBufferType = 3,
  471. DXVA2_InverseQuantizationMatrixBufferType = 4,
  472. DXVA2_SliceControlBufferType = 5,
  473. DXVA2_BitStreamDateBufferType = 6,
  474. DXVA2_MotionVectorBuffer = 7,
  475. DXVA2_FilmGrainBuffer = 8
  476. } ;
  477. enum __MIDL___MIDL_itf_dxva2api_0000_0000_0013
  478. {
  479. DXVA2_VideoDecoderRenderTarget = 0,
  480. DXVA2_VideoProcessorRenderTarget = 1,
  481. DXVA2_VideoSoftwareRenderTarget = 2
  482. } ;
  483. typedef struct _DXVA2_ConfigPictureDecode
  484. {
  485. GUID guidConfigBitstreamEncryption;
  486. GUID guidConfigMBcontrolEncryption;
  487. GUID guidConfigResidDiffEncryption;
  488. UINT ConfigBitstreamRaw;
  489. UINT ConfigMBcontrolRasterOrder;
  490. UINT ConfigResidDiffHost;
  491. UINT ConfigSpatialResid8;
  492. UINT ConfigResid8Subtraction;
  493. UINT ConfigSpatialHost8or9Clipping;
  494. UINT ConfigSpatialResidInterleaved;
  495. UINT ConfigIntraResidUnsigned;
  496. UINT ConfigResidDiffAccelerator;
  497. UINT ConfigHostInverseScan;
  498. UINT ConfigSpecificIDCT;
  499. UINT Config4GroupedCoefs;
  500. USHORT ConfigMinRenderTargetBuffCount;
  501. USHORT ConfigDecoderSpecific;
  502. } DXVA2_ConfigPictureDecode;
  503. typedef struct _DXVA2_DecodeBufferDesc
  504. {
  505. DWORD CompressedBufferType;
  506. UINT BufferIndex;
  507. UINT DataOffset;
  508. UINT DataSize;
  509. UINT FirstMBaddress;
  510. UINT NumMBsInBuffer;
  511. UINT Width;
  512. UINT Height;
  513. UINT Stride;
  514. UINT ReservedBits;
  515. PVOID pvPVPState;
  516. } DXVA2_DecodeBufferDesc;
  517. // The value in pvPVPState depends on the type of crypo used. For
  518. // D3DCRYPTOTYPE_AES128_CTR, pvPState points to the following structure:
  519. typedef struct _DXVA2_AES_CTR_IV
  520. {
  521. UINT64 IV;
  522. UINT64 Count;
  523. } DXVA2_AES_CTR_IV;
  524. typedef struct _DXVA2_DecodeExtensionData
  525. {
  526. UINT Function;
  527. PVOID pPrivateInputData;
  528. UINT PrivateInputDataSize;
  529. PVOID pPrivateOutputData;
  530. UINT PrivateOutputDataSize;
  531. } DXVA2_DecodeExtensionData;
  532. // DXVA2_DECODE_GET_DRIVER_HANDLE is an extension function that allows the
  533. // driver to return a handle for the DXVA2 decode device that can be used to
  534. // associate it with a IDirect3DCryptoSession9 interface. When this function
  535. // is used:
  536. // pPrivateInputData = NULL
  537. // pPrivateInputDataSize = 0
  538. // pPrivateOutputData = HANDLE*
  539. // pPrivateOutputDataSize = sizeof(HANDLE)
  540. #define DXVA2_DECODE_GET_DRIVER_HANDLE 0x725
  541. // DXVA2_DECODE_SPECIFY_ENCRYPTED_BLOCKS is an extension function that that allows
  542. // the decoder to specify which portions of the compressed buffers are encrypted.
  543. // If this fucntion is not used to specify this information, it is assumed that
  544. // the entire buffer is encrypted.
  545. // pPrivateInputData = D3DENCRYPTED_BLOCK_INFO*;
  546. // PrivateInputDataSize = sizeof(D3DENCRYPTED_BLOCK_INFO);
  547. // pPrivateOutputData = NULL;
  548. // PrivateOutputDataSize = 0;
  549. #define DXVA2_DECODE_SPECIFY_ENCRYPTED_BLOCKS 0x724
  550. typedef struct _DXVA2_DecodeExecuteParams
  551. {
  552. UINT NumCompBuffers;
  553. DXVA2_DecodeBufferDesc *pCompressedBuffers;
  554. DXVA2_DecodeExtensionData *pExtensionData;
  555. } DXVA2_DecodeExecuteParams;
  556. #if defined(_D3D9_H_) || defined(_d3d9P_H_)
  557. extern RPC_IF_HANDLE __MIDL_itf_dxva2api_0000_0000_v0_0_c_ifspec;
  558. extern RPC_IF_HANDLE __MIDL_itf_dxva2api_0000_0000_v0_0_s_ifspec;
  559. #ifndef __IDirect3DDeviceManager9_INTERFACE_DEFINED__
  560. #define __IDirect3DDeviceManager9_INTERFACE_DEFINED__
  561. /* interface IDirect3DDeviceManager9 */
  562. /* [local][helpstring][uuid][object] */
  563. EXTERN_C const IID IID_IDirect3DDeviceManager9;
  564. #if defined(__cplusplus) && !defined(CINTERFACE)
  565. MIDL_INTERFACE("a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75")
  566. IDirect3DDeviceManager9 : public IUnknown
  567. {
  568. public:
  569. virtual HRESULT STDMETHODCALLTYPE ResetDevice(
  570. /* [annotation][in] */
  571. _In_ IDirect3DDevice9 *pDevice,
  572. /* [annotation][in] */
  573. _In_ UINT resetToken) = 0;
  574. virtual HRESULT STDMETHODCALLTYPE OpenDeviceHandle(
  575. /* [annotation][out] */
  576. _Out_ HANDLE *phDevice) = 0;
  577. virtual HRESULT STDMETHODCALLTYPE CloseDeviceHandle(
  578. /* [annotation][in] */
  579. _In_ HANDLE hDevice) = 0;
  580. virtual HRESULT STDMETHODCALLTYPE TestDevice(
  581. /* [annotation][in] */
  582. _In_ HANDLE hDevice) = 0;
  583. virtual HRESULT STDMETHODCALLTYPE LockDevice(
  584. /* [annotation][in] */
  585. _In_ HANDLE hDevice,
  586. /* [annotation][out] */
  587. _Outptr_ IDirect3DDevice9 **ppDevice,
  588. /* [annotation][in] */
  589. _In_ BOOL fBlock) = 0;
  590. virtual HRESULT STDMETHODCALLTYPE UnlockDevice(
  591. /* [annotation][in] */
  592. _In_ HANDLE hDevice,
  593. /* [annotation][in] */
  594. _In_ BOOL fSaveState) = 0;
  595. virtual HRESULT STDMETHODCALLTYPE GetVideoService(
  596. /* [annotation][in] */
  597. _In_ HANDLE hDevice,
  598. /* [annotation][in] */
  599. _In_ REFIID riid,
  600. /* [annotation][out] */
  601. _Outptr_ void **ppService) = 0;
  602. };
  603. #else /* C style interface */
  604. typedef struct IDirect3DDeviceManager9Vtbl
  605. {
  606. BEGIN_INTERFACE
  607. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  608. IDirect3DDeviceManager9 * This,
  609. /* [in] */ REFIID riid,
  610. /* [annotation][iid_is][out] */
  611. _COM_Outptr_ void **ppvObject);
  612. ULONG ( STDMETHODCALLTYPE *AddRef )(
  613. IDirect3DDeviceManager9 * This);
  614. ULONG ( STDMETHODCALLTYPE *Release )(
  615. IDirect3DDeviceManager9 * This);
  616. HRESULT ( STDMETHODCALLTYPE *ResetDevice )(
  617. IDirect3DDeviceManager9 * This,
  618. /* [annotation][in] */
  619. _In_ IDirect3DDevice9 *pDevice,
  620. /* [annotation][in] */
  621. _In_ UINT resetToken);
  622. HRESULT ( STDMETHODCALLTYPE *OpenDeviceHandle )(
  623. IDirect3DDeviceManager9 * This,
  624. /* [annotation][out] */
  625. _Out_ HANDLE *phDevice);
  626. HRESULT ( STDMETHODCALLTYPE *CloseDeviceHandle )(
  627. IDirect3DDeviceManager9 * This,
  628. /* [annotation][in] */
  629. _In_ HANDLE hDevice);
  630. HRESULT ( STDMETHODCALLTYPE *TestDevice )(
  631. IDirect3DDeviceManager9 * This,
  632. /* [annotation][in] */
  633. _In_ HANDLE hDevice);
  634. HRESULT ( STDMETHODCALLTYPE *LockDevice )(
  635. IDirect3DDeviceManager9 * This,
  636. /* [annotation][in] */
  637. _In_ HANDLE hDevice,
  638. /* [annotation][out] */
  639. _Outptr_ IDirect3DDevice9 **ppDevice,
  640. /* [annotation][in] */
  641. _In_ BOOL fBlock);
  642. HRESULT ( STDMETHODCALLTYPE *UnlockDevice )(
  643. IDirect3DDeviceManager9 * This,
  644. /* [annotation][in] */
  645. _In_ HANDLE hDevice,
  646. /* [annotation][in] */
  647. _In_ BOOL fSaveState);
  648. HRESULT ( STDMETHODCALLTYPE *GetVideoService )(
  649. IDirect3DDeviceManager9 * This,
  650. /* [annotation][in] */
  651. _In_ HANDLE hDevice,
  652. /* [annotation][in] */
  653. _In_ REFIID riid,
  654. /* [annotation][out] */
  655. _Outptr_ void **ppService);
  656. END_INTERFACE
  657. } IDirect3DDeviceManager9Vtbl;
  658. interface IDirect3DDeviceManager9
  659. {
  660. CONST_VTBL struct IDirect3DDeviceManager9Vtbl *lpVtbl;
  661. };
  662. #ifdef COBJMACROS
  663. #define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) \
  664. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  665. #define IDirect3DDeviceManager9_AddRef(This) \
  666. ( (This)->lpVtbl -> AddRef(This) )
  667. #define IDirect3DDeviceManager9_Release(This) \
  668. ( (This)->lpVtbl -> Release(This) )
  669. #define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) \
  670. ( (This)->lpVtbl -> ResetDevice(This,pDevice,resetToken) )
  671. #define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) \
  672. ( (This)->lpVtbl -> OpenDeviceHandle(This,phDevice) )
  673. #define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) \
  674. ( (This)->lpVtbl -> CloseDeviceHandle(This,hDevice) )
  675. #define IDirect3DDeviceManager9_TestDevice(This,hDevice) \
  676. ( (This)->lpVtbl -> TestDevice(This,hDevice) )
  677. #define IDirect3DDeviceManager9_LockDevice(This,hDevice,ppDevice,fBlock) \
  678. ( (This)->lpVtbl -> LockDevice(This,hDevice,ppDevice,fBlock) )
  679. #define IDirect3DDeviceManager9_UnlockDevice(This,hDevice,fSaveState) \
  680. ( (This)->lpVtbl -> UnlockDevice(This,hDevice,fSaveState) )
  681. #define IDirect3DDeviceManager9_GetVideoService(This,hDevice,riid,ppService) \
  682. ( (This)->lpVtbl -> GetVideoService(This,hDevice,riid,ppService) )
  683. #endif /* COBJMACROS */
  684. #endif /* C style interface */
  685. #endif /* __IDirect3DDeviceManager9_INTERFACE_DEFINED__ */
  686. #ifndef __IDirectXVideoAccelerationService_INTERFACE_DEFINED__
  687. #define __IDirectXVideoAccelerationService_INTERFACE_DEFINED__
  688. /* interface IDirectXVideoAccelerationService */
  689. /* [local][helpstring][uuid][object] */
  690. EXTERN_C const IID IID_IDirectXVideoAccelerationService;
  691. #if defined(__cplusplus) && !defined(CINTERFACE)
  692. MIDL_INTERFACE("fc51a550-d5e7-11d9-af55-00054e43ff02")
  693. IDirectXVideoAccelerationService : public IUnknown
  694. {
  695. public:
  696. virtual HRESULT STDMETHODCALLTYPE CreateSurface(
  697. /* [annotation][in] */
  698. _In_ UINT Width,
  699. /* [annotation][in] */
  700. _In_ UINT Height,
  701. /* [annotation][in] */
  702. _In_ UINT BackBuffers,
  703. /* [annotation][in] */
  704. _In_ D3DFORMAT Format,
  705. /* [annotation][in] */
  706. _In_ D3DPOOL Pool,
  707. /* [annotation][in] */
  708. _In_ DWORD Usage,
  709. /* [annotation][in] */
  710. _In_ DWORD DxvaType,
  711. /* [annotation][size_is][out] */
  712. _Out_writes_(BackBuffers+1) IDirect3DSurface9 **ppSurface,
  713. /* [annotation][out][in] */
  714. _Inout_opt_ HANDLE *pSharedHandle) = 0;
  715. };
  716. #else /* C style interface */
  717. typedef struct IDirectXVideoAccelerationServiceVtbl
  718. {
  719. BEGIN_INTERFACE
  720. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  721. IDirectXVideoAccelerationService * This,
  722. /* [in] */ REFIID riid,
  723. /* [annotation][iid_is][out] */
  724. _COM_Outptr_ void **ppvObject);
  725. ULONG ( STDMETHODCALLTYPE *AddRef )(
  726. IDirectXVideoAccelerationService * This);
  727. ULONG ( STDMETHODCALLTYPE *Release )(
  728. IDirectXVideoAccelerationService * This);
  729. HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
  730. IDirectXVideoAccelerationService * This,
  731. /* [annotation][in] */
  732. _In_ UINT Width,
  733. /* [annotation][in] */
  734. _In_ UINT Height,
  735. /* [annotation][in] */
  736. _In_ UINT BackBuffers,
  737. /* [annotation][in] */
  738. _In_ D3DFORMAT Format,
  739. /* [annotation][in] */
  740. _In_ D3DPOOL Pool,
  741. /* [annotation][in] */
  742. _In_ DWORD Usage,
  743. /* [annotation][in] */
  744. _In_ DWORD DxvaType,
  745. /* [annotation][size_is][out] */
  746. _Out_writes_(BackBuffers+1) IDirect3DSurface9 **ppSurface,
  747. /* [annotation][out][in] */
  748. _Inout_opt_ HANDLE *pSharedHandle);
  749. END_INTERFACE
  750. } IDirectXVideoAccelerationServiceVtbl;
  751. interface IDirectXVideoAccelerationService
  752. {
  753. CONST_VTBL struct IDirectXVideoAccelerationServiceVtbl *lpVtbl;
  754. };
  755. #ifdef COBJMACROS
  756. #define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) \
  757. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  758. #define IDirectXVideoAccelerationService_AddRef(This) \
  759. ( (This)->lpVtbl -> AddRef(This) )
  760. #define IDirectXVideoAccelerationService_Release(This) \
  761. ( (This)->lpVtbl -> Release(This) )
  762. #define IDirectXVideoAccelerationService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) \
  763. ( (This)->lpVtbl -> CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) )
  764. #endif /* COBJMACROS */
  765. #endif /* C style interface */
  766. #endif /* __IDirectXVideoAccelerationService_INTERFACE_DEFINED__ */
  767. #ifndef __IDirectXVideoDecoderService_INTERFACE_DEFINED__
  768. #define __IDirectXVideoDecoderService_INTERFACE_DEFINED__
  769. /* interface IDirectXVideoDecoderService */
  770. /* [local][helpstring][uuid][object] */
  771. EXTERN_C const IID IID_IDirectXVideoDecoderService;
  772. #if defined(__cplusplus) && !defined(CINTERFACE)
  773. MIDL_INTERFACE("fc51a551-d5e7-11d9-af55-00054e43ff02")
  774. IDirectXVideoDecoderService : public IDirectXVideoAccelerationService
  775. {
  776. public:
  777. virtual HRESULT STDMETHODCALLTYPE GetDecoderDeviceGuids(
  778. /* [annotation][out] */
  779. _Out_ UINT *pCount,
  780. /* [annotation][size_is][unique][out] */
  781. _Outptr_result_buffer_maybenull_(*pCount) GUID **pGuids) = 0;
  782. virtual HRESULT STDMETHODCALLTYPE GetDecoderRenderTargets(
  783. /* [annotation][in] */
  784. _In_ REFGUID Guid,
  785. /* [annotation][out] */
  786. _Out_ UINT *pCount,
  787. /* [annotation][size_is][unique][out] */
  788. _Outptr_result_buffer_maybenull_(*pCount) D3DFORMAT **pFormats) = 0;
  789. virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurations(
  790. /* [annotation][in] */
  791. _In_ REFGUID Guid,
  792. /* [annotation][in] */
  793. _In_ const DXVA2_VideoDesc *pVideoDesc,
  794. /* [annotation][in] */
  795. _Reserved_ void *pReserved,
  796. /* [annotation][out] */
  797. _Out_ UINT *pCount,
  798. /* [annotation][size_is][unique][out] */
  799. _Outptr_result_buffer_maybenull_(*pCount) DXVA2_ConfigPictureDecode **ppConfigs) = 0;
  800. virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
  801. /* [annotation][in] */
  802. _In_ REFGUID Guid,
  803. /* [annotation][in] */
  804. _In_ const DXVA2_VideoDesc *pVideoDesc,
  805. /* [annotation][in] */
  806. _In_ const DXVA2_ConfigPictureDecode *pConfig,
  807. /* [annotation][size_is][in] */
  808. _In_reads_(NumRenderTargets) IDirect3DSurface9 **ppDecoderRenderTargets,
  809. /* [annotation][in] */
  810. _In_ UINT NumRenderTargets,
  811. /* [annotation][out] */
  812. _Outptr_ IDirectXVideoDecoder **ppDecode) = 0;
  813. };
  814. #else /* C style interface */
  815. typedef struct IDirectXVideoDecoderServiceVtbl
  816. {
  817. BEGIN_INTERFACE
  818. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  819. IDirectXVideoDecoderService * This,
  820. /* [in] */ REFIID riid,
  821. /* [annotation][iid_is][out] */
  822. _COM_Outptr_ void **ppvObject);
  823. ULONG ( STDMETHODCALLTYPE *AddRef )(
  824. IDirectXVideoDecoderService * This);
  825. ULONG ( STDMETHODCALLTYPE *Release )(
  826. IDirectXVideoDecoderService * This);
  827. HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
  828. IDirectXVideoDecoderService * This,
  829. /* [annotation][in] */
  830. _In_ UINT Width,
  831. /* [annotation][in] */
  832. _In_ UINT Height,
  833. /* [annotation][in] */
  834. _In_ UINT BackBuffers,
  835. /* [annotation][in] */
  836. _In_ D3DFORMAT Format,
  837. /* [annotation][in] */
  838. _In_ D3DPOOL Pool,
  839. /* [annotation][in] */
  840. _In_ DWORD Usage,
  841. /* [annotation][in] */
  842. _In_ DWORD DxvaType,
  843. /* [annotation][size_is][out] */
  844. _Out_writes_(BackBuffers+1) IDirect3DSurface9 **ppSurface,
  845. /* [annotation][out][in] */
  846. _Inout_opt_ HANDLE *pSharedHandle);
  847. HRESULT ( STDMETHODCALLTYPE *GetDecoderDeviceGuids )(
  848. IDirectXVideoDecoderService * This,
  849. /* [annotation][out] */
  850. _Out_ UINT *pCount,
  851. /* [annotation][size_is][unique][out] */
  852. _Outptr_result_buffer_maybenull_(*pCount) GUID **pGuids);
  853. HRESULT ( STDMETHODCALLTYPE *GetDecoderRenderTargets )(
  854. IDirectXVideoDecoderService * This,
  855. /* [annotation][in] */
  856. _In_ REFGUID Guid,
  857. /* [annotation][out] */
  858. _Out_ UINT *pCount,
  859. /* [annotation][size_is][unique][out] */
  860. _Outptr_result_buffer_maybenull_(*pCount) D3DFORMAT **pFormats);
  861. HRESULT ( STDMETHODCALLTYPE *GetDecoderConfigurations )(
  862. IDirectXVideoDecoderService * This,
  863. /* [annotation][in] */
  864. _In_ REFGUID Guid,
  865. /* [annotation][in] */
  866. _In_ const DXVA2_VideoDesc *pVideoDesc,
  867. /* [annotation][in] */
  868. _Reserved_ void *pReserved,
  869. /* [annotation][out] */
  870. _Out_ UINT *pCount,
  871. /* [annotation][size_is][unique][out] */
  872. _Outptr_result_buffer_maybenull_(*pCount) DXVA2_ConfigPictureDecode **ppConfigs);
  873. HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
  874. IDirectXVideoDecoderService * This,
  875. /* [annotation][in] */
  876. _In_ REFGUID Guid,
  877. /* [annotation][in] */
  878. _In_ const DXVA2_VideoDesc *pVideoDesc,
  879. /* [annotation][in] */
  880. _In_ const DXVA2_ConfigPictureDecode *pConfig,
  881. /* [annotation][size_is][in] */
  882. _In_reads_(NumRenderTargets) IDirect3DSurface9 **ppDecoderRenderTargets,
  883. /* [annotation][in] */
  884. _In_ UINT NumRenderTargets,
  885. /* [annotation][out] */
  886. _Outptr_ IDirectXVideoDecoder **ppDecode);
  887. END_INTERFACE
  888. } IDirectXVideoDecoderServiceVtbl;
  889. interface IDirectXVideoDecoderService
  890. {
  891. CONST_VTBL struct IDirectXVideoDecoderServiceVtbl *lpVtbl;
  892. };
  893. #ifdef COBJMACROS
  894. #define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) \
  895. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  896. #define IDirectXVideoDecoderService_AddRef(This) \
  897. ( (This)->lpVtbl -> AddRef(This) )
  898. #define IDirectXVideoDecoderService_Release(This) \
  899. ( (This)->lpVtbl -> Release(This) )
  900. #define IDirectXVideoDecoderService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) \
  901. ( (This)->lpVtbl -> CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) )
  902. #define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,pCount,pGuids) \
  903. ( (This)->lpVtbl -> GetDecoderDeviceGuids(This,pCount,pGuids) )
  904. #define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,Guid,pCount,pFormats) \
  905. ( (This)->lpVtbl -> GetDecoderRenderTargets(This,Guid,pCount,pFormats) )
  906. #define IDirectXVideoDecoderService_GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs) \
  907. ( (This)->lpVtbl -> GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs) )
  908. #define IDirectXVideoDecoderService_CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumRenderTargets,ppDecode) \
  909. ( (This)->lpVtbl -> CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumRenderTargets,ppDecode) )
  910. #endif /* COBJMACROS */
  911. #endif /* C style interface */
  912. #endif /* __IDirectXVideoDecoderService_INTERFACE_DEFINED__ */
  913. #ifndef __IDirectXVideoProcessorService_INTERFACE_DEFINED__
  914. #define __IDirectXVideoProcessorService_INTERFACE_DEFINED__
  915. /* interface IDirectXVideoProcessorService */
  916. /* [local][helpstring][uuid][object] */
  917. EXTERN_C const IID IID_IDirectXVideoProcessorService;
  918. #if defined(__cplusplus) && !defined(CINTERFACE)
  919. MIDL_INTERFACE("fc51a552-d5e7-11d9-af55-00054e43ff02")
  920. IDirectXVideoProcessorService : public IDirectXVideoAccelerationService
  921. {
  922. public:
  923. virtual HRESULT STDMETHODCALLTYPE RegisterVideoProcessorSoftwareDevice(
  924. /* [annotation][in] */
  925. _In_ void *pCallbacks) = 0;
  926. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceGuids(
  927. /* [annotation][in] */
  928. _In_ const DXVA2_VideoDesc *pVideoDesc,
  929. /* [annotation][out] */
  930. _Out_ UINT *pCount,
  931. /* [annotation][size_is][unique][out] */
  932. _Outptr_result_buffer_maybenull_(*pCount) GUID **pGuids) = 0;
  933. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorRenderTargets(
  934. /* [annotation][in] */
  935. _In_ REFGUID VideoProcDeviceGuid,
  936. /* [annotation][in] */
  937. _In_ const DXVA2_VideoDesc *pVideoDesc,
  938. /* [annotation][out] */
  939. _Out_ UINT *pCount,
  940. /* [annotation][size_is][unique][out] */
  941. _Outptr_result_buffer_maybenull_(*pCount) D3DFORMAT **pFormats) = 0;
  942. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorSubStreamFormats(
  943. /* [annotation][in] */
  944. _In_ REFGUID VideoProcDeviceGuid,
  945. /* [annotation][in] */
  946. _In_ const DXVA2_VideoDesc *pVideoDesc,
  947. /* [annotation][in] */
  948. _In_ D3DFORMAT RenderTargetFormat,
  949. /* [annotation][out] */
  950. _Out_ UINT *pCount,
  951. /* [annotation][size_is][unique][out] */
  952. _Outptr_result_buffer_maybenull_(*pCount) D3DFORMAT **pFormats) = 0;
  953. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
  954. /* [annotation][in] */
  955. _In_ REFGUID VideoProcDeviceGuid,
  956. /* [annotation][in] */
  957. _In_ const DXVA2_VideoDesc *pVideoDesc,
  958. /* [annotation][in] */
  959. _In_ D3DFORMAT RenderTargetFormat,
  960. /* [annotation][out] */
  961. _Out_ DXVA2_VideoProcessorCaps *pCaps) = 0;
  962. virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange(
  963. /* [annotation][in] */
  964. _In_ REFGUID VideoProcDeviceGuid,
  965. /* [annotation][in] */
  966. _In_ const DXVA2_VideoDesc *pVideoDesc,
  967. /* [annotation][in] */
  968. _In_ D3DFORMAT RenderTargetFormat,
  969. /* [annotation][in] */
  970. _In_ UINT ProcAmpCap,
  971. /* [annotation][out] */
  972. _Out_ DXVA2_ValueRange *pRange) = 0;
  973. virtual HRESULT STDMETHODCALLTYPE GetFilterPropertyRange(
  974. /* [annotation][in] */
  975. _In_ REFGUID VideoProcDeviceGuid,
  976. /* [annotation][in] */
  977. _In_ const DXVA2_VideoDesc *pVideoDesc,
  978. /* [annotation][in] */
  979. _In_ D3DFORMAT RenderTargetFormat,
  980. /* [annotation][in] */
  981. _In_ UINT FilterSetting,
  982. /* [annotation][out] */
  983. _Out_ DXVA2_ValueRange *pRange) = 0;
  984. virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
  985. /* [annotation][in] */
  986. _In_ REFGUID VideoProcDeviceGuid,
  987. /* [annotation][in] */
  988. _In_ const DXVA2_VideoDesc *pVideoDesc,
  989. /* [annotation][in] */
  990. _In_ D3DFORMAT RenderTargetFormat,
  991. /* [annotation][in] */
  992. _In_ UINT MaxNumSubStreams,
  993. /* [annotation][out] */
  994. _Outptr_ IDirectXVideoProcessor **ppVidProcess) = 0;
  995. };
  996. #else /* C style interface */
  997. typedef struct IDirectXVideoProcessorServiceVtbl
  998. {
  999. BEGIN_INTERFACE
  1000. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1001. IDirectXVideoProcessorService * This,
  1002. /* [in] */ REFIID riid,
  1003. /* [annotation][iid_is][out] */
  1004. _COM_Outptr_ void **ppvObject);
  1005. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1006. IDirectXVideoProcessorService * This);
  1007. ULONG ( STDMETHODCALLTYPE *Release )(
  1008. IDirectXVideoProcessorService * This);
  1009. HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
  1010. IDirectXVideoProcessorService * This,
  1011. /* [annotation][in] */
  1012. _In_ UINT Width,
  1013. /* [annotation][in] */
  1014. _In_ UINT Height,
  1015. /* [annotation][in] */
  1016. _In_ UINT BackBuffers,
  1017. /* [annotation][in] */
  1018. _In_ D3DFORMAT Format,
  1019. /* [annotation][in] */
  1020. _In_ D3DPOOL Pool,
  1021. /* [annotation][in] */
  1022. _In_ DWORD Usage,
  1023. /* [annotation][in] */
  1024. _In_ DWORD DxvaType,
  1025. /* [annotation][size_is][out] */
  1026. _Out_writes_(BackBuffers+1) IDirect3DSurface9 **ppSurface,
  1027. /* [annotation][out][in] */
  1028. _Inout_opt_ HANDLE *pSharedHandle);
  1029. HRESULT ( STDMETHODCALLTYPE *RegisterVideoProcessorSoftwareDevice )(
  1030. IDirectXVideoProcessorService * This,
  1031. /* [annotation][in] */
  1032. _In_ void *pCallbacks);
  1033. HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorDeviceGuids )(
  1034. IDirectXVideoProcessorService * This,
  1035. /* [annotation][in] */
  1036. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1037. /* [annotation][out] */
  1038. _Out_ UINT *pCount,
  1039. /* [annotation][size_is][unique][out] */
  1040. _Outptr_result_buffer_maybenull_(*pCount) GUID **pGuids);
  1041. HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorRenderTargets )(
  1042. IDirectXVideoProcessorService * This,
  1043. /* [annotation][in] */
  1044. _In_ REFGUID VideoProcDeviceGuid,
  1045. /* [annotation][in] */
  1046. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1047. /* [annotation][out] */
  1048. _Out_ UINT *pCount,
  1049. /* [annotation][size_is][unique][out] */
  1050. _Outptr_result_buffer_maybenull_(*pCount) D3DFORMAT **pFormats);
  1051. HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorSubStreamFormats )(
  1052. IDirectXVideoProcessorService * This,
  1053. /* [annotation][in] */
  1054. _In_ REFGUID VideoProcDeviceGuid,
  1055. /* [annotation][in] */
  1056. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1057. /* [annotation][in] */
  1058. _In_ D3DFORMAT RenderTargetFormat,
  1059. /* [annotation][out] */
  1060. _Out_ UINT *pCount,
  1061. /* [annotation][size_is][unique][out] */
  1062. _Outptr_result_buffer_maybenull_(*pCount) D3DFORMAT **pFormats);
  1063. HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorCaps )(
  1064. IDirectXVideoProcessorService * This,
  1065. /* [annotation][in] */
  1066. _In_ REFGUID VideoProcDeviceGuid,
  1067. /* [annotation][in] */
  1068. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1069. /* [annotation][in] */
  1070. _In_ D3DFORMAT RenderTargetFormat,
  1071. /* [annotation][out] */
  1072. _Out_ DXVA2_VideoProcessorCaps *pCaps);
  1073. HRESULT ( STDMETHODCALLTYPE *GetProcAmpRange )(
  1074. IDirectXVideoProcessorService * This,
  1075. /* [annotation][in] */
  1076. _In_ REFGUID VideoProcDeviceGuid,
  1077. /* [annotation][in] */
  1078. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1079. /* [annotation][in] */
  1080. _In_ D3DFORMAT RenderTargetFormat,
  1081. /* [annotation][in] */
  1082. _In_ UINT ProcAmpCap,
  1083. /* [annotation][out] */
  1084. _Out_ DXVA2_ValueRange *pRange);
  1085. HRESULT ( STDMETHODCALLTYPE *GetFilterPropertyRange )(
  1086. IDirectXVideoProcessorService * This,
  1087. /* [annotation][in] */
  1088. _In_ REFGUID VideoProcDeviceGuid,
  1089. /* [annotation][in] */
  1090. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1091. /* [annotation][in] */
  1092. _In_ D3DFORMAT RenderTargetFormat,
  1093. /* [annotation][in] */
  1094. _In_ UINT FilterSetting,
  1095. /* [annotation][out] */
  1096. _Out_ DXVA2_ValueRange *pRange);
  1097. HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
  1098. IDirectXVideoProcessorService * This,
  1099. /* [annotation][in] */
  1100. _In_ REFGUID VideoProcDeviceGuid,
  1101. /* [annotation][in] */
  1102. _In_ const DXVA2_VideoDesc *pVideoDesc,
  1103. /* [annotation][in] */
  1104. _In_ D3DFORMAT RenderTargetFormat,
  1105. /* [annotation][in] */
  1106. _In_ UINT MaxNumSubStreams,
  1107. /* [annotation][out] */
  1108. _Outptr_ IDirectXVideoProcessor **ppVidProcess);
  1109. END_INTERFACE
  1110. } IDirectXVideoProcessorServiceVtbl;
  1111. interface IDirectXVideoProcessorService
  1112. {
  1113. CONST_VTBL struct IDirectXVideoProcessorServiceVtbl *lpVtbl;
  1114. };
  1115. #ifdef COBJMACROS
  1116. #define IDirectXVideoProcessorService_QueryInterface(This,riid,ppvObject) \
  1117. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1118. #define IDirectXVideoProcessorService_AddRef(This) \
  1119. ( (This)->lpVtbl -> AddRef(This) )
  1120. #define IDirectXVideoProcessorService_Release(This) \
  1121. ( (This)->lpVtbl -> Release(This) )
  1122. #define IDirectXVideoProcessorService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) \
  1123. ( (This)->lpVtbl -> CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) )
  1124. #define IDirectXVideoProcessorService_RegisterVideoProcessorSoftwareDevice(This,pCallbacks) \
  1125. ( (This)->lpVtbl -> RegisterVideoProcessorSoftwareDevice(This,pCallbacks) )
  1126. #define IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids) \
  1127. ( (This)->lpVtbl -> GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids) )
  1128. #define IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats) \
  1129. ( (This)->lpVtbl -> GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats) )
  1130. #define IDirectXVideoProcessorService_GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats) \
  1131. ( (This)->lpVtbl -> GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats) )
  1132. #define IDirectXVideoProcessorService_GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps) \
  1133. ( (This)->lpVtbl -> GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps) )
  1134. #define IDirectXVideoProcessorService_GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange) \
  1135. ( (This)->lpVtbl -> GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange) )
  1136. #define IDirectXVideoProcessorService_GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,FilterSetting,pRange) \
  1137. ( (This)->lpVtbl -> GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,FilterSetting,pRange) )
  1138. #define IDirectXVideoProcessorService_CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess) \
  1139. ( (This)->lpVtbl -> CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess) )
  1140. #endif /* COBJMACROS */
  1141. #endif /* C style interface */
  1142. #endif /* __IDirectXVideoProcessorService_INTERFACE_DEFINED__ */
  1143. #ifndef __IDirectXVideoDecoder_INTERFACE_DEFINED__
  1144. #define __IDirectXVideoDecoder_INTERFACE_DEFINED__
  1145. /* interface IDirectXVideoDecoder */
  1146. /* [local][helpstring][uuid][object] */
  1147. EXTERN_C const IID IID_IDirectXVideoDecoder;
  1148. #if defined(__cplusplus) && !defined(CINTERFACE)
  1149. MIDL_INTERFACE("f2b0810a-fd00-43c9-918c-df94e2d8ef7d")
  1150. IDirectXVideoDecoder : public IUnknown
  1151. {
  1152. public:
  1153. virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderService(
  1154. /* [annotation][out] */
  1155. _Outptr_ IDirectXVideoDecoderService **ppService) = 0;
  1156. virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
  1157. /* [annotation][out] */
  1158. _Out_opt_ GUID *pDeviceGuid,
  1159. /* [annotation][out] */
  1160. _Out_opt_ DXVA2_VideoDesc *pVideoDesc,
  1161. /* [annotation][out] */
  1162. _Out_opt_ DXVA2_ConfigPictureDecode *pConfig,
  1163. /* [annotation][size_is][unique][out] */
  1164. _Out_writes_(*pNumSurfaces) IDirect3DSurface9 ***pDecoderRenderTargets,
  1165. /* [annotation][out] */
  1166. _Out_opt_ UINT *pNumSurfaces) = 0;
  1167. virtual HRESULT STDMETHODCALLTYPE GetBuffer(
  1168. /* [annotation][in] */
  1169. _In_ UINT BufferType,
  1170. /* [annotation][out] */
  1171. _Out_ void **ppBuffer,
  1172. /* [annotation][out] */
  1173. _Out_ UINT *pBufferSize) = 0;
  1174. virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
  1175. /* [annotation][in] */
  1176. _In_ UINT BufferType) = 0;
  1177. virtual HRESULT STDMETHODCALLTYPE BeginFrame(
  1178. /* [annotation][in] */
  1179. _In_ IDirect3DSurface9 *pRenderTarget,
  1180. /* [annotation][in] */
  1181. _In_opt_ void *pvPVPData) = 0;
  1182. virtual HRESULT STDMETHODCALLTYPE EndFrame(
  1183. /* [annotation][out] */
  1184. _Inout_opt_ HANDLE *pHandleComplete) = 0;
  1185. virtual HRESULT STDMETHODCALLTYPE Execute(
  1186. /* [annotation][in] */
  1187. _In_ const DXVA2_DecodeExecuteParams *pExecuteParams) = 0;
  1188. };
  1189. #else /* C style interface */
  1190. typedef struct IDirectXVideoDecoderVtbl
  1191. {
  1192. BEGIN_INTERFACE
  1193. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1194. IDirectXVideoDecoder * This,
  1195. /* [in] */ REFIID riid,
  1196. /* [annotation][iid_is][out] */
  1197. _COM_Outptr_ void **ppvObject);
  1198. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1199. IDirectXVideoDecoder * This);
  1200. ULONG ( STDMETHODCALLTYPE *Release )(
  1201. IDirectXVideoDecoder * This);
  1202. HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderService )(
  1203. IDirectXVideoDecoder * This,
  1204. /* [annotation][out] */
  1205. _Outptr_ IDirectXVideoDecoderService **ppService);
  1206. HRESULT ( STDMETHODCALLTYPE *GetCreationParameters )(
  1207. IDirectXVideoDecoder * This,
  1208. /* [annotation][out] */
  1209. _Out_opt_ GUID *pDeviceGuid,
  1210. /* [annotation][out] */
  1211. _Out_opt_ DXVA2_VideoDesc *pVideoDesc,
  1212. /* [annotation][out] */
  1213. _Out_opt_ DXVA2_ConfigPictureDecode *pConfig,
  1214. /* [annotation][size_is][unique][out] */
  1215. _Out_writes_(*pNumSurfaces) IDirect3DSurface9 ***pDecoderRenderTargets,
  1216. /* [annotation][out] */
  1217. _Out_opt_ UINT *pNumSurfaces);
  1218. HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
  1219. IDirectXVideoDecoder * This,
  1220. /* [annotation][in] */
  1221. _In_ UINT BufferType,
  1222. /* [annotation][out] */
  1223. _Out_ void **ppBuffer,
  1224. /* [annotation][out] */
  1225. _Out_ UINT *pBufferSize);
  1226. HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
  1227. IDirectXVideoDecoder * This,
  1228. /* [annotation][in] */
  1229. _In_ UINT BufferType);
  1230. HRESULT ( STDMETHODCALLTYPE *BeginFrame )(
  1231. IDirectXVideoDecoder * This,
  1232. /* [annotation][in] */
  1233. _In_ IDirect3DSurface9 *pRenderTarget,
  1234. /* [annotation][in] */
  1235. _In_opt_ void *pvPVPData);
  1236. HRESULT ( STDMETHODCALLTYPE *EndFrame )(
  1237. IDirectXVideoDecoder * This,
  1238. /* [annotation][out] */
  1239. _Inout_opt_ HANDLE *pHandleComplete);
  1240. HRESULT ( STDMETHODCALLTYPE *Execute )(
  1241. IDirectXVideoDecoder * This,
  1242. /* [annotation][in] */
  1243. _In_ const DXVA2_DecodeExecuteParams *pExecuteParams);
  1244. END_INTERFACE
  1245. } IDirectXVideoDecoderVtbl;
  1246. interface IDirectXVideoDecoder
  1247. {
  1248. CONST_VTBL struct IDirectXVideoDecoderVtbl *lpVtbl;
  1249. };
  1250. #ifdef COBJMACROS
  1251. #define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) \
  1252. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1253. #define IDirectXVideoDecoder_AddRef(This) \
  1254. ( (This)->lpVtbl -> AddRef(This) )
  1255. #define IDirectXVideoDecoder_Release(This) \
  1256. ( (This)->lpVtbl -> Release(This) )
  1257. #define IDirectXVideoDecoder_GetVideoDecoderService(This,ppService) \
  1258. ( (This)->lpVtbl -> GetVideoDecoderService(This,ppService) )
  1259. #define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces) \
  1260. ( (This)->lpVtbl -> GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces) )
  1261. #define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) \
  1262. ( (This)->lpVtbl -> GetBuffer(This,BufferType,ppBuffer,pBufferSize) )
  1263. #define IDirectXVideoDecoder_ReleaseBuffer(This,BufferType) \
  1264. ( (This)->lpVtbl -> ReleaseBuffer(This,BufferType) )
  1265. #define IDirectXVideoDecoder_BeginFrame(This,pRenderTarget,pvPVPData) \
  1266. ( (This)->lpVtbl -> BeginFrame(This,pRenderTarget,pvPVPData) )
  1267. #define IDirectXVideoDecoder_EndFrame(This,pHandleComplete) \
  1268. ( (This)->lpVtbl -> EndFrame(This,pHandleComplete) )
  1269. #define IDirectXVideoDecoder_Execute(This,pExecuteParams) \
  1270. ( (This)->lpVtbl -> Execute(This,pExecuteParams) )
  1271. #endif /* COBJMACROS */
  1272. #endif /* C style interface */
  1273. #endif /* __IDirectXVideoDecoder_INTERFACE_DEFINED__ */
  1274. #ifndef __IDirectXVideoProcessor_INTERFACE_DEFINED__
  1275. #define __IDirectXVideoProcessor_INTERFACE_DEFINED__
  1276. /* interface IDirectXVideoProcessor */
  1277. /* [local][helpstring][uuid][object] */
  1278. EXTERN_C const IID IID_IDirectXVideoProcessor;
  1279. #if defined(__cplusplus) && !defined(CINTERFACE)
  1280. MIDL_INTERFACE("8c3a39f0-916e-4690-804f-4c8001355d25")
  1281. IDirectXVideoProcessor : public IUnknown
  1282. {
  1283. public:
  1284. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorService(
  1285. /* [annotation][out] */
  1286. _Outptr_ IDirectXVideoProcessorService **ppService) = 0;
  1287. virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
  1288. /* [annotation][out] */
  1289. _Out_opt_ GUID *pDeviceGuid,
  1290. /* [annotation][out] */
  1291. _Out_opt_ DXVA2_VideoDesc *pVideoDesc,
  1292. /* [annotation][out] */
  1293. _Out_opt_ D3DFORMAT *pRenderTargetFormat,
  1294. /* [annotation][out] */
  1295. _Out_opt_ UINT *pMaxNumSubStreams) = 0;
  1296. virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
  1297. /* [annotation][out] */
  1298. _Out_ DXVA2_VideoProcessorCaps *pCaps) = 0;
  1299. virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange(
  1300. /* [annotation][in] */
  1301. _In_ UINT ProcAmpCap,
  1302. /* [annotation][out] */
  1303. _Out_ DXVA2_ValueRange *pRange) = 0;
  1304. virtual HRESULT STDMETHODCALLTYPE GetFilterPropertyRange(
  1305. /* [annotation][in] */
  1306. _In_ UINT FilterSetting,
  1307. /* [annotation][out] */
  1308. _Out_ DXVA2_ValueRange *pRange) = 0;
  1309. virtual HRESULT STDMETHODCALLTYPE VideoProcessBlt(
  1310. /* [annotation][in] */
  1311. _In_ IDirect3DSurface9 *pRenderTarget,
  1312. /* [annotation][in] */
  1313. _In_ const DXVA2_VideoProcessBltParams *pBltParams,
  1314. /* [annotation][size_is][in] */
  1315. _In_reads_(NumSamples) const DXVA2_VideoSample *pSamples,
  1316. /* [annotation][in] */
  1317. _In_ UINT NumSamples,
  1318. /* [annotation][out] */
  1319. _Inout_opt_ HANDLE *pHandleComplete) = 0;
  1320. };
  1321. #else /* C style interface */
  1322. typedef struct IDirectXVideoProcessorVtbl
  1323. {
  1324. BEGIN_INTERFACE
  1325. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1326. IDirectXVideoProcessor * This,
  1327. /* [in] */ REFIID riid,
  1328. /* [annotation][iid_is][out] */
  1329. _COM_Outptr_ void **ppvObject);
  1330. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1331. IDirectXVideoProcessor * This);
  1332. ULONG ( STDMETHODCALLTYPE *Release )(
  1333. IDirectXVideoProcessor * This);
  1334. HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorService )(
  1335. IDirectXVideoProcessor * This,
  1336. /* [annotation][out] */
  1337. _Outptr_ IDirectXVideoProcessorService **ppService);
  1338. HRESULT ( STDMETHODCALLTYPE *GetCreationParameters )(
  1339. IDirectXVideoProcessor * This,
  1340. /* [annotation][out] */
  1341. _Out_opt_ GUID *pDeviceGuid,
  1342. /* [annotation][out] */
  1343. _Out_opt_ DXVA2_VideoDesc *pVideoDesc,
  1344. /* [annotation][out] */
  1345. _Out_opt_ D3DFORMAT *pRenderTargetFormat,
  1346. /* [annotation][out] */
  1347. _Out_opt_ UINT *pMaxNumSubStreams);
  1348. HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorCaps )(
  1349. IDirectXVideoProcessor * This,
  1350. /* [annotation][out] */
  1351. _Out_ DXVA2_VideoProcessorCaps *pCaps);
  1352. HRESULT ( STDMETHODCALLTYPE *GetProcAmpRange )(
  1353. IDirectXVideoProcessor * This,
  1354. /* [annotation][in] */
  1355. _In_ UINT ProcAmpCap,
  1356. /* [annotation][out] */
  1357. _Out_ DXVA2_ValueRange *pRange);
  1358. HRESULT ( STDMETHODCALLTYPE *GetFilterPropertyRange )(
  1359. IDirectXVideoProcessor * This,
  1360. /* [annotation][in] */
  1361. _In_ UINT FilterSetting,
  1362. /* [annotation][out] */
  1363. _Out_ DXVA2_ValueRange *pRange);
  1364. HRESULT ( STDMETHODCALLTYPE *VideoProcessBlt )(
  1365. IDirectXVideoProcessor * This,
  1366. /* [annotation][in] */
  1367. _In_ IDirect3DSurface9 *pRenderTarget,
  1368. /* [annotation][in] */
  1369. _In_ const DXVA2_VideoProcessBltParams *pBltParams,
  1370. /* [annotation][size_is][in] */
  1371. _In_reads_(NumSamples) const DXVA2_VideoSample *pSamples,
  1372. /* [annotation][in] */
  1373. _In_ UINT NumSamples,
  1374. /* [annotation][out] */
  1375. _Inout_opt_ HANDLE *pHandleComplete);
  1376. END_INTERFACE
  1377. } IDirectXVideoProcessorVtbl;
  1378. interface IDirectXVideoProcessor
  1379. {
  1380. CONST_VTBL struct IDirectXVideoProcessorVtbl *lpVtbl;
  1381. };
  1382. #ifdef COBJMACROS
  1383. #define IDirectXVideoProcessor_QueryInterface(This,riid,ppvObject) \
  1384. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1385. #define IDirectXVideoProcessor_AddRef(This) \
  1386. ( (This)->lpVtbl -> AddRef(This) )
  1387. #define IDirectXVideoProcessor_Release(This) \
  1388. ( (This)->lpVtbl -> Release(This) )
  1389. #define IDirectXVideoProcessor_GetVideoProcessorService(This,ppService) \
  1390. ( (This)->lpVtbl -> GetVideoProcessorService(This,ppService) )
  1391. #define IDirectXVideoProcessor_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams) \
  1392. ( (This)->lpVtbl -> GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams) )
  1393. #define IDirectXVideoProcessor_GetVideoProcessorCaps(This,pCaps) \
  1394. ( (This)->lpVtbl -> GetVideoProcessorCaps(This,pCaps) )
  1395. #define IDirectXVideoProcessor_GetProcAmpRange(This,ProcAmpCap,pRange) \
  1396. ( (This)->lpVtbl -> GetProcAmpRange(This,ProcAmpCap,pRange) )
  1397. #define IDirectXVideoProcessor_GetFilterPropertyRange(This,FilterSetting,pRange) \
  1398. ( (This)->lpVtbl -> GetFilterPropertyRange(This,FilterSetting,pRange) )
  1399. #define IDirectXVideoProcessor_VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete) \
  1400. ( (This)->lpVtbl -> VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete) )
  1401. #endif /* COBJMACROS */
  1402. #endif /* C style interface */
  1403. #endif /* __IDirectXVideoProcessor_INTERFACE_DEFINED__ */
  1404. /* interface __MIDL_itf_dxva2api_0000_0006 */
  1405. /* [local] */
  1406. typedef /* [public][public][public] */
  1407. enum __MIDL___MIDL_itf_dxva2api_0000_0006_0001
  1408. {
  1409. DXVA2_SurfaceType_DecoderRenderTarget = 0,
  1410. DXVA2_SurfaceType_ProcessorRenderTarget = 1,
  1411. DXVA2_SurfaceType_D3DRenderTargetTexture = 2
  1412. } DXVA2_SurfaceType;
  1413. extern RPC_IF_HANDLE __MIDL_itf_dxva2api_0000_0006_v0_0_c_ifspec;
  1414. extern RPC_IF_HANDLE __MIDL_itf_dxva2api_0000_0006_v0_0_s_ifspec;
  1415. #ifndef __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__
  1416. #define __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__
  1417. /* interface IDirectXVideoMemoryConfiguration */
  1418. /* [local][helpstring][uuid][object] */
  1419. EXTERN_C const IID IID_IDirectXVideoMemoryConfiguration;
  1420. #if defined(__cplusplus) && !defined(CINTERFACE)
  1421. MIDL_INTERFACE("b7f916dd-db3b-49c1-84d7-e45ef99ec726")
  1422. IDirectXVideoMemoryConfiguration : public IUnknown
  1423. {
  1424. public:
  1425. virtual HRESULT STDMETHODCALLTYPE GetAvailableSurfaceTypeByIndex(
  1426. /* [annotation][in] */
  1427. _In_ DWORD dwTypeIndex,
  1428. /* [annotation][out] */
  1429. _Out_ DXVA2_SurfaceType *pdwType) = 0;
  1430. virtual HRESULT STDMETHODCALLTYPE SetSurfaceType(
  1431. /* [annotation][in] */
  1432. _In_ DXVA2_SurfaceType dwType) = 0;
  1433. };
  1434. #else /* C style interface */
  1435. typedef struct IDirectXVideoMemoryConfigurationVtbl
  1436. {
  1437. BEGIN_INTERFACE
  1438. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1439. IDirectXVideoMemoryConfiguration * This,
  1440. /* [in] */ REFIID riid,
  1441. /* [annotation][iid_is][out] */
  1442. _COM_Outptr_ void **ppvObject);
  1443. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1444. IDirectXVideoMemoryConfiguration * This);
  1445. ULONG ( STDMETHODCALLTYPE *Release )(
  1446. IDirectXVideoMemoryConfiguration * This);
  1447. HRESULT ( STDMETHODCALLTYPE *GetAvailableSurfaceTypeByIndex )(
  1448. IDirectXVideoMemoryConfiguration * This,
  1449. /* [annotation][in] */
  1450. _In_ DWORD dwTypeIndex,
  1451. /* [annotation][out] */
  1452. _Out_ DXVA2_SurfaceType *pdwType);
  1453. HRESULT ( STDMETHODCALLTYPE *SetSurfaceType )(
  1454. IDirectXVideoMemoryConfiguration * This,
  1455. /* [annotation][in] */
  1456. _In_ DXVA2_SurfaceType dwType);
  1457. END_INTERFACE
  1458. } IDirectXVideoMemoryConfigurationVtbl;
  1459. interface IDirectXVideoMemoryConfiguration
  1460. {
  1461. CONST_VTBL struct IDirectXVideoMemoryConfigurationVtbl *lpVtbl;
  1462. };
  1463. #ifdef COBJMACROS
  1464. #define IDirectXVideoMemoryConfiguration_QueryInterface(This,riid,ppvObject) \
  1465. ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
  1466. #define IDirectXVideoMemoryConfiguration_AddRef(This) \
  1467. ( (This)->lpVtbl -> AddRef(This) )
  1468. #define IDirectXVideoMemoryConfiguration_Release(This) \
  1469. ( (This)->lpVtbl -> Release(This) )
  1470. #define IDirectXVideoMemoryConfiguration_GetAvailableSurfaceTypeByIndex(This,dwTypeIndex,pdwType) \
  1471. ( (This)->lpVtbl -> GetAvailableSurfaceTypeByIndex(This,dwTypeIndex,pdwType) )
  1472. #define IDirectXVideoMemoryConfiguration_SetSurfaceType(This,dwType) \
  1473. ( (This)->lpVtbl -> SetSurfaceType(This,dwType) )
  1474. #endif /* COBJMACROS */
  1475. #endif /* C style interface */
  1476. #endif /* __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__ */
  1477. /* interface __MIDL_itf_dxva2api_0000_0007 */
  1478. /* [local] */
  1479. STDAPI DXVA2CreateDirect3DDeviceManager9(
  1480. _Out_ UINT* pResetToken,
  1481. _Outptr_ IDirect3DDeviceManager9** ppDeviceManager
  1482. );
  1483. STDAPI DXVA2CreateVideoService(
  1484. _In_ IDirect3DDevice9* pDD,
  1485. _In_ REFIID riid,
  1486. _Outptr_ void** ppService
  1487. );
  1488. #endif // _D3D9_H_
  1489. __inline DXVA2_Fixed32 DXVA2FloatToFixed(_In_ const float _float_)
  1490. {
  1491. DXVA2_Fixed32 _fixed_;
  1492. _fixed_.Fraction = LOWORD(_float_ * 0x10000);
  1493. _fixed_.Value = HIWORD(_float_ * 0x10000);
  1494. return _fixed_;
  1495. }
  1496. __inline float DXVA2FixedToFloat(_In_ const DXVA2_Fixed32 _fixed_)
  1497. {
  1498. return (FLOAT)_fixed_.Value + (FLOAT)_fixed_.Fraction / 0x10000;
  1499. }
  1500. __inline const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha()
  1501. {
  1502. DXVA2_Fixed32 _fixed_ = {0, 0};
  1503. return _fixed_;
  1504. }
  1505. __inline const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha()
  1506. {
  1507. DXVA2_Fixed32 _fixed_ = {0, 1};
  1508. return _fixed_;
  1509. }
  1510. #endif
  1511. extern RPC_IF_HANDLE __MIDL_itf_dxva2api_0000_0007_v0_0_c_ifspec;
  1512. extern RPC_IF_HANDLE __MIDL_itf_dxva2api_0000_0007_v0_0_s_ifspec;
  1513. /* Additional Prototypes for ALL interfaces */
  1514. /* end of Additional Prototypes */
  1515. #ifdef __cplusplus
  1516. }
  1517. #endif
  1518. #endif