vfw.h
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:5k
源码类别:

Audio

开发平台:

Visual C++

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