1 #ifndef _INC_VFW 2 #define _INC_VFW 3 4 #include <mmsystem.h> 5 6 #ifndef aviTWOCC 7 #define aviTWOCC(C0,C1) ((WORD)(BYTE)(C0)|((WORD)(BYTE)(C1) << 8)) 8 #endif 9 10 #ifndef ICTYPE_VIDEO 11 #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c') 12 #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c') 13 #endif 14 15 #ifndef ICERR_OK 16 #define ICERR_OK 0L 17 #define ICERR_DONTDRAW 1L 18 #define ICERR_NEWPALETTE 2L 19 #define ICERR_GOTOKEYFRAME 3L 20 #define ICERR_STOPDRAWING 4L 21 22 #define ICERR_UNSUPPORTED -1L 23 #define ICERR_BADFORMAT -2L 24 #define ICERR_MEMORY -3L 25 #define ICERR_INTERNAL -4L 26 #define ICERR_BADFLAGS -5L 27 #define ICERR_BADPARAM -6L 28 #define ICERR_BADSIZE -7L 29 #define ICERR_BADHANDLE -8L 30 #define ICERR_CANTUPDATE -9L 31 #define ICERR_ABORT -10L 32 #define ICERR_ERROR -100L 33 #define ICERR_BADBITDEPTH -200L 34 #define ICERR_BADIMAGESIZE -201L 35 36 #define ICERR_CUSTOM -400L 37 #endif 38 39 #ifndef ICMODE_COMPRESS 40 #define ICMODE_COMPRESS 1 41 #define ICMODE_DECOMPRESS 2 42 #define ICMODE_FASTDECOMPRESS 3 43 #define ICMODE_QUERY 4 44 #define ICMODE_FASTCOMPRESS 5 45 #define ICMODE_DRAW 8 46 #endif 47 48 #define AVIIF_LIST 0x00000001L 49 #define AVIIF_TWOCC 0x00000002L 50 #define AVIIF_KEYFRAME 0x00000010L 51 52 #define ICCOMPRESS_KEYFRAME 0x00000001L 53 54 typedef struct { 55 DWORD dwFlags; 56 LPBITMAPINFOHEADER lpbiOutput; 57 LPVOID lpOutput; 58 LPBITMAPINFOHEADER lpbiInput; 59 LPVOID lpInput; 60 LPDWORD lpckid; 61 LPDWORD lpdwFlags; 62 LONG lFrameNum; 63 DWORD dwFrameSize; 64 DWORD dwQuality; 65 LPBITMAPINFOHEADER lpbiPrev; 66 LPVOID lpPrev; 67 } ICCOMPRESS; 68 69 #define ICCOMPRESSFRAMES_PADDING 0x00000001 70 71 typedef struct { 72 DWORD dwFlags; 73 LPBITMAPINFOHEADER lpbiOutput; 74 LPARAM lOutput; 75 LPBITMAPINFOHEADER lpbiInput; 76 LPARAM lInput; 77 LONG lStartFrame; 78 LONG lFrameCount; 79 LONG lQuality; 80 LONG lDataRate; 81 LONG lKeyRate; 82 DWORD dwRate; 83 DWORD dwScale; 84 DWORD dwOverheadPerFrame; 85 DWORD dwReserved2; 86 LONG (CALLBACK *GetData)(LPARAM,LONG,LPVOID,LONG); 87 LONG (CALLBACK *PutData)(LPARAM,LONG,LPVOID,LONG); 88 } ICCOMPRESSFRAMES; 89 90 #define ICDECOMPRESS_HURRYUP 0x80000000L 91 #define ICDECOMPRESS_UPDATE 0x40000000L 92 #define ICDECOMPRESS_PREROLL 0x20000000L 93 #define ICDECOMPRESS_NULLFRAME 0x10000000L 94 #define ICDECOMPRESS_NOTKEYFRAME 0x08000000L 95 96 typedef struct { 97 DWORD dwFlags; 98 LPBITMAPINFOHEADER lpbiInput; 99 LPVOID lpInput; 100 LPBITMAPINFOHEADER lpbiOutput; 101 LPVOID lpOutput; 102 DWORD ckid; 103 } ICDECOMPRESS; 104 105 typedef struct { 106 DWORD dwSize; 107 DWORD fccType; 108 DWORD fccHandler; 109 DWORD dwVersion; 110 DWORD dwFlags; 111 LRESULT dwError; 112 LPVOID pV1Reserved; 113 LPVOID pV2Reserved; 114 DWORD dnDevNode; 115 } ICOPEN; 116 117 #define ICM_USER (DRV_USER+0x0000) 118 119 #define ICM_RESERVED ICM_RESERVED_LOW 120 #define ICM_RESERVED_LOW (DRV_USER+0x1000) 121 #define ICM_RESERVED_HIGH (DRV_USER+0x2000) 122 123 #define ICM_GETSTATE (ICM_RESERVED+0) 124 #define ICM_SETSTATE (ICM_RESERVED+1) 125 #define ICM_GETINFO (ICM_RESERVED+2) 126 #define ICM_CONFIGURE (ICM_RESERVED+10) 127 #define ICM_ABOUT (ICM_RESERVED+11) 128 #define ICM_GETERRORTEXT (ICM_RESERVED+12) 129 #define ICM_GETFORMATNAME (ICM_RESERVED+20) 130 #define ICM_ENUMFORMATS (ICM_RESERVED+21) 131 #define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30) 132 #define ICM_GETQUALITY (ICM_RESERVED+31) 133 #define ICM_SETQUALITY (ICM_RESERVED+32) 134 #define ICM_SET (ICM_RESERVED+40) 135 #define ICM_GET (ICM_RESERVED+41) 136 137 #define ICM_FRAMERATE mmioFOURCC('F','r','m','R') 138 #define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R') 139 140 typedef struct { 141 DWORD dwSize; 142 DWORD fccType; 143 DWORD fccHandler; 144 DWORD dwFlags; 145 DWORD dwVersion; 146 DWORD dwVersionICM; 147 WCHAR szName[16]; 148 WCHAR szDescription[128]; 149 WCHAR szDriver[128]; 150 } ICINFO; 151 152 #define VIDCF_QUALITY 0x0001 153 #define VIDCF_CRUNCH 0x0002 154 #define VIDCF_TEMPORAL 0x0004 155 #define VIDCF_COMPRESSFRAMES 0x0008 156 #define VIDCF_DRAW 0x0010 157 #define VIDCF_FASTTEMPORALC 0x0020 158 #define VIDCF_FASTTEMPORALD 0x0080 159 #define VIDCF_QUALITYTIME 0x0040 160 #define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD) 161 162 #define ICVERSION 0x0104 163 164 #define ICM_COMPRESS_GET_FORMAT (ICM_USER+4) 165 #define ICM_COMPRESS_GET_SIZE (ICM_USER+5) 166 #define ICM_COMPRESS_QUERY (ICM_USER+6) 167 #define ICM_COMPRESS_BEGIN (ICM_USER+7) 168 #define ICM_COMPRESS (ICM_USER+8) 169 #define ICM_COMPRESS_END (ICM_USER+9) 170 171 #define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10) 172 #define ICM_DECOMPRESS_QUERY (ICM_USER+11) 173 #define ICM_DECOMPRESS_BEGIN (ICM_USER+12) 174 #define ICM_DECOMPRESS (ICM_USER+13) 175 #define ICM_DECOMPRESS_END (ICM_USER+14) 176 #define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29) 177 #define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30) 178 179 #define ICM_DRAW_QUERY (ICM_USER+31) 180 #define ICM_DRAW_BEGIN (ICM_USER+15) 181 #define ICM_DRAW_GET_PALETTE (ICM_USER+16) 182 #define ICM_DRAW_UPDATE (ICM_USER+17) 183 #define ICM_DRAW_START (ICM_USER+18) 184 #define ICM_DRAW_STOP (ICM_USER+19) 185 #define ICM_DRAW_BITS (ICM_USER+20) 186 #define ICM_DRAW_END (ICM_USER+21) 187 #define ICM_DRAW_GETTIME (ICM_USER+32) 188 #define ICM_DRAW (ICM_USER+33) 189 #define ICM_DRAW_WINDOW (ICM_USER+34) 190 #define ICM_DRAW_SETTIME (ICM_USER+35) 191 #define ICM_DRAW_REALIZE (ICM_USER+36) 192 #define ICM_DRAW_FLUSH (ICM_USER+37) 193 #define ICM_DRAW_RENDERBUFFER (ICM_USER+38) 194 #define ICM_DRAW_START_PLAY (ICM_USER+39) 195 #define ICM_DRAW_STOP_PLAY (ICM_USER+40) 196 #define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50) 197 #define ICM_DRAW_CHANGEPALETTE (ICM_USER+51) 198 #define ICM_DRAW_IDLE (ICM_USER+52) 199 #define ICM_GETBUFFERSWANTED (ICM_USER+41) 200 #define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42) 201 #define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60) 202 #define ICM_DECOMPRESSEX_QUERY (ICM_USER+61) 203 #define ICM_DECOMPRESSEX (ICM_USER+62) 204 #define ICM_DECOMPRESSEX_END (ICM_USER+63) 205 #define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70) 206 #define ICM_COMPRESS_FRAMES (ICM_USER+71) 207 #define ICM_SET_STATUS_PROC (ICM_USER+72) 208 209 #endif /* _INC_VFW */ 210