annotate loader/wine/vfw.h @ 13730:a45e901cc870

user selectable cutoff frequency simplify resampling factor if possible, so more then one resampler can be used, libaf will still die if there are too many like it does with the default resampler (2 with sampling rates which are relative prime are too many ...)
author michael
date Thu, 21 Oct 2004 21:15:21 +0000
parents 25cb0d6432d4
children f5537cc95b02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 #ifndef __WINE_VFW_H
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 #define __WINE_VFW_H
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3 //#include "pshpack1.h"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 #ifdef __cplusplus
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 extern "C" {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 #ifndef __WINE_WINGDI_H
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8
3131
1356a5a69073 packed attribute added
arpi
parents: 1321
diff changeset
9 typedef struct __attribute__((__packed__))
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 short bfType;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 long bfSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 short bfReserved1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 short bfReserved2;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 long bfOffBits;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 } BITMAPFILEHEADER;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 1
diff changeset
18 #ifndef _BITMAPINFOHEADER_
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 1
diff changeset
19 #define _BITMAPINFOHEADER_
3131
1356a5a69073 packed attribute added
arpi
parents: 1321
diff changeset
20 typedef struct __attribute__((__packed__))
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 {
13182
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
22 long biSize;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
23 long biWidth;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
24 long biHeight;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 short biPlanes;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 short biBitCount;
13182
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
27 long biCompression;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
28 long biSizeImage;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
29 long biXPelsPerMeter;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
30 long biYPelsPerMeter;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
31 long biClrUsed;
25cb0d6432d4 loader gcc warning fixes and avifile sync
rathann
parents: 7678
diff changeset
32 long biClrImportant;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
34 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 BITMAPINFOHEADER bmiHeader;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 int bmiColors[1];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 } BITMAPINFO, *LPBITMAPINFO;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38 #endif
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 1
diff changeset
39
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 1
diff changeset
40 #endif
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 #define VFWAPI
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 #define VFWAPIV
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43 #ifndef __WINE_WINDEF_H
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
44 typedef long (__stdcall__ *DRIVERPROC)(long,HDRVR,unsigned int,long,long);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 #ifndef mmioFOURCC
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51 ( (long)(unsigned char)(ch0) | ( (long)(unsigned char)(ch1) << 8 ) | \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
52 ( (long)(unsigned char)(ch2) << 16 ) | ( (long)(unsigned char)(ch3) << 24 ) )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 #ifndef aviTWOCC
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56 #define aviTWOCC(ch0, ch1) ((short)(unsigned char)(ch0) | ((short)(unsigned char)(ch1) << 8))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
59 #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60 #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63 /* Installable Compressor M? */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 /* HIC struct (same layout as Win95 one) */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66 typedef struct tagWINE_HIC {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 long magic; /* 00: 'Smag' */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68 HANDLE curthread; /* 04: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 long type; /* 08: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 long handler; /* 0C: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71 HDRVR hdrv; /* 10: */
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
72 long driverid; /* 14:(handled by SendDriverMessage)*/
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73 DRIVERPROC driverproc; /* 18:(handled by SendDriverMessage)*/
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
74 long x1; /* 1c: name? */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
75 short x2; /* 20: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
76 long x3; /* 22: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
77 /* 26: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
78 } WINE_HIC;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
80 /* error return codes */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
81 #define ICERR_OK 0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
82 #define ICERR_DONTDRAW 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
83 #define ICERR_NEWPALETTE 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
84 #define ICERR_GOTOKEYFRAME 3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
85 #define ICERR_STOPDRAWING 4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 #define ICERR_UNSUPPORTED -1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
88 #define ICERR_BADFORMAT -2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
89 #define ICERR_MEMORY -3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
90 #define ICERR_INTERNAL -4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
91 #define ICERR_BADFLAGS -5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
92 #define ICERR_BADPARAM -6
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
93 #define ICERR_BADSIZE -7
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
94 #define ICERR_BADHANDLE -8
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
95 #define ICERR_CANTUPDATE -9
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96 #define ICERR_ABORT -10
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97 #define ICERR_ERROR -100
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
98 #define ICERR_BADBITDEPTH -200
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
99 #define ICERR_BADIMAGESIZE -201
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
100
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 #define ICERR_CUSTOM -400
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
103 /* ICM Messages */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
104 #define ICM_USER (DRV_USER+0x0000)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
105
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
106 /* ICM driver message range */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
107 #define ICM_RESERVED_LOW (DRV_USER+0x1000)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
108 #define ICM_RESERVED_HIGH (DRV_USER+0x2000)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
109 #define ICM_RESERVED ICM_RESERVED_LOW
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
110
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
111 #define ICM_GETSTATE (ICM_RESERVED+0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
112 #define ICM_SETSTATE (ICM_RESERVED+1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
113 #define ICM_GETINFO (ICM_RESERVED+2)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
114
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
115 #define ICM_CONFIGURE (ICM_RESERVED+10)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
116 #define ICM_ABOUT (ICM_RESERVED+11)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
117 /* */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
118
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
119 #define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
120 #define ICM_GETQUALITY (ICM_RESERVED+31)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
121 #define ICM_SETQUALITY (ICM_RESERVED+32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
122
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
123 #define ICM_SET (ICM_RESERVED+40)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
124 #define ICM_GET (ICM_RESERVED+41)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
125
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
126 /* 2 constant FOURCC codes */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
127 #define ICM_FRAMERATE mmioFOURCC('F','r','m','R')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
128 #define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R')
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
129
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
130 #define ICM_COMPRESS_GET_FORMAT (ICM_USER+4)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
131 #define ICM_COMPRESS_GET_SIZE (ICM_USER+5)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
132 #define ICM_COMPRESS_QUERY (ICM_USER+6)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
133 #define ICM_COMPRESS_BEGIN (ICM_USER+7)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
134 #define ICM_COMPRESS (ICM_USER+8)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
135 #define ICM_COMPRESS_END (ICM_USER+9)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
136
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
137 #define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
138 #define ICM_DECOMPRESS_QUERY (ICM_USER+11)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
139 #define ICM_DECOMPRESS_BEGIN (ICM_USER+12)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
140 #define ICM_DECOMPRESS (ICM_USER+13)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
141 #define ICM_DECOMPRESS_END (ICM_USER+14)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
142 #define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
143 #define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
144
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
145 #define ICM_DRAW_QUERY (ICM_USER+31)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
146 #define ICM_DRAW_BEGIN (ICM_USER+15)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
147 #define ICM_DRAW_GET_PALETTE (ICM_USER+16)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
148 #define ICM_DRAW_START (ICM_USER+18)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
149 #define ICM_DRAW_STOP (ICM_USER+19)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
150 #define ICM_DRAW_END (ICM_USER+21)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
151 #define ICM_DRAW_GETTIME (ICM_USER+32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
152 #define ICM_DRAW (ICM_USER+33)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
153 #define ICM_DRAW_WINDOW (ICM_USER+34)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
154 #define ICM_DRAW_SETTIME (ICM_USER+35)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
155 #define ICM_DRAW_REALIZE (ICM_USER+36)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
156 #define ICM_DRAW_FLUSH (ICM_USER+37)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
157 #define ICM_DRAW_RENDERBUFFER (ICM_USER+38)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
158
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
159 #define ICM_DRAW_START_PLAY (ICM_USER+39)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
160 #define ICM_DRAW_STOP_PLAY (ICM_USER+40)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
161
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
162 #define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
163 #define ICM_DRAW_CHANGEPALETTE (ICM_USER+51)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
164
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
165 #define ICM_GETBUFFERSWANTED (ICM_USER+41)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
166
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
167 #define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
168
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
169 #define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
170 #define ICM_DECOMPRESSEX_QUERY (ICM_USER+61)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
171 #define ICM_DECOMPRESSEX (ICM_USER+62)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
172 #define ICM_DECOMPRESSEX_END (ICM_USER+63)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
173
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
174 #define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
175 #define ICM_SET_STATUS_PROC (ICM_USER+72)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
176
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
177 /* structs */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
178
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
179 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
180 long dwSize; /* 00: size */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
181 long fccType; /* 04: type 'vidc' usually */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
182 long fccHandler; /* 08: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
183 long dwVersion; /* 0c: version of compman opening you */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
184 long dwFlags; /* 10: LOshort is type specific */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
185 LRESULT dwError; /* 14: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
186 void* pV1Reserved; /* 18: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
187 void* pV2Reserved; /* 1c: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
188 long dnDevNode; /* 20: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
189 /* 24: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
190 } ICOPEN,*LPICOPEN;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
191
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
192 #define ICCOMPRESS_KEYFRAME 0x00000001L
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
193
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
194 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
195 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
196 LPBITMAPINFOHEADER lpbiOutput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
197 void* lpOutput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
198 LPBITMAPINFOHEADER lpbiInput;
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
199 const void* lpInput;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
200 long* lpckid;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
201 long* lpdwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
202 long lFrameNum;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
203 long dwFrameSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
204 long dwQuality;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
205 LPBITMAPINFOHEADER lpbiPrev;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
206 void* lpPrev;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
207 } ICCOMPRESS;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
208
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
209 long VFWAPIV ICCompress(
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
210 HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData,
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
211 LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid,
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
212 long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality,
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
213 LPBITMAPINFOHEADER lpbiPrev,void* lpPrev
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
214 );
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
215
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
216
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
217 #define ICCompressGetFormat(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
218 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
219 hic,ICM_COMPRESS_GET_FORMAT,(long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
220 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
221 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
222
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
223 #define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
224
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
225 #define ICGetDefaultKeyFrameRate(hic,lpint) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
226 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
227 hic, ICM_GETDEFAULTKEYFRAMERATE, \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
228 (long)(void*)(lpint), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
229 0 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
230
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
231 #define ICGetDefaultQuality(hic,lpint) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
232 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
233 hic, ICM_GETDEFAULTQUALITY, \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
234 (long)(void*)(lpint), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
235 0 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
236
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
237
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
238 #define ICCompressBegin(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
239 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
240 hic, ICM_COMPRESS_BEGIN, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
241 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
242 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
243
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
244 #define ICCompressGetSize(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
245 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
246 hic, ICM_COMPRESS_GET_SIZE, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
247 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
248 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
249
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
250 #define ICCompressQuery(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
251 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
252 hic, ICM_COMPRESS_QUERY, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
253 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
254 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
255
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
256
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
257 #define ICCompressEnd(hic) ICSendMessage(hic, ICM_COMPRESS_END, 0, 0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
258
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
259 /* ICCOMPRESSFRAMES.dwFlags */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
260 #define ICCOMPRESSFRAMES_PADDING 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
261 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
262 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
263 LPBITMAPINFOHEADER lpbiOutput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
264 LPARAM lOutput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
265 LPBITMAPINFOHEADER lpbiInput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
266 LPARAM lInput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
267 long lStartFrame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
268 long lFrameCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
269 long lQuality;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
270 long lDataRate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
271 long lKeyRate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
272 long dwRate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
273 long dwScale;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
274 long dwOverheadPerFrame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
275 long dwReserved2;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
276 long CALLBACK (*GetData)(LPARAM lInput,long lFrame,void* lpBits,long len);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
277 long CALLBACK (*PutData)(LPARAM lOutput,long lFrame,void* lpBits,long len);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
278 } ICCOMPRESSFRAMES;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
279
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
280 /* Values for wMode of ICOpen() */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
281 #define ICMODE_COMPRESS 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
282 #define ICMODE_DECOMPRESS 2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
283 #define ICMODE_FASTDECOMPRESS 3
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
284 #define ICMODE_QUERY 4
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
285 #define ICMODE_FASTCOMPRESS 5
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
286 #define ICMODE_DRAW 8
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
287
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
288 /* quality flags */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
289 #define ICQUALITY_LOW 0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
290 #define ICQUALITY_HIGH 10000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
291 #define ICQUALITY_DEFAULT -1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
292
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
293 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
294 long dwSize; /* 00: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
295 long fccType; /* 04:compressor type 'vidc' 'audc' */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
296 long fccHandler; /* 08:compressor sub-type 'rle ' 'jpeg' 'pcm '*/
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
297 long dwFlags; /* 0c:flags LOshort is type specific */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
298 long dwVersion; /* 10:version of the driver */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
299 long dwVersionICM; /* 14:version of the ICM used */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
300 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
301 * under Win32, the driver always returns UNICODE strings.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
302 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
303 WCHAR szName[16]; /* 18:short name */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
304 WCHAR szDescription[128]; /* 38:long name */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
305 WCHAR szDriver[128]; /* 138:driver that contains compressor*/
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
306 /* 238: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
307 } ICINFO;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
308
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
309 /* ICINFO.dwFlags */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
310 #define VIDCF_QUALITY 0x0001 /* supports quality */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
311 #define VIDCF_CRUNCH 0x0002 /* supports crunching to a frame size */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
312 #define VIDCF_TEMPORAL 0x0004 /* supports inter-frame compress */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
313 #define VIDCF_COMPRESSFRAMES 0x0008 /* wants the compress all frames message */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
314 #define VIDCF_DRAW 0x0010 /* supports drawing */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
315 #define VIDCF_FASTTEMPORALC 0x0020 /* does not need prev frame on compress */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
316 #define VIDCF_FASTTEMPORALD 0x0080 /* does not need prev frame on decompress */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
317 #define VIDCF_QUALITYTIME 0x0040 /* supports temporal quality */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
318
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
319 #define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
320
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
321
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
322 /* function shortcuts */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
323 /* ICM_ABOUT */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
324 #define ICMF_ABOUT_QUERY 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
325
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
326 #define ICQueryAbout(hic) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
327 (ICSendMessage(hic,ICM_ABOUT,(long)-1,ICMF_ABOUT_QUERY)==ICERR_OK)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
328
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
329 #define ICAbout(hic, hwnd) ICSendMessage(hic,ICM_ABOUT,(long)(unsigned int)(hwnd),0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
330
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
331 /* ICM_CONFIGURE */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
332 #define ICMF_CONFIGURE_QUERY 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
333 #define ICQueryConfigure(hic) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
334 (ICSendMessage(hic,ICM_CONFIGURE,(long)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
335
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
336 #define ICConfigure(hic,hwnd) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
337 ICSendMessage(hic,ICM_CONFIGURE,(long)(unsigned int)(hwnd),0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
338
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
339 /* Decompression stuff */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
340 #define ICDECOMPRESS_HURRYUP 0x80000000 /* don't draw just buffer (hurry up!) */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
341 #define ICDECOMPRESS_UPDATE 0x40000000 /* don't draw just update screen */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
342 #define ICDECOMPRESS_PREROL 0x20000000 /* this frame is before real start */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
343 #define ICDECOMPRESS_NULLFRAME 0x10000000 /* repeat last frame */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
344 #define ICDECOMPRESS_NOTKEYFRAME 0x08000000 /* this frame is not a key frame */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
345
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
346 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
347 long dwFlags; /* flags (from AVI index...) */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
348 LPBITMAPINFOHEADER lpbiInput; /* BITMAPINFO of compressed data */
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
349 const void* lpInput; /* compressed data */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
350 LPBITMAPINFOHEADER lpbiOutput; /* DIB to decompress to */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
351 void* lpOutput;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
352 long ckid; /* ckid from AVI file */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
353 } ICDECOMPRESS;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
354
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
355 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
356 long dwFlags;
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
357 LPBITMAPINFOHEADER lpbiSrc;
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
358 const void* lpSrc;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
359 LPBITMAPINFOHEADER lpbiDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
360 void* lpDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
361
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
362 /* changed for ICM_DECOMPRESSEX */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
363 INT xDst; /* destination rectangle */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
364 INT yDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
365 INT dxDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
366 INT dyDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
367
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
368 INT xSrc; /* source rectangle */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
369 INT ySrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
370 INT dxSrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
371 INT dySrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
372 } ICDECOMPRESSEX;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
373
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
374
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
375 long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
1297
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
376 long VFWAPIV ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits);
1312
cca0d2481b7e Fix two prototype warnings
jkeil
parents: 1307
diff changeset
377 long VFWAPIV ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
378
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
379
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
380 #define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
381 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
382 hic, ICM_DECOMPRESS_BEGIN, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
383 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
384 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
385
1297
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
386 #define ICDecompressBeginEx(hic, lpbiInput, lpbiOutput) \
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
387 ICUniversalEx( \
1321
2712e787f872 Remove some superfluous casts. Fixes a few compile warnings.
jkeil
parents: 1312
diff changeset
388 hic, ICM_DECOMPRESSEX_BEGIN, (lpbiInput), \
2712e787f872 Remove some superfluous casts. Fixes a few compile warnings.
jkeil
parents: 1312
diff changeset
389 (lpbiOutput) \
1297
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
390 )
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
391
1321
2712e787f872 Remove some superfluous casts. Fixes a few compile warnings.
jkeil
parents: 1312
diff changeset
392 #define ICDecompressQuery(hic, lpbiInput, lpbiOutput) \
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
393 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
394 hic,ICM_DECOMPRESS_QUERY, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
395 (long) (void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
396 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
397
1297
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
398 #define ICDecompressQueryEx(hic, lpbiInput, lpbiOutput) \
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
399 ICUniversalEx( \
1321
2712e787f872 Remove some superfluous casts. Fixes a few compile warnings.
jkeil
parents: 1312
diff changeset
400 hic,ICM_DECOMPRESSEX_QUERY, (lpbiInput), \
2712e787f872 Remove some superfluous casts. Fixes a few compile warnings.
jkeil
parents: 1312
diff changeset
401 (lpbiOutput) \
1297
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
402 )
200c03672178 VfwEx support
arpi
parents: 128
diff changeset
403
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
404 #define ICDecompressGetFormat(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
405 ((long)ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
406 hic,ICM_DECOMPRESS_GET_FORMAT, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
407 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
408 ))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
409
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
410 #define ICDecompressGetFormatSize(hic, lpbi) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
411 ICDecompressGetFormat(hic, lpbi, NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
412
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
413 #define ICDecompressGetPalette(hic, lpbiInput, lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
414 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
415 hic, ICM_DECOMPRESS_GET_PALETTE, (long)(void*)(lpbiInput), \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
416 (long)(void*)(lpbiOutput) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
417 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
418
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
419 #define ICDecompressSetPalette(hic,lpbiPalette) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
420 ICSendMessage( \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
421 hic,ICM_DECOMPRESS_SET_PALETTE, \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
422 (long)(void*)(lpbiPalette),0 \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
423 )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
424
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
425 #define ICDecompressEnd(hic) ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0)
7678
693a19e1c98e VfwEx uninit crash fixed, bugreport by Wolfgang Thiess <wollet1@gmx.net>
arpi
parents: 7386
diff changeset
426 #define ICDecompressEndEx(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END, 0, 0)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
427
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
428 #define ICDRAW_QUERY 0x00000001L /* test for support */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
429 #define ICDRAW_FULLSCREEN 0x00000002L /* draw to full screen */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
430 #define ICDRAW_HDC 0x00000004L /* draw to a HDC/HWND */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
431
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
432
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
433 WIN_BOOL VFWAPI ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
434 LRESULT VFWAPI ICGetInfo(HIC hic,ICINFO *picinfo, long cb);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
435 HIC VFWAPI ICOpen(long fccType, long fccHandler, UINT wMode);
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
436 //HIC VFWAPI ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
437
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
438 LRESULT VFWAPI ICClose(HIC hic);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
439 LRESULT VFWAPI ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2);
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 7257
diff changeset
440 //HIC VFWAPI ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
441
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1297
diff changeset
442 int VFWAPI ICDoSomething(void);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
443
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
444 long VFWAPIV ICDrawBegin(
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
445 HIC hic,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
446 long dwFlags,/* flags */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
447 HPALETTE hpal, /* palette to draw with */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
448 HWND hwnd, /* window to draw to */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
449 HDC hdc, /* HDC to draw to */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
450 INT xDst, /* destination rectangle */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
451 INT yDst,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
452 INT dxDst,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
453 INT dyDst,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
454 LPBITMAPINFOHEADER lpbi, /* format of frame to draw */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
455 INT xSrc, /* source rectangle */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
456 INT ySrc,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
457 INT dxSrc,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
458 INT dySrc,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
459 long dwRate, /* frames/second = (dwRate/dwScale) */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
460 long dwScale
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
461 );
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
462
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
463 /* as passed to ICM_DRAW_BEGIN (FIXME: correct only for Win32?) */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
464 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
465 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
466 HPALETTE hpal;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
467 HWND hwnd;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
468 HDC hdc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
469 INT xDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
470 INT yDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
471 INT dxDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
472 INT dyDst;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
473 LPBITMAPINFOHEADER lpbi;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
474 INT xSrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
475 INT ySrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
476 INT dxSrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
477 INT dySrc;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
478 long dwRate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
479 long dwScale;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
480 } ICDRAWBEGIN;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
481
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
482 #define ICDRAW_HURRYUP 0x80000000L /* don't draw just buffer (hurry up!) */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
483 #define ICDRAW_UPDATE 0x40000000L /* don't draw just update screen */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
484 #define ICDRAW_PREROLL 0x20000000L /* this frame is before real start */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
485 #define ICDRAW_NULLFRAME 0x10000000L /* repeat last frame */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
486 #define ICDRAW_NOTKEYFRAME 0x08000000L /* this frame is not a key frame */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
487
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
488 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
489 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
490 void* lpFormat;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
491 void* lpData;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
492 long cbData;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
493 long lTime;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
494 } ICDRAW;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
495
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
496 long VFWAPIV ICDraw(HIC hic,long dwFlags,void* lpFormat,void* lpData,long cbData,long lTime);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
497
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
498
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
499 #define AVIGETFRAMEF_BESTDISPLAYFMT 1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
500
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
501 typedef struct _AVISTREAMINFOA {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
502 long fccType;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
503 long fccHandler;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
504 long dwFlags; /* AVIIF_* */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
505 long dwCaps;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
506 short wPriority;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
507 short wLanguage;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
508 long dwScale;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
509 long dwRate; /* dwRate / dwScale == samples/second */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
510 long dwStart;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
511 long dwLength; /* In units above... */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
512 long dwInitialFrames;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
513 long dwSuggestedBufferSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
514 long dwQuality;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
515 long dwSampleSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
516 RECT rcFrame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
517 long dwEditCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
518 long dwFormatChangeCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
519 char szName[64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
520 } AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
521
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
522 typedef struct _AVISTREAMINFOW {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
523 long fccType;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
524 long fccHandler;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
525 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
526 long dwCaps;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
527 short wPriority;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
528 short wLanguage;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
529 long dwScale;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
530 long dwRate; /* dwRate / dwScale == samples/second */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
531 long dwStart;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
532 long dwLength; /* In units above... */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
533 long dwInitialFrames;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
534 long dwSuggestedBufferSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
535 long dwQuality;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
536 long dwSampleSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
537 RECT rcFrame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
538 long dwEditCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
539 long dwFormatChangeCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
540 short szName[64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
541 } AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
542 DECL_WINELIB_TYPE_AW(AVISTREAMINFO)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
543 DECL_WINELIB_TYPE_AW(LPAVISTREAMINFO)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
544 DECL_WINELIB_TYPE_AW(PAVISTREAMINFO)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
545
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
546 #define AVISTREAMINFO_DISABLED 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
547 #define AVISTREAMINFO_FORMATCHANGES 0x00010000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
548
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
549 /* AVIFILEINFO.dwFlags */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
550 #define AVIFILEINFO_HASINDEX 0x00000010
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
551 #define AVIFILEINFO_MUSTUSEINDEX 0x00000020
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
552 #define AVIFILEINFO_ISINTERLEAVED 0x00000100
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
553 #define AVIFILEINFO_WASCAPTUREFILE 0x00010000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
554 #define AVIFILEINFO_COPYRIGHTED 0x00020000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
555
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
556 /* AVIFILEINFO.dwCaps */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
557 #define AVIFILECAPS_CANREAD 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
558 #define AVIFILECAPS_CANWRITE 0x00000002
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
559 #define AVIFILECAPS_ALLKEYFRAMES 0x00000010
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
560 #define AVIFILECAPS_NOCOMPRESSION 0x00000020
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
561
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
562 typedef struct _AVIFILEINFOW {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
563 long dwMaxBytesPerSec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
564 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
565 long dwCaps;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
566 long dwStreams;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
567 long dwSuggestedBufferSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
568 long dwWidth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
569 long dwHeight;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
570 long dwScale;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
571 long dwRate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
572 long dwLength;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
573 long dwEditCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
574 short szFileType[64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
575 } AVIFILEINFOW, * LPAVIFILEINFOW, *PAVIFILEINFOW;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
576
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
577 typedef struct _AVIFILEINFOA {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
578 long dwMaxBytesPerSec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
579 long dwFlags;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
580 long dwCaps;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
581 long dwStreams;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
582 long dwSuggestedBufferSize;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
583 long dwWidth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
584 long dwHeight;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
585 long dwScale;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
586 long dwRate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
587 long dwLength;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
588 long dwEditCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
589 char szFileType[64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
590 } AVIFILEINFOA, * LPAVIFILEINFOA, *PAVIFILEINFOA;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
591
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
592 DECL_WINELIB_TYPE_AW(AVIFILEINFO)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
593 DECL_WINELIB_TYPE_AW(PAVIFILEINFO)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
594 DECL_WINELIB_TYPE_AW(LPAVIFILEINFO)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
595
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
596 /* AVICOMPRESSOPTIONS.dwFlags. determines presence of fields in below struct */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
597 #define AVICOMPRESSF_INTERLEAVE 0x00000001
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
598 #define AVICOMPRESSF_DATARATE 0x00000002
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
599 #define AVICOMPRESSF_KEYFRAMES 0x00000004
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
600 #define AVICOMPRESSF_VALID 0x00000008
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
601
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
602 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
603 long fccType; /* stream type, for consistency */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
604 long fccHandler; /* compressor */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
605 long dwKeyFrameEvery; /* keyframe rate */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
606 long dwQuality; /* compress quality 0-10,000 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
607 long dwBytesPerSecond; /* unsigned chars per second */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
608 long dwFlags; /* flags... see below */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
609 void* lpFormat; /* save format */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
610 long cbFormat;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
611 void* lpParms; /* compressor options */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
612 long cbParms;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
613 long dwInterleaveEvery; /* for non-video streams only */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
614 } AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
615
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
616
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
617
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
618 typedef struct {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
619 long cbSize; // set to sizeof(COMPVARS) before
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
620 // calling ICCompressorChoose
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
621 long dwFlags; // see below...
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
622 HIC hic; // HIC of chosen compressor
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
623 long fccType; // basically ICTYPE_VIDEO
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
624 long fccHandler; // handler of chosen compressor or
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
625 // "" or "DIB "
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
626 LPBITMAPINFO lpbiIn; // input format
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
627 LPBITMAPINFO lpbiOut; // output format - will compress to this
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
628 void* lpBitsOut;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
629 void* lpBitsPrev;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
630 long lFrame;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
631 long lKey; // key frames how often?
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
632 long lDataRate; // desired data rate KB/Sec
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
633 long lQ; // desired quality
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
634 long lKeyCount;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
635 void* lpState; // state of compressor
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
636 long cbState; // size of the state
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
637 } COMPVARS, *PCOMPVARS;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
638
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
639 // FLAGS for dwFlags element of COMPVARS structure:
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
640
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
641
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
642 #define AVIERR_OK 0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
643 #define MAKE_AVIERR(error) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+error)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
644
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
645 #define AVIERR_UNSUPPORTED MAKE_AVIERR(101)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
646 #define AVIERR_BADFORMAT MAKE_AVIERR(102)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
647 #define AVIERR_MEMORY MAKE_AVIERR(103)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
648 #define AVIERR_INTERNAL MAKE_AVIERR(104)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
649 #define AVIERR_BADFLAGS MAKE_AVIERR(105)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
650 #define AVIERR_BADPARAM MAKE_AVIERR(106)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
651 #define AVIERR_BADSIZE MAKE_AVIERR(107)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
652 #define AVIERR_BADHANDLE MAKE_AVIERR(108)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
653 #define AVIERR_FILEREAD MAKE_AVIERR(109)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
654 #define AVIERR_FILEWRITE MAKE_AVIERR(110)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
655 #define AVIERR_FILEOPEN MAKE_AVIERR(111)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
656 #define AVIERR_COMPRESSOR MAKE_AVIERR(112)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
657 #define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
658 #define AVIERR_READONLY MAKE_AVIERR(114)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
659 #define AVIERR_NODATA MAKE_AVIERR(115)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
660 #define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
661 #define AVIERR_CANTCOMPRESS MAKE_AVIERR(117)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
662 #define AVIERR_USERABORT MAKE_AVIERR(198)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
663 #define AVIERR_ERROR MAKE_AVIERR(199)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
664
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
665 #ifdef __cplusplus
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
666 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
667 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
668 #endif /* __WINE_VFW_H */