annotate loader/wine/vfw.h @ 4564:5e1221d4655e

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