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;