Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

801 lines
49 KiB

  1. #ifndef __MSTREAMS_H__
  2. #define __MSTREAMS_H__
  3. /**
  4. Copyright (c) 1997 1998 Philips CE I&C
  5. Module Name : phvcm_streamformats
  6. Creation Date : 13 August 1997
  7. First Author : Paul Oosterhof
  8. Product : nala camera
  9. Description : This include file contains the definition of the
  10. streamformats.
  11. It has been placed in a separate file to increase
  12. the readability of philpcam.c, which includes this file.
  13. History :
  14. --------+---------------+---------------------------------------------------
  15. Date | Author | reason
  16. --------+---------------+---------------------------------------------------
  17. 29-09-97|P.J.O. |equal streams with diferent framerates can be combined
  18. --------+---------------+---------------------------------------------------
  19. 11-03-98|P.J.O. |PCF3 & prototype stream deleted
  20. --------+---------------+---------------------------------------------------
  21. 14-04-98|P.J.O. |PCFx Deleted and I420/IYUV added
  22. --------+---------------+---------------------------------------------------
  23. 01-07-98|P.J.O. |QQCIF/SIF/QSIF/SQSIF/SSIF added
  24. --------+---------------+---------------------------------------------------
  25. 22-09-98|P.J.O. |Optimized for NT5
  26. --------+---------------+---------------------------------------------------
  27. 30-12-98|P.J.O. |SCIF (240x176) added
  28. --------+---------------+---------------------------------------------------
  29. Here defined formats:
  30. \
  31. #define STREAMFORMAT_CIF_I420 \
  32. #define STREAMFORMAT_QCIF_I420 \
  33. #define STREAMFORMAT_SQCIF_I420 \
  34. #define STREAMFORMAT_VGA_I420 \
  35. #define STREAMFORMAT_QQCIF_I420 ( 88x 72) CROPPED FROM QCIF (176X144)
  36. #define STREAMFORMAT_SIF_I420 (320x240) CROPPED FROM CIF (352X288)
  37. #define STREAMFORMAT_QSIF_I420 (160X120) CROPPED FROM QCIF (176X144)
  38. #define STREAMFORMAT_SQSIF_I420 ( 80X 60) CROPPED FROM SQCIF (128X 96)
  39. #define STREAMFORMAT_SSIF_I420 (240x180) CROPPED FROM CIF (352X288)
  40. #define STREAMFORMAT_SCIF_I420 (240x176) CROPPED FROM CIF (352X288)
  41. **/
  42. #define FCC_FORMAT_I420 mmioFOURCC('I','4','2','0')
  43. #define BIBITCOUNT_PRODUCT 12
  44. #define BPPXL 12 // bits per pixel
  45. #define FORMAT_MEDIASUBTYPE_I420 {0x30323449, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
  46. #define FRAMERATE24_INTV 416667 // 100 NS UNITS
  47. #define FRAMERATE20_INTV 500000 // 100 NS UNITS
  48. #define FRAMERATE15_INTV 666667 // 100 NS UNITS
  49. #define FRAMERATE12_INTV 833333
  50. #define FRAMERATE125_INTV 800000
  51. #define FRAMERATE10_INTV 1000000
  52. #define FRAMERATE75_INTV 1333333
  53. #define FRAMERATE5_INTV 2000000
  54. #define FRAMERATE375_INTV 2666667
  55. #define FRAMERATE05_INTV 20000000 // 2 SEC
  56. /******************************************************************************
  57. --------+---------+---------+---------+---------------+
  58. Format |Framerate|Compressd|Bitstream|Application |
  59. --------+---------+---------+---------+---------------+
  60. QCIF |24 | 0 | 7.2 |PAL + VGA |
  61. --------+---------+---------+---------+---------------+
  62. QCIF |20 | 0 | 6.2 |PAL + VGA |
  63. --------+---------+---------+---------+---------------+
  64. QCIF |15 | 0 | 5.0 |PAL + VGA |
  65. --------+---------+---------+---------+---------------+
  66. QCIF |12 | 0 | 4.0 |PAL |
  67. --------+---------+---------+---------+---------------+
  68. QCIF |10 | 0 | 3.3 |PAL + VGA |
  69. --------+---------+---------+---------+---------------+
  70. QCIF |7.5 | 0 | 2.5 |PAL + VGA |
  71. --------+---------+---------+---------+---------------+
  72. QCIF | 5 | 0 | 1.25 |PAL + VGA |
  73. */
  74. #define STREAMFORMAT_QCIF_I420 \
  75. { \
  76. /* KSDATARANGE */ \
  77. { \
  78. sizeof (KS_DATARANGE_VIDEO), \
  79. 0, \
  80. (QCIF_X * QCIF_Y * BIBITCOUNT_PRODUCT)/8, /* SampleSize, 12 bits per pixel */ \
  81. 0, /* Reserved */ \
  82. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  83. FORMAT_MEDIASUBTYPE_I420, /* MEDIASUBTYPE_I420 (SubFormat) */ \
  84. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO /*FORMAT_VideoInfo (Specifier) */ \
  85. }, \
  86. \
  87. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  88. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  89. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  90. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  91. \
  92. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  93. { \
  94. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  95. KS_AnalogVideo_None, /* VideoStandard */ \
  96. QCIF_X,QCIF_Y, /* InputSize, (the inherent size of the incoming signal */ \
  97. /* with every digitized pixel unique) */ \
  98. QCIF_X,QCIF_Y, /* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  99. QCIF_X,QCIF_Y, /* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  100. 1, /* CropGranularityX, granularity of cropping size */ \
  101. 1, /* CropGranularityY */ \
  102. 1, /* CropAlignX, alignment of cropping rect */ \
  103. 1, /* CropAlignY */ \
  104. QCIF_X,QCIF_Y, /* MinOutputSize, smallest bitmap stream can produce */ \
  105. QCIF_X,QCIF_Y, /* MaxOutputSize, largest bitmap stream can produce */ \
  106. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  107. 1, /* OutputGranularityY */ \
  108. 0, /* StretchTapsX */ \
  109. 0, /* StretchTapsY */ \
  110. 0, /* ShrinkTapsX */ \
  111. 0, /* ShrinkTapsY */ \
  112. FRAMERATE24_INTV, /* MinFrameInterval, 100 nS units (24 Hz) */ \
  113. FRAMERATE5_INTV, /* MaxFrameInterval, 100 nS units */ \
  114. BPPXL * 5 * QCIF_X * QCIF_Y, /* MinBitsPerSecond 3 ??? JOHN */ \
  115. BPPXL * 24 * QCIF_X * QCIF_Y /* MaxBitsPerSecond */ \
  116. }, \
  117. \
  118. /* KS_VIDEOINFOHEADER (default format) */ \
  119. { \
  120. 0,0,0,0, /* RECT rcSource */ \
  121. 0,0,0,0, /* RECT rcTarget */ \
  122. QCIF_X * QCIF_Y * BPPXL * 24, /* DWORD dwBitRate */ \
  123. 0L, /* DWORD dwBitErrorRate */ \
  124. FRAMERATE24_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  125. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  126. QCIF_X, /* LONG biWidth */ \
  127. QCIF_Y, /* LONG biHeight */ \
  128. 1, /* WORD biPlanes */ \
  129. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  130. FCC_FORMAT_I420, /* DWORD biCompression */ \
  131. (QCIF_X * QCIF_Y * BPPXL ) /8, /* DWORD biSizeImage */ \
  132. 0, /* LONG biXPelsPerMeter */ \
  133. 0, /* LONG biYPelsPerMeter */ \
  134. 0, /* DWORD biClrUsed */ \
  135. 0 /* DWORD biClrImportant */ \
  136. } \
  137. }
  138. /******************************************************************************
  139. --------+---------+---------+---------+---------------+
  140. Format |Framerate|Compressd|Bitstream|Application |
  141. --------+---------+---------+---------+---------------+
  142. CIF |15 | 0 | Mb/s|VGA+Pal |
  143. --------+---------+---------+---------+---------------+
  144. CIF |12 | 0 | |PAL |
  145. --------+---------+---------+---------+---------------+
  146. CIF |10 | 0 | |PAL + VGA |
  147. --------+---------+---------+---------+---------------+
  148. CIF |7.5 | 0 | |PAL + VGA |
  149. --------+---------+---------+---------+---------------+
  150. CIF |5 | 0 | |PAL + VGA |
  151. --------+---------+---------+---------+---------------+
  152. CIF |3.75 | 0 | |PAL + VGA |
  153. */
  154. #define STREAMFORMAT_CIF_I420 \
  155. { \
  156. /* KSDATARANGE */ \
  157. { \
  158. sizeof (KS_DATARANGE_VIDEO), /* ULONG FormatSize*/ \
  159. 0, /* ULONG Flags */ \
  160. (CIF_X * CIF_Y * BPPXL )/8, /* SampleSize, 12 bits per pixel */ \
  161. 0, /* Reserved */ \
  162. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  163. FORMAT_MEDIASUBTYPE_I420, /*MEDIASUBTYPE_I420 (SubFormat) */ \
  164. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \
  165. }, \
  166. \
  167. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  168. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  169. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  170. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  171. \
  172. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  173. { \
  174. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  175. KS_AnalogVideo_None, /* VideoStandard */ \
  176. CIF_X,CIF_Y, /* InputSize, (the inherent size of the incoming signal */ \
  177. /* with every digitized pixel unique) */ \
  178. CIF_X,CIF_Y, /* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  179. CIF_X,CIF_Y, /* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  180. 1, /* CropGranularityX, granularity of cropping size */ \
  181. 1, /* CropGranularityY */ \
  182. 1, /* CropAlignX, alignment of cropping rect */ \
  183. 1, /* CropAlignY */ \
  184. CIF_X,CIF_Y, /* MinOutputSize, smallest bitmap stream can produce */ \
  185. CIF_X,CIF_Y, /* MaxOutputSize, largest bitmap stream can produce */ \
  186. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  187. 1, /* OutputGranularityY */ \
  188. 0, /* StretchTapsX */ \
  189. 0, /* StretchTapsY */ \
  190. 0, /* ShrinkTapsX */ \
  191. 0, /* ShrinkTapsY */ \
  192. FRAMERATE15_INTV, /* MinFrameInterval, 100 nS units (15 Hz) */ \
  193. FRAMERATE375_INTV, /* MaxFrameInterval, 100 nS units */ \
  194. BPPXL * 3 * CIF_X * CIF_Y, /* MinBitsPerSecond */ \
  195. BPPXL * 15 * CIF_X * CIF_Y /* MaxBitsPerSecond */ \
  196. }, \
  197. \
  198. /* KS_VIDEOINFOHEADER (default format) */ \
  199. { \
  200. 0,0,0,0, /* RECT rcSource */ \
  201. 0,0,0,0, /* RECT rcTarget */ \
  202. CIF_X * CIF_Y * BPPXL * 15, /* DWORD dwBitRate */ \
  203. 0L, /* DWORD dwBitErrorRate */ \
  204. FRAMERATE15_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  205. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  206. CIF_X, /* LONG biWidth */ \
  207. CIF_Y, /* LONG biHeight */ \
  208. 1, /* WORD biPlanes */ \
  209. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  210. FCC_FORMAT_I420, /* DWORD biCompression */ \
  211. (CIF_X * CIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  212. 0, /* LONG biXPelsPerMeter */ \
  213. 0, /* LONG biYPelsPerMeter */ \
  214. 0, /* DWORD biClrUsed */ \
  215. 0 /* DWORD biClrImportant */ \
  216. } \
  217. }
  218. /******************************************************************************
  219. --------+---------+---------+---------+---------------+
  220. Format |Framerate|Compressd|Bitstream|Application |
  221. --------+---------+---------+---------+---------------+
  222. SQCIF |24 | 0 | 7.2 |PAL + VGA |
  223. --------+---------+---------+---------+---------------+
  224. SQCIF |20 | 0 | 6.0 |PAL + VGA |
  225. --------+---------+---------+---------+---------------+
  226. SQCIF |15 | 0 | 5.0 |PAL + VGA |
  227. --------+---------+---------+---------+---------------+
  228. SQCIF |12 | 0 | 4.0 |PAL |
  229. --------+---------+---------+---------+---------------+
  230. SQCIF |10 | 0 | 3.3 |PAL + VGA |
  231. --------+---------+---------+---------+---------------+
  232. SQCIF |7.5 | 0 | 2.5 |PAL + VGA |
  233. --------+---------+---------+---------+---------------+
  234. SQCIF |5 | 0 | 1.25 |PAL + VGA |
  235. */
  236. #define STREAMFORMAT_SQCIF_I420 \
  237. { \
  238. /* KSDATARANGE */ \
  239. { \
  240. sizeof (KS_DATARANGE_VIDEO), \
  241. 0, \
  242. (SQCIF_X * SQCIF_Y * BIBITCOUNT_PRODUCT)/8, /* SampleSize, 12 bits per pixel */ \
  243. 0, /* Reserved */ \
  244. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  245. FORMAT_MEDIASUBTYPE_I420, /* MEDIASUBTYPE_I420 (SubFormat) */ \
  246. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO /*FORMAT_VideoInfo (Specifier) */ \
  247. }, \
  248. \
  249. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  250. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  251. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  252. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  253. \
  254. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  255. { \
  256. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  257. KS_AnalogVideo_None, /*VideoStandard */ \
  258. SQCIF_X,SQCIF_Y,/* InputSize, (the inherent size of the incoming signal */ \
  259. /* with every digitized pixel unique) */ \
  260. SQCIF_X,SQCIF_Y,/* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  261. SQCIF_X,SQCIF_Y,/* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  262. 1, /* CropGranularityX, granularity of cropping size */ \
  263. 1, /* CropGranularityY */ \
  264. 1, /* CropAlignX, alignment of cropping rect */ \
  265. 1, /* CropAlignY */ \
  266. SQCIF_X,SQCIF_Y,/* MinOutputSize, smallest bitmap stream can produce */ \
  267. SQCIF_X,SQCIF_Y,/* MaxOutputSize, largest bitmap stream can produce */ \
  268. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  269. 1, /* OutputGranularityY */ \
  270. 0, /* StretchTapsX */ \
  271. 0, /* StretchTapsY */ \
  272. 0, /* ShrinkTapsX */ \
  273. 0, /* ShrinkTapsY */ \
  274. FRAMERATE24_INTV, /* MinFrameInterval, 100 nS units */ \
  275. FRAMERATE5_INTV , /* MaxFrameInterval, 100 nS units */ \
  276. BPPXL * 5 * SQCIF_X * SQCIF_Y, /* MinBitsPerSecond 3 ??? JOHN */ \
  277. BPPXL * 24 * SQCIF_X * SQCIF_Y /* MaxBitsPerSecond */ \
  278. }, \
  279. \
  280. /* KS_VIDEOINFOHEADER (default format) */ \
  281. { \
  282. 0,0,0,0, /* RECT rcSource */ \
  283. 0,0,0,0, /* RECT rcTarget */ \
  284. SQCIF_X * SQCIF_Y * BPPXL * 24, /* DWORD dwBitRate */ \
  285. 0L, /* DWORD dwBitErrorRate */ \
  286. FRAMERATE24_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  287. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  288. SQCIF_X, /* LONG biWidth */ \
  289. SQCIF_Y, /* LONG biHeight */ \
  290. 1, /* WORD biPlanes */ \
  291. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  292. FCC_FORMAT_I420, /* DWORD biCompression */ \
  293. (SQCIF_X * SQCIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  294. 0, /* LONG biXPelsPerMeter */ \
  295. 0, /* LONG biYPelsPerMeter */ \
  296. 0, /* DWORD biClrUsed */ \
  297. 0 /* DWORD biClrImportant */ \
  298. } \
  299. }
  300. #define STREAMFORMAT_QQCIF_I420 \
  301. { \
  302. /* KSDATARANGE */ \
  303. { \
  304. sizeof (KS_DATARANGE_VIDEO), \
  305. 0, \
  306. (QQCIF_X * QQCIF_Y * BIBITCOUNT_PRODUCT)/8, /* SampleSize, 12 bits per pixel */ \
  307. 0, /* Reserved */ \
  308. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  309. FORMAT_MEDIASUBTYPE_I420, /* MEDIASUBTYPE_I420 (SubFormat) */ \
  310. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO /*FORMAT_VideoInfo (Specifier) */ \
  311. }, \
  312. \
  313. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  314. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  315. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  316. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  317. \
  318. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  319. { \
  320. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  321. KS_AnalogVideo_None, /*VideoStandard */ \
  322. QQCIF_X,QQCIF_Y,/* InputSize, (the inherent size of the incoming signal */ \
  323. /* with every digitized pixel unique) */ \
  324. QQCIF_X,QQCIF_Y,/* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  325. QQCIF_X,QQCIF_Y,/* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  326. 1, /* CropGranularityX, granularity of cropping size */ \
  327. 1, /* CropGranularityY */ \
  328. 1, /* CropAlignX, alignment of cropping rect */ \
  329. 1, /* CropAlignY */ \
  330. QQCIF_X,QQCIF_Y,/* MinOutputSize, smallest bitmap stream can produce */ \
  331. QQCIF_X,QQCIF_Y,/* MaxOutputSize, largest bitmap stream can produce */ \
  332. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  333. 1, /* OutputGranularityY */ \
  334. 0, /* StretchTapsX */ \
  335. 0, /* StretchTapsY */ \
  336. 0, /* ShrinkTapsX */ \
  337. 0, /* ShrinkTapsY */ \
  338. FRAMERATE24_INTV, /* MinFrameInterval, 100 nS units */ \
  339. FRAMERATE5_INTV , /* MaxFrameInterval, 100 nS units */ \
  340. BPPXL * 5 * QQCIF_X * QQCIF_Y, /* MinBitsPerSecond 3 ??? JOHN */ \
  341. BPPXL * 24 * QQCIF_X * QQCIF_Y /* MaxBitsPerSecond */ \
  342. }, \
  343. \
  344. /* KS_VIDEOINFOHEADER (default format) */ \
  345. { \
  346. 0,0,0,0, /* RECT rcSource */ \
  347. 0,0,0,0, /* RECT rcTarget */ \
  348. QQCIF_X * QQCIF_Y * BPPXL * 24, /* DWORD dwBitRate */ \
  349. 0L, /* DWORD dwBitErrorRate */ \
  350. FRAMERATE24_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  351. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  352. QQCIF_X, /* LONG biWidth */ \
  353. QQCIF_Y, /* LONG biHeight */ \
  354. 1, /* WORD biPlanes */ \
  355. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  356. FCC_FORMAT_I420, /* DWORD biCompression */ \
  357. (QQCIF_X * QQCIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  358. 0, /* LONG biXPelsPerMeter */ \
  359. 0, /* LONG biYPelsPerMeter */ \
  360. 0, /* DWORD biClrUsed */ \
  361. 0 /* DWORD biClrImportant */ \
  362. } \
  363. }
  364. /******************************************************************************
  365. --------+---------+---------+---------+---------------+
  366. Format |Framerate|Compressd|Bitstream|Application |
  367. --------+---------+---------+---------+---------------+
  368. VGA |1 | 0 | 4.0 |VGA |
  369. */
  370. #define STREAMFORMAT_VGA_I420 \
  371. { \
  372. /* KSDATARANGE */ \
  373. { \
  374. sizeof (KS_DATARANGE_VIDEO), \
  375. 0, \
  376. (VGA_X * VGA_Y * BIBITCOUNT_PRODUCT)/8, /* SampleSize, 12 bits per pixel */ \
  377. 0, /* Reserved */ \
  378. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  379. FORMAT_MEDIASUBTYPE_I420, /* MEDIASUBTYPE_I420 (SubFormat) */ \
  380. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO /*FORMAT_VideoInfo (Specifier) */ \
  381. }, \
  382. \
  383. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  384. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  385. KS_VIDEOSTREAM_STILL, /* StreamDescriptionFlags */ \
  386. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  387. \
  388. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  389. { \
  390. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  391. KS_AnalogVideo_None, /*VideoStandard */ \
  392. VGA_X,VGA_Y, /* InputSize, (the inherent size of the incoming signal */ \
  393. /* with every digitized pixel unique) */ \
  394. VGA_X,VGA_Y,/* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  395. VGA_X,VGA_Y,/* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  396. 1, /* CropGranularityX, granularity of cropping size */ \
  397. 1, /* CropGranularityY */ \
  398. 1, /* CropAlignX, alignment of cropping rect */ \
  399. 1, /* CropAlignY */ \
  400. VGA_X,VGA_Y,/* MinOutputSize, smallest bitmap stream can produce */ \
  401. VGA_X,VGA_Y,/* MaxOutputSize, largest bitmap stream can produce */ \
  402. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  403. 1, /* OutputGranularityY */ \
  404. 0, /* StretchTapsX */ \
  405. 0, /* StretchTapsY */ \
  406. 0, /* ShrinkTapsX */ \
  407. 0, /* ShrinkTapsY */ \
  408. FRAMERATE05_INTV, /* MinFrameInterval, 100 nS units */ \
  409. FRAMERATE05_INTV, /* MaxFrameInterval, 100 nS units */ \
  410. BPPXL * 1 * VGA_X * VGA_Y, /* MinBitsPerSecond 3 ??? JOHN */ \
  411. BPPXL * 1 * VGA_X * VGA_Y /* MaxBitsPerSecond */ \
  412. }, \
  413. \
  414. /* KS_VIDEOINFOHEADER (default format) */ \
  415. { \
  416. 0,0,0,0, /* RECT rcSource */ \
  417. 0,0,0,0, /* RECT rcTarget */ \
  418. VGA_X * VGA_Y * BPPXL * 1, /* DWORD dwBitRate */ \
  419. 0L, /* DWORD dwBitErrorRate */ \
  420. FRAMERATE05_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  421. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  422. VGA_X, /* LONG biWidth */ \
  423. VGA_Y, /* LONG biHeight */ \
  424. 1, /* WORD biPlanes */ \
  425. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  426. FCC_FORMAT_I420, /* DWORD biCompression */ \
  427. (VGA_X * VGA_Y * BIBITCOUNT_PRODUCT)/8, /* DWORD biSizeImage */ \
  428. 0, /* LONG biXPelsPerMeter */ \
  429. 0, /* LONG biYPelsPerMeter */ \
  430. 0, /* DWORD biClrUsed */ \
  431. 0 /* DWORD biClrImportant */ \
  432. } \
  433. }
  434. #define STREAMFORMAT_SIF_I420 \
  435. { \
  436. /* KSDATARANGE */ \
  437. { \
  438. sizeof (KS_DATARANGE_VIDEO), /* ULONG FormatSize*/ \
  439. 0, /* ULONG Flags */ \
  440. (SIF_X * SIF_Y * BPPXL )/8, /* SampleSize, 12 bits per pixel */ \
  441. 0, /* Reserved */ \
  442. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  443. FORMAT_MEDIASUBTYPE_I420, /*MEDIASUBTYPE_I420 (SubFormat) */ \
  444. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \
  445. }, \
  446. \
  447. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  448. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  449. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  450. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  451. \
  452. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  453. { \
  454. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  455. KS_AnalogVideo_None, /* VideoStandard */ \
  456. SIF_X,SIF_Y, /* InputSize, (the inherent size of the incoming signal */ \
  457. /* with every digitized pixel unique) */ \
  458. SIF_X,SIF_Y, /* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  459. SIF_X,SIF_Y, /* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  460. 1, /* CropGranularityX, granularity of cropping size */ \
  461. 1, /* CropGranularityY */ \
  462. 1, /* CropAlignX, alignment of cropping rect */ \
  463. 1, /* CropAlignY */ \
  464. SIF_X,SIF_Y, /* MinOutputSize, smallest bitmap stream can produce */ \
  465. SIF_X,SIF_Y, /* MaxOutputSize, largest bitmap stream can produce */ \
  466. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  467. 1, /* OutputGranularityY */ \
  468. 0, /* StretchTapsX */ \
  469. 0, /* StretchTapsY */ \
  470. 0, /* ShrinkTapsX */ \
  471. 0, /* ShrinkTapsY */ \
  472. FRAMERATE15_INTV, /* MinFrameInterval, 100 nS units (15 Hz) */ \
  473. FRAMERATE375_INTV, /* MaxFrameInterval, 100 nS units */ \
  474. BPPXL * 3 * SIF_X * SIF_Y, /* MinBitsPerSecond */ \
  475. BPPXL * 15 * SIF_X * SIF_Y /* MaxBitsPerSecond */ \
  476. }, \
  477. \
  478. /* KS_VIDEOINFOHEADER (default format) */ \
  479. { \
  480. 0,0,0,0, /* RECT rcSource */ \
  481. 0,0,0,0, /* RECT rcTarget */ \
  482. SIF_X * SIF_Y * BPPXL * 15, /* DWORD dwBitRate */ \
  483. 0L, /* DWORD dwBitErrorRate */ \
  484. FRAMERATE15_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  485. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  486. SIF_X, /* LONG biWidth */ \
  487. SIF_Y, /* LONG biHeight */ \
  488. 1, /* WORD biPlanes */ \
  489. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  490. FCC_FORMAT_I420, /* DWORD biCompression */ \
  491. (SIF_X * SIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  492. 0, /* LONG biXPelsPerMeter */ \
  493. 0, /* LONG biYPelsPerMeter */ \
  494. 0, /* DWORD biClrUsed */ \
  495. 0 /* DWORD biClrImportant */ \
  496. } \
  497. }
  498. #define STREAMFORMAT_SSIF_I420 \
  499. { \
  500. /* KSDATARANGE */ \
  501. { \
  502. sizeof (KS_DATARANGE_VIDEO), /* ULONG FormatSize*/ \
  503. 0, /* ULONG Flags */ \
  504. (SSIF_X * SSIF_Y * BPPXL )/8, /* SampleSize, 12 bits per pixel */ \
  505. 0, /* Reserved */ \
  506. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  507. FORMAT_MEDIASUBTYPE_I420, /*MEDIASUBTYPE_I420 (SubFormat) */ \
  508. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \
  509. }, \
  510. \
  511. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  512. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  513. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  514. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  515. \
  516. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  517. { \
  518. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  519. KS_AnalogVideo_None, /* VideoStandard */ \
  520. SSIF_X,SSIF_Y, /* InputSize, (the inherent size of the incoming signal */ \
  521. /* with every digitized pixel unique) */ \
  522. SSIF_X,SSIF_Y, /* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  523. SSIF_X,SSIF_Y, /* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  524. 1, /* CropGranularityX, granularity of cropping size */ \
  525. 1, /* CropGranularityY */ \
  526. 1, /* CropAlignX, alignment of cropping rect */ \
  527. 1, /* CropAlignY */ \
  528. SSIF_X,SSIF_Y, /* MinOutputSize, smallest bitmap stream can produce */ \
  529. SSIF_X,SSIF_Y, /* MaxOutputSize, largest bitmap stream can produce */ \
  530. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  531. 1, /* OutputGranularityY */ \
  532. 0, /* StretchTapsX */ \
  533. 0, /* StretchTapsY */ \
  534. 0, /* ShrinkTapsX */ \
  535. 0, /* ShrinkTapsY */ \
  536. FRAMERATE15_INTV, /* MinFrameInterval, 100 nS units (15 Hz) */ \
  537. FRAMERATE375_INTV, /* MaxFrameInterval, 100 nS units */ \
  538. BPPXL * 3 * SSIF_X * SSIF_Y, /* MinBitsPerSecond */ \
  539. BPPXL * 15 * SSIF_X * SSIF_Y /* MaxBitsPerSecond */ \
  540. }, \
  541. \
  542. /* KS_VIDEOINFOHEADER (default format) */ \
  543. { \
  544. 0,0,0,0, /* RECT rcSource */ \
  545. 0,0,0,0, /* RECT rcTarget */ \
  546. SSIF_X * SSIF_Y * BPPXL * 15, /* DWORD dwBitRate */ \
  547. 0L, /* DWORD dwBitErrorRate */ \
  548. FRAMERATE15_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  549. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  550. SSIF_X, /* LONG biWidth */ \
  551. SSIF_Y, /* LONG biHeight */ \
  552. 1, /* WORD biPlanes */ \
  553. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  554. FCC_FORMAT_I420, /* DWORD biCompression */ \
  555. (SSIF_X * SSIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  556. 0, /* LONG biXPelsPerMeter */ \
  557. 0, /* LONG biYPelsPerMeter */ \
  558. 0, /* DWORD biClrUsed */ \
  559. 0 /* DWORD biClrImportant */ \
  560. } \
  561. }
  562. #define STREAMFORMAT_SCIF_I420 \
  563. { \
  564. /* KSDATARANGE */ \
  565. { \
  566. sizeof (KS_DATARANGE_VIDEO), /* ULONG FormatSize*/ \
  567. 0, /* ULONG Flags */ \
  568. (SCIF_X * SCIF_Y * BPPXL )/8, /* SampleSize, 12 bits per pixel */ \
  569. 0, /* Reserved */ \
  570. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  571. FORMAT_MEDIASUBTYPE_I420, /*MEDIASUBTYPE_I420 (SubFormat) */ \
  572. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \
  573. }, \
  574. \
  575. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  576. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  577. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  578. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  579. \
  580. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  581. { \
  582. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  583. KS_AnalogVideo_None, /* VideoStandard */ \
  584. SCIF_X,SCIF_Y, /* InputSize, (the inherent size of the incoming signal */ \
  585. /* with every digitized pixel unique) */ \
  586. SCIF_X,SCIF_Y, /* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  587. SCIF_X,SCIF_Y, /* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  588. 1, /* CropGranularityX, granularity of cropping size */ \
  589. 1, /* CropGranularityY */ \
  590. 1, /* CropAlignX, alignment of cropping rect */ \
  591. 1, /* CropAlignY */ \
  592. SCIF_X,SCIF_Y, /* MinOutputSize, smallest bitmap stream can produce */ \
  593. SCIF_X,SCIF_Y, /* MaxOutputSize, largest bitmap stream can produce */ \
  594. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  595. 1, /* OutputGranularityY */ \
  596. 0, /* StretchTapsX */ \
  597. 0, /* StretchTapsY */ \
  598. 0, /* ShrinkTapsX */ \
  599. 0, /* ShrinkTapsY */ \
  600. FRAMERATE15_INTV, /* MinFrameInterval, 100 nS units (15 Hz) */ \
  601. FRAMERATE375_INTV, /* MaxFrameInterval, 100 nS units */ \
  602. BPPXL * 3 * SCIF_X * SCIF_Y, /* MinBitsPerSecond */ \
  603. BPPXL * 15 * SCIF_X * SCIF_Y /* MaxBitsPerSecond */ \
  604. }, \
  605. \
  606. /* KS_VIDEOINFOHEADER (default format) */ \
  607. { \
  608. 0,0,0,0, /* RECT rcSource */ \
  609. 0,0,0,0, /* RECT rcTarget */ \
  610. SCIF_X * SCIF_Y * BPPXL * 15, /* DWORD dwBitRate */ \
  611. 0L, /* DWORD dwBitErrorRate */ \
  612. FRAMERATE15_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  613. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  614. SCIF_X, /* LONG biWidth */ \
  615. SCIF_Y, /* LONG biHeight */ \
  616. 1, /* WORD biPlanes */ \
  617. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  618. FCC_FORMAT_I420, /* DWORD biCompression */ \
  619. (SCIF_X * SCIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  620. 0, /* LONG biXPelsPerMeter */ \
  621. 0, /* LONG biYPelsPerMeter */ \
  622. 0, /* DWORD biClrUsed */ \
  623. 0 /* DWORD biClrImportant */ \
  624. } \
  625. }
  626. #define STREAMFORMAT_QSIF_I420 \
  627. { \
  628. /* KSDATARANGE */ \
  629. { \
  630. sizeof (KS_DATARANGE_VIDEO), \
  631. 0, \
  632. (QSIF_X * QSIF_Y * BIBITCOUNT_PRODUCT)/8, /* SampleSize, 12 bits per pixel */ \
  633. 0, /* Reserved */ \
  634. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  635. FORMAT_MEDIASUBTYPE_I420, /* MEDIASUBTYPE_I420 (SubFormat) */ \
  636. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO /*FORMAT_VideoInfo (Specifier) */ \
  637. }, \
  638. \
  639. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  640. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  641. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  642. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  643. \
  644. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  645. { \
  646. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  647. KS_AnalogVideo_None, /* VideoStandard */ \
  648. QSIF_X,QSIF_Y, /* InputSize, (the inherent size of the incoming signal */ \
  649. /* with every digitized pixel unique) */ \
  650. QSIF_X,QSIF_Y, /* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  651. QSIF_X,QSIF_Y, /* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  652. 1, /* CropGranularityX, granularity of cropping size */ \
  653. 1, /* CropGranularityY */ \
  654. 1, /* CropAlignX, alignment of cropping rect */ \
  655. 1, /* CropAlignY */ \
  656. QSIF_X,QSIF_Y, /* MinOutputSize, smallest bitmap stream can produce */ \
  657. QSIF_X,QSIF_Y, /* MaxOutputSize, largest bitmap stream can produce */ \
  658. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  659. 1, /* OutputGranularityY */ \
  660. 0, /* StretchTapsX */ \
  661. 0, /* StretchTapsY */ \
  662. 0, /* ShrinkTapsX */ \
  663. 0, /* ShrinkTapsY */ \
  664. FRAMERATE24_INTV, /* MinFrameInterval, 100 nS units (24 Hz) */ \
  665. FRAMERATE5_INTV, /* MaxFrameInterval, 100 nS units */ \
  666. BPPXL * 5 * QSIF_X * QSIF_Y, /* MinBitsPerSecond 3 ??? JOHN */ \
  667. BPPXL * 24 * QSIF_X * QSIF_Y /* MaxBitsPerSecond */ \
  668. }, \
  669. \
  670. /* KS_VIDEOINFOHEADER (default format) */ \
  671. { \
  672. 0,0,0,0, /* RECT rcSource */ \
  673. 0,0,0,0, /* RECT rcTarget */ \
  674. QSIF_X * QSIF_Y * BPPXL * 24, /* DWORD dwBitRate */ \
  675. 0L, /* DWORD dwBitErrorRate */ \
  676. FRAMERATE24_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  677. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  678. QSIF_X, /* LONG biWidth */ \
  679. QSIF_Y, /* LONG biHeight */ \
  680. 1, /* WORD biPlanes */ \
  681. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  682. FCC_FORMAT_I420, /* DWORD biCompression */ \
  683. (QSIF_X * QSIF_Y * BPPXL ) /8, /* DWORD biSizeImage */ \
  684. 0, /* LONG biXPelsPerMeter */ \
  685. 0, /* LONG biYPelsPerMeter */ \
  686. 0, /* DWORD biClrUsed */ \
  687. 0 /* DWORD biClrImportant */ \
  688. } \
  689. }
  690. #define STREAMFORMAT_SQSIF_I420 \
  691. { \
  692. /* KSDATARANGE */ \
  693. { \
  694. sizeof (KS_DATARANGE_VIDEO), \
  695. 0, \
  696. (SQSIF_X * SQSIF_Y * BIBITCOUNT_PRODUCT)/8, /* SampleSize, 12 bits per pixel */ \
  697. 0, /* Reserved */ \
  698. STATIC_KSDATAFORMAT_TYPE_VIDEO, /*MEDIATYPE_Video (MajorFormat) */ \
  699. FORMAT_MEDIASUBTYPE_I420, /* MEDIASUBTYPE_I420 (SubFormat) */ \
  700. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO /*FORMAT_VideoInfo (Specifier) */ \
  701. }, \
  702. \
  703. TRUE, /* BOOL, bFixedSizeSamples (all samples same size?)*/ \
  704. TRUE, /* BOOL, bTemporalCompression (all I frames?) */ \
  705. KS_VIDEOSTREAM_CAPTURE, /* StreamDescriptionFlags */ \
  706. 0, /* MemoryAllocationFlags (KS_VIDEO_ALLOC_*)*/ \
  707. \
  708. /* _KS_VIDEO_STREAM_CONFIG_CAPS */ \
  709. { \
  710. STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO, \
  711. KS_AnalogVideo_None, /*VideoStandard */ \
  712. SQSIF_X,SQSIF_Y,/* InputSize, (the inherent size of the incoming signal */ \
  713. /* with every digitized pixel unique) */ \
  714. SQSIF_X,SQSIF_Y,/* MinCroppingSize, smallest rcSrc cropping rect allowed*/ \
  715. SQSIF_X,SQSIF_Y,/* MaxCroppingSize, largest rcSrc cropping rect allowed*/ \
  716. 1, /* CropGranularityX, granularity of cropping size */ \
  717. 1, /* CropGranularityY */ \
  718. 1, /* CropAlignX, alignment of cropping rect */ \
  719. 1, /* CropAlignY */ \
  720. SQSIF_X,SQSIF_Y,/* MinOutputSize, smallest bitmap stream can produce */ \
  721. SQSIF_X,SQSIF_Y,/* MaxOutputSize, largest bitmap stream can produce */ \
  722. 1, /* OutputGranularityX, granularity of output bitmap size */ \
  723. 1, /* OutputGranularityY */ \
  724. 0, /* StretchTapsX */ \
  725. 0, /* StretchTapsY */ \
  726. 0, /* ShrinkTapsX */ \
  727. 0, /* ShrinkTapsY */ \
  728. FRAMERATE24_INTV, /* MinFrameInterval, 100 nS units */ \
  729. FRAMERATE5_INTV , /* MaxFrameInterval, 100 nS units */ \
  730. BPPXL * 5 * SQSIF_X * SQSIF_Y, /* MinBitsPerSecond 3 ??? JOHN */ \
  731. BPPXL * 24 * SQSIF_X * SQSIF_Y /* MaxBitsPerSecond */ \
  732. }, \
  733. \
  734. /* KS_VIDEOINFOHEADER (default format) */ \
  735. { \
  736. 0,0,0,0, /* RECT rcSource */ \
  737. 0,0,0,0, /* RECT rcTarget */ \
  738. SQSIF_X * SQSIF_Y * BPPXL * 24, /* DWORD dwBitRate */ \
  739. 0L, /* DWORD dwBitErrorRate */ \
  740. FRAMERATE24_INTV, /* REFERENCE_TIME AvgTimePerFrame */ \
  741. sizeof (KS_BITMAPINFOHEADER), /* DWORD biSize */ \
  742. SQSIF_X, /* LONG biWidth */ \
  743. SQSIF_Y, /* LONG biHeight */ \
  744. 1, /* WORD biPlanes */ \
  745. BIBITCOUNT_PRODUCT, /* WORD biBitCount */ \
  746. FCC_FORMAT_I420, /* DWORD biCompression */ \
  747. (SQSIF_X * SQSIF_Y * BPPXL )/8, /* DWORD biSizeImage */ \
  748. 0, /* LONG biXPelsPerMeter */ \
  749. 0, /* LONG biYPelsPerMeter */ \
  750. 0, /* DWORD biClrUsed */ \
  751. 0 /* DWORD biClrImportant */ \
  752. } \
  753. }
  754. #endif