source: Daodan/MinGW/include/vmr9.h@ 1068

Last change on this file since 1068 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 5.3 KB
Line 
1#ifndef _VMR9_H
2#define _VMR9_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11/*--- DirectShow Reference - DirectShow Enumerated Types */
12typedef 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;
20typedef 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;
28typedef enum {
29 VMR9ARMode_None,
30 VMR9ARMode_LetterBox
31} VMR9AspectRatioMode;
32typedef enum {
33 DeinterlacePref9_NextBest = 0x01,
34 DeinterlacePref9_BOB = 0x02,
35 DeinterlacePref9_Weave = 0x04,
36 DeinterlacePref9_Mask = 0x07
37} VMR9DeinterlacePrefs;
38typedef 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;
48typedef 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;
70typedef enum VMR9Mode {
71 VMR9Mode_Windowed = 0x00000001,
72 VMR9Mode_Windowless = 0x00000002,
73 VMR9Mode_Renderless = 0x00000004,
74 VMR9Mode_Mask = 0x00000007
75};
76typedef enum {
77 VMR9Sample_SyncPoint = 0x00000001,
78 VMR9Sample_Preroll = 0x00000002,
79 VMR9Sample_Discontinuity = 0x00000004,
80 VMR9Sample_TimeValid = 0x00000008
81} VMR9PresentationFlags;
82typedef enum {
83 ProcAmpControl9_Brightness = 0x00000001,
84 ProcAmpControl9_Contrast = 0x00000002,
85 ProcAmpControl9_Hue = 0x00000004,
86 ProcAmpControl9_Saturation = 0x00000008,
87 ProcAmpControl9_Mask = 0x0000000F
88} VMR9ProcAmpControlFlags;
89typedef enum VMR9RenderPrefs {
90 RenderPrefs9_DoNotRenderBorder = 0x00000001,
91 RenderPrefs9_Mask = 0x00000001
92};
93typedef 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/**********
103typedef 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**********/
114typedef struct _VMR9DeinterlaceCaps {
115 DWORD dwSize;
116 DWORD dwNumPreviousOutputFrames;
117 DWORD dwNumForwardRefSamples;
118 DWORD dwNumBackwardRefSamples;
119 VMRDeinterlaceTech DeinterlaceTechnology;
120} VMR9DeinterlaceCaps;
121typedef struct _VMR9Frequency {
122 DWORD dwNumerator;
123 DWORD dwDenominator;
124} VMR9Frequency;
125typedef 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;
138typedef struct VMR9NormalizedRect{
139 float left;
140 float top;
141 float right;
142 float bottom;
143};
144/**********
145typedef 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**********/
157typedef struct _VMR9ProcAmpControl
158{
159 DWORD dwSize;
160 DWORD dwFlags;
161 float Contrast;
162 float Brightness;
163 float Hue;
164 float Saturation;
165} VMR9ProcAmpControl;
166typedef struct _VMR9ProcAmpControlRange
167{
168 DWORD dwSize;
169 VMR9ProcAmpControlFlags dwProperty;
170 float MinValue;
171 float MaxValue;
172 float DefaultValue;
173 float StepSize;
174} VMR9ProcAmpControlRange;
175typedef 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/**********
185typedef 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};
196typedef 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
Note: See TracBrowser for help on using the repository browser.