Git for Windows Git-1.6.5.1-preview20100112-with-cheetah
[msysgit.git] / mingw / include / vmr9.h
blob9c5cd8d8c4abe71e4313017e37663690f0b675a5
1 #ifndef _VMR9_H
2 #define _VMR9_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
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
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
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;
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;
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
159 DWORD dwSize;
160 DWORD dwFlags;
161 float Contrast;
162 float Brightness;
163 float Hue;
164 float Saturation;
165 } VMR9ProcAmpControl;
166 typedef struct _VMR9ProcAmpControlRange
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;
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;
206 **********/
208 #ifdef __cplusplus
210 #endif
211 #endif