OSDN Git Service

Correct mistyped __MINGW_NOTHROW macro.
[mingw/mingw-org-wsl.git] / include / vmr9.h
1 /**
2  * @file vmr9.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _VMR9_H
25 #define _VMR9_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 /*--- DirectShow Reference - DirectShow Enumerated Types */
34 typedef enum _VMR9_SampleFormat {
35         VMR9_SampleReserved = 1,
36         VMR9_SampleProgressiveFrame = 2,
37         VMR9_SampleFieldInterleavedEvenFirst = 3,
38         VMR9_SampleFieldInterleavedOddFirst = 4,
39         VMR9_SampleFieldSingleEven = 5,
40         VMR9_SampleFieldSingleOdd = 6
41 } VMR9_SampleFormat;
42 typedef enum {
43         VMR9AlphaBitmap_Disable = 0x00000001,
44         VMR9AlphaBitmap_hDC = 0x00000002,
45         VMR9AlphaBitmap_EntireDDS = 0x00000004,
46         VMR9AlphaBitmap_SrcColorKey = 0x00000008,
47         VMR9AlphaBitmap_SrcRect = 0x00000010,
48         VMR9AlphaBitmap_FilterMode = 0x00000020
49 } VMR9AlphaBitmapFlags;
50 typedef enum {
51         VMR9ARMode_None,
52         VMR9ARMode_LetterBox
53 } VMR9AspectRatioMode;
54 typedef enum {
55         DeinterlacePref9_NextBest = 0x01,
56         DeinterlacePref9_BOB = 0x02,
57         DeinterlacePref9_Weave = 0x04,
58         DeinterlacePref9_Mask = 0x07
59 } VMR9DeinterlacePrefs;
60 typedef enum {
61         DeinterlaceTech9_Unknown = 0x0000,
62         DeinterlaceTech9_BOBLineReplicate = 0x0001,
63         DeinterlaceTech9_BOBVerticalStretch = 0x0002,
64         DeinterlaceTech9_MedianFiltering = 0x0004,
65         DeinterlaceTech9_EdgeFiltering = 0x0010,
66         DeinterlaceTech9_FieldAdaptive = 0x0020,
67         DeinterlaceTech9_PixelAdaptive = 0x0040,
68         DeinterlaceTech9_MotionVectorSteered = 0x0080
69 } VMR9DeinterlaceTech;
70 typedef enum {
71         MixerPref9_NoDecimation = 0x00000001,
72         MixerPref9_DecimateOutput = 0x00000002,
73         MixerPref9_ARAdjustXorY = 0x00000004,
74         MixerPref9_NonSquareMixing = 0x00000008,
75         MixerPref9_DecimateMask = 0x0000000F,
76         MixerPref9_BiLinearFiltering = 0x00000010,
77         MixerPref9_PointFiltering = 0x00000020,
78         MixerPref9_AnisotropicFiltering = 0x00000040,
79         MixerPref9_PyramidalQuadFiltering = 0x00000080,
80         MixerPref9_GaussianQuadFiltering = 0x00000100,
81         MixerPref9_FilteringReserved = 0x00000E00,
82         MixerPref9_FilteringMask = 0x00000FF0,
83         MixerPref9_RenderTargetRGB = 0x00001000,
84         MixerPref9_RenderTargetYUV = 0x00002000,
85         MixerPref9_RenderTargetReserved = 0x000FC000,
86         MixerPref9_RenderTargetMask = 0x000FF000
87         MixerPref9_DynamicSwitchToBOB = 0x00100000,
88         MixerPref9_DynamicDecimateBy2 = 0x00200000,
89         MixerPref9_DynamicReserved = 0x00C00000,
90         MixerPref9_DynamicMask = 0x00F00000
91 } VMR9MixerPrefs;
92 typedef enum VMR9Mode {
93         VMR9Mode_Windowed = 0x00000001,
94         VMR9Mode_Windowless = 0x00000002,
95         VMR9Mode_Renderless = 0x00000004,
96         VMR9Mode_Mask = 0x00000007
97 };
98 typedef enum {
99         VMR9Sample_SyncPoint = 0x00000001,
100         VMR9Sample_Preroll = 0x00000002,
101         VMR9Sample_Discontinuity = 0x00000004,
102         VMR9Sample_TimeValid = 0x00000008
103 } VMR9PresentationFlags;
104 typedef enum {
105         ProcAmpControl9_Brightness = 0x00000001,
106         ProcAmpControl9_Contrast = 0x00000002,
107         ProcAmpControl9_Hue = 0x00000004,
108         ProcAmpControl9_Saturation = 0x00000008,
109         ProcAmpControl9_Mask = 0x0000000F
110 } VMR9ProcAmpControlFlags;
111 typedef enum VMR9RenderPrefs {
112         RenderPrefs9_DoNotRenderBorder = 0x00000001,
113         RenderPrefs9_Mask = 0x00000001
114 };
115 typedef enum {
116         VMR9AllocFlag_3DRenderTarget = 0x0001,
117         VMR9AllocFlag_DXVATarget = 0x0002,
118         VMR9AllocFlag_TextureSurface = 0x0004,
119         VMR9AllocFlag_OffscreenSurface = 0x0008,
120         VMR9AllocFlag_UsageReserved = 0x00F0,
121         VMR9AllocFlag_UsageMask = 0x00FF
122 } VMR9SurfaceAllocationFlags;
123 /*--- DirectShow Reference - DirectShow Structures */
124 /**********
125 typedef struct VMR9AllocationInfo{
126         DWORD dwFlags;
127         DWORD dwWidth;
128         DWORD dwHeight;
129         D3DFORMAT Format;
130         D3DPOOL Pool;
131         DWORD MinBuffers;
132         SIZE szAspectRatio;
133         SIZE szNativeSize;
134 };
135 **********/
136 typedef struct _VMR9DeinterlaceCaps {
137         DWORD dwSize;
138         DWORD dwNumPreviousOutputFrames;
139         DWORD dwNumForwardRefSamples;
140         DWORD dwNumBackwardRefSamples;
141         VMRDeinterlaceTech DeinterlaceTechnology;
142 } VMR9DeinterlaceCaps;
143 typedef struct _VMR9Frequency {
144         DWORD dwNumerator;
145         DWORD dwDenominator;
146 } VMR9Frequency;
147 typedef struct {
148         UINT uDevID;
149         RECT rcMonitor;
150         HMONITOR hMon;
151         DWORD dwFlags;
152         wchar_t szDevice[32];
153         wchar_t szDescription[512]
154         LARGE_INTEGER liDriverVersion;
155         DWORD dwVendorId;
156         DWORD dwDeviceId;
157         DWORD dwSubSysId;
158         DWORD dwRevision;
159 } VMR9MonitorInfo;
160 typedef struct VMR9NormalizedRect{
161         float left;
162         float top;
163         float right;
164         float bottom;
165 };
166 /**********
167 typedef struct {
168         DWORD dwFlags;
169         IDirect3DSurface9 *lpSurf;
170         REFERENCE_TIME rtStart;
171         REFERENCE_TIME rtEnd;
172         SIZE szAspectRatio;
173         RECT rcSrc;
174         RECT rcDst;
175         DWORD dwReserved1;
176         DWORD dwReserved2;
177 } VMR9PresentationInfo;
178 **********/
179 typedef struct _VMR9ProcAmpControl
180 {
181         DWORD dwSize;
182         DWORD dwFlags;
183         float Contrast;
184         float Brightness;
185         float Hue;
186         float Saturation;
187 } VMR9ProcAmpControl;
188 typedef struct _VMR9ProcAmpControlRange
189 {
190         DWORD dwSize;
191         VMR9ProcAmpControlFlags dwProperty;
192         float MinValue;
193         float MaxValue;
194         float DefaultValue;
195         float StepSize;
196 } VMR9ProcAmpControlRange;
197 typedef struct _VMR9VideoDesc {
198         DWORD dwSize;
199         DWORD dwSampleWidth;
200         DWORD dwSampleHeight;
201         VMR9_SampleFormat SampleFormat;
202         DWORD dwFourCC;
203         VMR9Frequency InputSampleFreq;
204         VMR9Frequency OutputFrameFreq;
205 } VMR9VideoDesc;
206 /**********
207 typedef struct VMR9VideoStreamInfo{
208         IDirect3DSurface9 *pddsVideoSurface;
209         DWORD dwWidth;
210         DWORD dwHeight;
211         DWORD dwStrmID;
212         FLOAT fAlpha;
213         VMR9NormalizedRect rNormal;
214         REFERENCE_TIME rtStart;
215         REFERENCE_TIME rtEnd;
216         VMR9_SampleFormat SampleFormat;
217 };
218 typedef struct VMR9AlphaBitmap{
219         DWORD dwFlags;
220         HDC hdc;
221         IDirect3DSurface9 *pDDS;
222         RECT rSrc;
223         VMR9NormalizedRect rDest;
224         FLOAT fAlpha;
225         COLORREF clrSrcKey;
226         DWORD dwFilterMode;
227 };
228 **********/
229
230 #ifdef __cplusplus
231 }
232 #endif
233
234 #endif