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 |