source: Daodan/MinGW/include/amvideo.h@ 1051

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

Daodan: Added Windows MinGW and build batch file

File size: 6.0 KB
Line 
1#ifndef _AMVIDEO_H
2#define _AMVIDEO_H
3#if __GNUC__ >=3
4#pragma GCC system_header
5#endif
6
7#include <ddraw.h>
8#include <strmif.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#define AMDDS_NONE 0x0000
15#define AMDDS_DCIPS 0x0001
16#define AMDDS_PS 0x0002
17#define AMDDS_RGBOVR 0x0004
18#define AMDDS_YUVOVR 0x0008
19#define AMDDS_RGBOFF 0x0010
20#define AMDDS_YUVOFF 0x0020
21#define AMDDS_RGBFLP 0x0040
22#define AMDDS_YUVFLP 0x0080
23#define AMDDS_ ALL 0x00FF
24#define AMDDS_DEFAULT 0x00FF
25#define AMDDS_YUV (AMDDS_YUVOFF|AMDDS_YUVOVR|AMDDS_YUVFLP)
26#define AMDDS_RGB (AMDDS_RGBOFF|AMDDS_RGBOVR|AMDDS_RGBFLP)
27#define AMDDS_PRIMARY (AMDDS_DCIPS|AMDDS_PS)
28#define BIT_MASKS_MATCH(pbmi1,pbmi2) ((pbmi1)->dwBitMasks[0] == (pbmi2)->dwBitMasks[0] && (pbmi1)->dwBitMasks[1] == (pbmi2)->dwBitMasks[1] && (pbmi1)->dwBitMasks[2] == (pbmi2)->dwBitMasks[2])
29#define PALETTISED(pbmi) ((pbmi)->bmiHeader.biBitCount <= 8)
30#define PALETTE_ENTRIES(pbmi) (1 << (pbmi)->bmiHeader.biBitCount)
31#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(pbmi)->dwBitFields,3*sizeof(DWORD)))
32#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(pbmi)->bmiColors,256*sizeof(RGBQUAD)));
33#define SIZE_EGA_PALETTE (16*sizeof(RGBQUAD))
34#define SIZE_MASKS (3*sizeof(DWORD))
35#define SIZE_PALETTE (256*sizeof(RGBQUAD))
36typedef enum {
37 AM_PROPERTY_FRAMESTEP_STEP = 1,
38 AM_PROPERTY_FRAMESTEP_CANCEL = 2,
39 AM_PROPERTY_FRAMESTEP_CANSTEP = 3,
40 AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 4
41} AM_PROPERTY_FRAMESTEP;
42typedef struct tag_TRUECOLORINFO {
43 DWORD dwBitMasks[3];
44 RGBQUAD bmiColors[256];
45} TRUECOLORINFO;
46typedef struct tagVIDEOINFOHEADER {
47 RECT rcSource;
48 RECT rcTarget;
49 DWORD dwBitRate;
50 DWORD dwBitErrorRate;
51 REFERENCE_TIME AvgTimePerFrame;
52 BITMAPINFOHEADER bmiHeader;
53} VIDEOINFOHEADER;
54typedef struct tagVIDEOINFO {
55 RECT rcSource,
56 RECT rcTarget,
57 DWORD dwBitRate,
58 DWORD dwBitErrorRate,
59 REFERENCE_TIME AvgTimePerFrame;
60 BITMAPINFOHEADER bmiHeader;
61 union {
62 RGBQUAD bmiColors[256];
63 DWORD dwBitMasks[3];
64 TRUECOLORINFO TrueColorInfo;
65 };
66} VIDEOINFO;
67typedef struct tagMPEG1VIDEOINFO {
68 VIDEOINFOHEADER hdr;
69 DWORD dwStartTimeCode;
70 DWORD cbSequenceHeader;
71 BYTE bSequenceHeader[1];
72} MPEG1VIDEOINFO;
73typedef struct tagAnalogVideoInfo {
74 RECT rcSource;
75 RECT rcTarget;
76 DWORD dwActiveWidth;
77 DWORD dwActiveHeight;
78 REFERENCE_TIME AvgTimePerFrame;
79} ANALOGVIDEOINFO;
80typedef struct _AM_FRAMESTEP_STEP {
81 DWORD dwFramesToStep;
82} AM_FRAMESTEP_STEP;
83#define INTERFACE IDirectDrawVideo
84DECLARE_INTERFACE_(IDirectDrawVideo, IUnknown)
85{
86 STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE;
87 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
88 STDMETHOD_(ULONG,Release)(THIS) PURE;
89 STDMETHOD(CanUseOverlayStretch)(THIS_ long*) PURE;
90 STDMETHOD(CanUseScanLine)(THIS_ long*) PURE;
91 STDMETHOD(GetCaps)(THIS_ DDCAPS*) PURE;
92 STDMETHOD(GetDirectDraw)(THIS_ LPDIRECTDRAW*) PURE;
93 STDMETHOD(GetEmulatedCaps)(THIS_ DDCAPS*) PURE;
94 STDMETHOD(GetFourCCCodes)(THIS_ DWORD*,DWORD*) PURE;
95 STDMETHOD(GetSurfaceDesc)(THIS_ DDSURFACEDESC*) PURE;
96 STDMETHOD(GetSurfaceType)(THIS_ DWORD*) PURE;
97 STDMETHOD(GetSwitches)(THIS_ DWORD*) PURE;
98 STDMETHOD(SetDefault)(THIS) PURE;
99 STDMETHOD(SetDirectDraw)(THIS_ LPDIRECTDRAW) PURE;
100 STDMETHOD(SetSwitches)(THIS_ DWORD) PURE;
101 STDMETHOD(UseOverlayStretch)(THIS_ long) PURE;
102 STDMETHOD(UseScanLine)(THIS_ long) PURE;
103 STDMETHOD(UseWhenFullScreen)(THIS_ long) PURE;
104 STDMETHOD(WillUseFullScreen)(THIS_ long*) PURE;
105};
106#undef INTERFACE
107#define INTERFACE IQualProp
108DECLARE_INTERFACE_(IQualProp, IUnknown)
109{
110 STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE;
111 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
112 STDMETHOD_(ULONG,Release)(THIS) PURE;
113 STDMETHOD(get_AvgFrameRate)(THIS_ int*) PURE;
114 STDMETHOD(get_AvgSyncOffset)(THIS_ int*) PURE;
115 STDMETHOD(get_DevSyncOffset)(THIS_ int*) PURE;
116 STDMETHOD(get_FramesDrawn)(THIS_ int*) PURE;
117 STDMETHOD(get_FramesDroppedInRenderer)(THIS_ int*) PURE;
118 STDMETHOD(get_Jitter)(THIS_ int*) PURE;
119};
120#undef INTERFACE
121#define INTERFACE IFullScreenVideo
122DECLARE_INTERFACE_(IFullScreenVideo, IUnknown)
123{
124 STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE;
125 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
126 STDMETHOD_(ULONG,Release)(THIS) PURE;
127 STDMETHOD(CountModes)(THIS_ long*) PURE;
128 STDMETHOD(GetCaption)(THIS_ BSTR*) PURE;
129 STDMETHOD(GetClipFactor)(THIS_ long*) PURE;
130 STDMETHOD(GetCurrentMode)(THIS_ long*) PURE;
131 STDMETHOD(GetMessageDrain)(THIS_ HWND*) PURE;
132 STDMETHOD(GetModeInfo)(THIS_ long,long*,long*,long*) PURE;
133 STDMETHOD(GetMonitor)(THIS_ long*) PURE;
134 STDMETHOD(HideOnDeactivate)(THIS_ long) PURE;
135 STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
136 STDMETHOD(IsModeAvailable)(THIS_ long) PURE;
137 STDMETHOD(IsModeEnabled)(THIS_ long) PURE;
138 STDMETHOD(SetCaption)(THIS_ BSTR) PURE;
139 STDMETHOD(SetClipFactor)(THIS_ long) PURE;
140 STDMETHOD(SetDefault)(THIS) PURE;
141 STDMETHOD(SetEnabled)(THIS_ long,long) PURE;
142 STDMETHOD(SetMessageDrain)(THIS_ HWND) PURE;
143 STDMETHOD(SetMonitor)(THIS_ long) PURE;
144};
145#undef INTERFACE
146#define INTERFACE IFullScreenVideoEx
147DECLARE_INTERFACE_(IFullScreenVideoEx, IFullScreenVideo)
148{
149 STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID*) PURE;
150 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
151 STDMETHOD_(ULONG,Release)(THIS) PURE;
152 STDMETHOD(CountModes)(THIS_ long*) PURE;
153 STDMETHOD(GetAcceleratorTable)(THIS_ HWND*,HACCEL*) PURE;
154 STDMETHOD(GetCaption)(THIS_ BSTR*) PURE;
155 STDMETHOD(GetClipFactor)(THIS_ long*) PURE;
156 STDMETHOD(GetCurrentMode)(THIS_ long*) PURE;
157 STDMETHOD(GetMessageDrain)(THIS_ HWND*) PURE;
158 STDMETHOD(GetModeInfo)(THIS_ long,long*,long*,long*) PURE;
159 STDMETHOD(GetMonitor)(THIS_ long*) PURE;
160 STDMETHOD(HideOnDeactivate)(THIS_ long) PURE;
161 STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
162 STDMETHOD(IsKeepPixelAspectRatio)(THIS_ long*) PURE;
163 STDMETHOD(IsModeAvailable)(THIS_ long) PURE;
164 STDMETHOD(IsModeEnabled)(THIS_ long) PURE;
165 STDMETHOD(KeepPixelAspectRatio)(THIS_ long) PURE;
166 STDMETHOD(SetAcceleratorTable)(THIS_ HWND,HACCEL) PURE;
167 STDMETHOD(SetCaption)(THIS_ BSTR) PURE;
168 STDMETHOD(SetClipFactor)(THIS_ long) PURE;
169 STDMETHOD(SetDefault)(THIS) PURE;
170 STDMETHOD(SetEnabled)(THIS_ long,long) PURE;
171 STDMETHOD(SetMessageDrain)(THIS_ HWND) PURE;
172 STDMETHOD(SetMonitor)(THIS_ long) PURE;
173};
174#undef INTERFACE
175
176#ifdef __cplusplus
177}
178#endif
179#endif
Note: See TracBrowser for help on using the repository browser.