annotate loader/wine/vfw.h @ 27249:4be2b34aa431

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