4 #pragma GCC system_header
11 /*--- DirectShow Reference - DirectShow Enumerated Types */
12 typedef enum _VMR9_SampleFormat
{
13 VMR9_SampleReserved
= 1,
14 VMR9_SampleProgressiveFrame
= 2,
15 VMR9_SampleFieldInterleavedEvenFirst
= 3,
16 VMR9_SampleFieldInterleavedOddFirst
= 4,
17 VMR9_SampleFieldSingleEven
= 5,
18 VMR9_SampleFieldSingleOdd
= 6
21 VMR9AlphaBitmap_Disable
= 0x00000001,
22 VMR9AlphaBitmap_hDC
= 0x00000002,
23 VMR9AlphaBitmap_EntireDDS
= 0x00000004,
24 VMR9AlphaBitmap_SrcColorKey
= 0x00000008,
25 VMR9AlphaBitmap_SrcRect
= 0x00000010,
26 VMR9AlphaBitmap_FilterMode
= 0x00000020
27 } VMR9AlphaBitmapFlags
;
31 } VMR9AspectRatioMode
;
33 DeinterlacePref9_NextBest
= 0x01,
34 DeinterlacePref9_BOB
= 0x02,
35 DeinterlacePref9_Weave
= 0x04,
36 DeinterlacePref9_Mask
= 0x07
37 } VMR9DeinterlacePrefs
;
39 DeinterlaceTech9_Unknown
= 0x0000,
40 DeinterlaceTech9_BOBLineReplicate
= 0x0001,
41 DeinterlaceTech9_BOBVerticalStretch
= 0x0002,
42 DeinterlaceTech9_MedianFiltering
= 0x0004,
43 DeinterlaceTech9_EdgeFiltering
= 0x0010,
44 DeinterlaceTech9_FieldAdaptive
= 0x0020,
45 DeinterlaceTech9_PixelAdaptive
= 0x0040,
46 DeinterlaceTech9_MotionVectorSteered
= 0x0080
47 } VMR9DeinterlaceTech
;
49 MixerPref9_NoDecimation
= 0x00000001,
50 MixerPref9_DecimateOutput
= 0x00000002,
51 MixerPref9_ARAdjustXorY
= 0x00000004,
52 MixerPref9_NonSquareMixing
= 0x00000008,
53 MixerPref9_DecimateMask
= 0x0000000F,
54 MixerPref9_BiLinearFiltering
= 0x00000010,
55 MixerPref9_PointFiltering
= 0x00000020,
56 MixerPref9_AnisotropicFiltering
= 0x00000040,
57 MixerPref9_PyramidalQuadFiltering
= 0x00000080,
58 MixerPref9_GaussianQuadFiltering
= 0x00000100,
59 MixerPref9_FilteringReserved
= 0x00000E00,
60 MixerPref9_FilteringMask
= 0x00000FF0,
61 MixerPref9_RenderTargetRGB
= 0x00001000,
62 MixerPref9_RenderTargetYUV
= 0x00002000,
63 MixerPref9_RenderTargetReserved
= 0x000FC000,
64 MixerPref9_RenderTargetMask
= 0x000FF000
65 MixerPref9_DynamicSwitchToBOB
= 0x00100000,
66 MixerPref9_DynamicDecimateBy2
= 0x00200000,
67 MixerPref9_DynamicReserved
= 0x00C00000,
68 MixerPref9_DynamicMask
= 0x00F00000
70 typedef enum VMR9Mode
{
71 VMR9Mode_Windowed
= 0x00000001,
72 VMR9Mode_Windowless
= 0x00000002,
73 VMR9Mode_Renderless
= 0x00000004,
74 VMR9Mode_Mask
= 0x00000007
77 VMR9Sample_SyncPoint
= 0x00000001,
78 VMR9Sample_Preroll
= 0x00000002,
79 VMR9Sample_Discontinuity
= 0x00000004,
80 VMR9Sample_TimeValid
= 0x00000008
81 } VMR9PresentationFlags
;
83 ProcAmpControl9_Brightness
= 0x00000001,
84 ProcAmpControl9_Contrast
= 0x00000002,
85 ProcAmpControl9_Hue
= 0x00000004,
86 ProcAmpControl9_Saturation
= 0x00000008,
87 ProcAmpControl9_Mask
= 0x0000000F
88 } VMR9ProcAmpControlFlags
;
89 typedef enum VMR9RenderPrefs
{
90 RenderPrefs9_DoNotRenderBorder
= 0x00000001,
91 RenderPrefs9_Mask
= 0x00000001
94 VMR9AllocFlag_3DRenderTarget
= 0x0001,
95 VMR9AllocFlag_DXVATarget
= 0x0002,
96 VMR9AllocFlag_TextureSurface
= 0x0004,
97 VMR9AllocFlag_OffscreenSurface
= 0x0008,
98 VMR9AllocFlag_UsageReserved
= 0x00F0,
99 VMR9AllocFlag_UsageMask
= 0x00FF
100 } VMR9SurfaceAllocationFlags
;
101 /*--- DirectShow Reference - DirectShow Structures */
103 typedef struct VMR9AllocationInfo{
114 typedef struct _VMR9DeinterlaceCaps
{
116 DWORD dwNumPreviousOutputFrames
;
117 DWORD dwNumForwardRefSamples
;
118 DWORD dwNumBackwardRefSamples
;
119 VMRDeinterlaceTech DeinterlaceTechnology
;
120 } VMR9DeinterlaceCaps
;
121 typedef struct _VMR9Frequency
{
130 wchar_t szDevice
[32];
131 wchar_t szDescription
[512]
132 LARGE_INTEGER liDriverVersion
;
138 typedef struct VMR9NormalizedRect
{
147 IDirect3DSurface9 *lpSurf;
148 REFERENCE_TIME rtStart;
149 REFERENCE_TIME rtEnd;
155 } VMR9PresentationInfo;
157 typedef struct _VMR9ProcAmpControl
165 } VMR9ProcAmpControl
;
166 typedef struct _VMR9ProcAmpControlRange
169 VMR9ProcAmpControlFlags dwProperty
;
174 } VMR9ProcAmpControlRange
;
175 typedef struct _VMR9VideoDesc
{
178 DWORD dwSampleHeight
;
179 VMR9_SampleFormat SampleFormat
;
181 VMR9Frequency InputSampleFreq
;
182 VMR9Frequency OutputFrameFreq
;
185 typedef struct VMR9VideoStreamInfo{
186 IDirect3DSurface9 *pddsVideoSurface;
191 VMR9NormalizedRect rNormal;
192 REFERENCE_TIME rtStart;
193 REFERENCE_TIME rtEnd;
194 VMR9_SampleFormat SampleFormat;
196 typedef struct VMR9AlphaBitmap{
199 IDirect3DSurface9 *pDDS;
201 VMR9NormalizedRect rDest;