annotate loader/wine/vfw.h @ 18715:30d7ddf08889

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