OSDN Git Service

Make <winnls.h> header effectively self-contained.
[mingw/mingw-org-wsl.git] / w32api / include / vmr9.h
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