|
1 #ifndef _VMR9_H |
|
2 #define _VMR9_H |
|
3 #if __GNUC__ >= 3 |
|
4 #pragma GCC system_header |
|
5 #endif |
|
6 |
|
7 #ifdef __cplusplus |
|
8 extern "C" { |
|
9 #endif |
|
10 |
|
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 |
|
19 } VMR9_SampleFormat; |
|
20 typedef enum { |
|
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; |
|
28 typedef enum { |
|
29 VMR9ARMode_None, |
|
30 VMR9ARMode_LetterBox |
|
31 } VMR9AspectRatioMode; |
|
32 typedef enum { |
|
33 DeinterlacePref9_NextBest = 0x01, |
|
34 DeinterlacePref9_BOB = 0x02, |
|
35 DeinterlacePref9_Weave = 0x04, |
|
36 DeinterlacePref9_Mask = 0x07 |
|
37 } VMR9DeinterlacePrefs; |
|
38 typedef enum { |
|
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; |
|
48 typedef enum { |
|
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 |
|
69 } VMR9MixerPrefs; |
|
70 typedef enum VMR9Mode { |
|
71 VMR9Mode_Windowed = 0x00000001, |
|
72 VMR9Mode_Windowless = 0x00000002, |
|
73 VMR9Mode_Renderless = 0x00000004, |
|
74 VMR9Mode_Mask = 0x00000007 |
|
75 }; |
|
76 typedef enum { |
|
77 VMR9Sample_SyncPoint = 0x00000001, |
|
78 VMR9Sample_Preroll = 0x00000002, |
|
79 VMR9Sample_Discontinuity = 0x00000004, |
|
80 VMR9Sample_TimeValid = 0x00000008 |
|
81 } VMR9PresentationFlags; |
|
82 typedef enum { |
|
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 |
|
92 }; |
|
93 typedef enum { |
|
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 */ |
|
102 /********** |
|
103 typedef struct VMR9AllocationInfo{ |
|
104 DWORD dwFlags; |
|
105 DWORD dwWidth; |
|
106 DWORD dwHeight; |
|
107 D3DFORMAT Format; |
|
108 D3DPOOL Pool; |
|
109 DWORD MinBuffers; |
|
110 SIZE szAspectRatio; |
|
111 SIZE szNativeSize; |
|
112 }; |
|
113 **********/ |
|
114 typedef struct _VMR9DeinterlaceCaps { |
|
115 DWORD dwSize; |
|
116 DWORD dwNumPreviousOutputFrames; |
|
117 DWORD dwNumForwardRefSamples; |
|
118 DWORD dwNumBackwardRefSamples; |
|
119 VMRDeinterlaceTech DeinterlaceTechnology; |
|
120 } VMR9DeinterlaceCaps; |
|
121 typedef struct _VMR9Frequency { |
|
122 DWORD dwNumerator; |
|
123 DWORD dwDenominator; |
|
124 } VMR9Frequency; |
|
125 typedef struct { |
|
126 UINT uDevID; |
|
127 RECT rcMonitor; |
|
128 HMONITOR hMon; |
|
129 DWORD dwFlags; |
|
130 wchar_t szDevice[32]; |
|
131 wchar_t szDescription[512] |
|
132 LARGE_INTEGER liDriverVersion; |
|
133 DWORD dwVendorId; |
|
134 DWORD dwDeviceId; |
|
135 DWORD dwSubSysId; |
|
136 DWORD dwRevision; |
|
137 } VMR9MonitorInfo; |
|
138 typedef struct VMR9NormalizedRect{ |
|
139 float left; |
|
140 float top; |
|
141 float right; |
|
142 float bottom; |
|
143 }; |
|
144 /********** |
|
145 typedef struct { |
|
146 DWORD dwFlags; |
|
147 IDirect3DSurface9 *lpSurf; |
|
148 REFERENCE_TIME rtStart; |
|
149 REFERENCE_TIME rtEnd; |
|
150 SIZE szAspectRatio; |
|
151 RECT rcSrc; |
|
152 RECT rcDst; |
|
153 DWORD dwReserved1; |
|
154 DWORD dwReserved2; |
|
155 } VMR9PresentationInfo; |
|
156 **********/ |
|
157 typedef struct _VMR9ProcAmpControl |
|
158 { |
|
159 DWORD dwSize; |
|
160 DWORD dwFlags; |
|
161 float Contrast; |
|
162 float Brightness; |
|
163 float Hue; |
|
164 float Saturation; |
|
165 } VMR9ProcAmpControl; |
|
166 typedef struct _VMR9ProcAmpControlRange |
|
167 { |
|
168 DWORD dwSize; |
|
169 VMR9ProcAmpControlFlags dwProperty; |
|
170 float MinValue; |
|
171 float MaxValue; |
|
172 float DefaultValue; |
|
173 float StepSize; |
|
174 } VMR9ProcAmpControlRange; |
|
175 typedef struct _VMR9VideoDesc { |
|
176 DWORD dwSize; |
|
177 DWORD dwSampleWidth; |
|
178 DWORD dwSampleHeight; |
|
179 VMR9_SampleFormat SampleFormat; |
|
180 DWORD dwFourCC; |
|
181 VMR9Frequency InputSampleFreq; |
|
182 VMR9Frequency OutputFrameFreq; |
|
183 } VMR9VideoDesc; |
|
184 /********** |
|
185 typedef struct VMR9VideoStreamInfo{ |
|
186 IDirect3DSurface9 *pddsVideoSurface; |
|
187 DWORD dwWidth; |
|
188 DWORD dwHeight; |
|
189 DWORD dwStrmID; |
|
190 FLOAT fAlpha; |
|
191 VMR9NormalizedRect rNormal; |
|
192 REFERENCE_TIME rtStart; |
|
193 REFERENCE_TIME rtEnd; |
|
194 VMR9_SampleFormat SampleFormat; |
|
195 }; |
|
196 typedef struct VMR9AlphaBitmap{ |
|
197 DWORD dwFlags; |
|
198 HDC hdc; |
|
199 IDirect3DSurface9 *pDDS; |
|
200 RECT rSrc; |
|
201 VMR9NormalizedRect rDest; |
|
202 FLOAT fAlpha; |
|
203 COLORREF clrSrcKey; |
|
204 DWORD dwFilterMode; |
|
205 }; |
|
206 **********/ |
|
207 |
|
208 #ifdef __cplusplus |
|
209 } |
|
210 #endif |
|
211 #endif |