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
|
---|