Audio plugin host https://kx.studio/carla
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.

4825 lines
179KB

  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the w64 mingw-runtime package.
  4. */
  5. #if !defined(_KS_)
  6. # warning ks.h must be included before ksmedia.h
  7. # include "ks.h"
  8. #endif
  9. #if __GNUC__ >= 3
  10. # pragma GCC system_header
  11. #endif
  12. #if !defined(_KSMEDIA_)
  13. # define _KSMEDIA_
  14. typedef struct
  15. {
  16. KSPROPERTY Property;
  17. KSMULTIPLE_ITEM MultipleItem;
  18. }KSMULTIPLE_DATA_PROP, * PKSMULTIPLE_DATA_PROP;
  19. # define STATIC_KSMEDIUMSETID_MidiBus \
  20. 0x05908040L, 0x3246, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  21. DEFINE_GUIDSTRUCT("05908040-3246-11D0-A5D6-28DB04C10000", KSMEDIUMSETID_MidiBus);
  22. # define KSMEDIUMSETID_MidiBus DEFINE_GUIDNAMED(KSMEDIUMSETID_MidiBus)
  23. # define STATIC_KSMEDIUMSETID_VPBus \
  24. 0xA18C15ECL, 0xCE43, 0x11D0, 0xAB, 0xE7, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  25. DEFINE_GUIDSTRUCT("A18C15EC-CE43-11D0-ABE7-00A0C9223196", KSMEDIUMSETID_VPBus);
  26. # define KSMEDIUMSETID_VPBus DEFINE_GUIDNAMED(KSMEDIUMSETID_VPBus)
  27. # define STATIC_KSINTERFACESETID_Media \
  28. 0x3A13EB40L, 0x30A7, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  29. DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000", KSINTERFACESETID_Media);
  30. # define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media)
  31. typedef enum
  32. {
  33. KSINTERFACE_MEDIA_MUSIC,
  34. KSINTERFACE_MEDIA_WAVE_BUFFERED,
  35. KSINTERFACE_MEDIA_WAVE_QUEUED
  36. }KSINTERFACE_MEDIA;
  37. # ifndef INIT_USBAUDIO_MID
  38. # define INIT_USBAUDIO_MID(guid, id) \
  39. { \
  40. (guid)->Data1 = 0x4e1cecd2 + (USHORT)(id); \
  41. (guid)->Data2 = 0x1679; \
  42. (guid)->Data3 = 0x463b; \
  43. (guid)->Data4[0] = 0xa7; \
  44. (guid)->Data4[1] = 0x2f; \
  45. (guid)->Data4[2] = 0xa5; \
  46. (guid)->Data4[3] = 0xbf; \
  47. (guid)->Data4[4] = 0x64; \
  48. (guid)->Data4[5] = 0xc8; \
  49. (guid)->Data4[6] = 0x6e; \
  50. (guid)->Data4[7] = 0xba; \
  51. }
  52. # define EXTRACT_USBAUDIO_MID(guid) \
  53. (USHORT)((guid)->Data1 - 0x4e1cecd2)
  54. # define DEFINE_USBAUDIO_MID_GUID(id) \
  55. 0x4e1cecd2 + (USHORT)(id), 0x1679, 0x463b, 0xa7, 0x2f, 0xa5, 0xbf, 0x64, 0xc8, 0x6e, 0xba
  56. # define IS_COMPATIBLE_USBAUDIO_MID(guid) \
  57. (((guid)->Data1 >= 0x4e1cecd2) && \
  58. ((guid)->Data1 < 0x4e1cecd2 + 0xffff) && \
  59. ((guid)->Data2 == 0x1679) && \
  60. ((guid)->Data3 == 0x463b) && \
  61. ((guid)->Data4[0] == 0xa7) && \
  62. ((guid)->Data4[1] == 0x2f) && \
  63. ((guid)->Data4[2] == 0xa5) && \
  64. ((guid)->Data4[3] == 0xbf) && \
  65. ((guid)->Data4[4] == 0x64) && \
  66. ((guid)->Data4[5] == 0xc8) && \
  67. ((guid)->Data4[6] == 0x6e) && \
  68. ((guid)->Data4[7] == 0xba))
  69. # endif /* INIT_USBAUDIO_MID */
  70. # ifndef INIT_USBAUDIO_PID
  71. # define INIT_USBAUDIO_PID(guid, id) \
  72. { \
  73. (guid)->Data1 = 0xabcc5a5e + (USHORT)(id); \
  74. (guid)->Data2 = 0xc263; \
  75. (guid)->Data3 = 0x463b; \
  76. (guid)->Data4[0] = 0xa7; \
  77. (guid)->Data4[1] = 0x2f; \
  78. (guid)->Data4[2] = 0xa5; \
  79. (guid)->Data4[3] = 0xbf; \
  80. (guid)->Data4[4] = 0x64; \
  81. (guid)->Data4[5] = 0xc8; \
  82. (guid)->Data4[6] = 0x6e; \
  83. (guid)->Data4[7] = 0xba; \
  84. }
  85. # define EXTRACT_USBAUDIO_PID(guid) \
  86. (USHORT)((guid)->Data1 - 0xabcc5a5e)
  87. # define DEFINE_USBAUDIO_PID_GUID(id) \
  88. 0xabcc5a5e + (USHORT)(id), 0xc263, 0x463b, 0xa7, 0x2f, 0xa5, 0xbf, 0x64, 0xc8, 0x6e, 0xba
  89. # define IS_COMPATIBLE_USBAUDIO_PID(guid) \
  90. (((guid)->Data1 >= 0xabcc5a5e) && \
  91. ((guid)->Data1 < 0xabcc5a5e + 0xffff) && \
  92. ((guid)->Data2 == 0xc263) && \
  93. ((guid)->Data3 == 0x463b) && \
  94. ((guid)->Data4[0] == 0xa7) && \
  95. ((guid)->Data4[1] == 0x2f) && \
  96. ((guid)->Data4[2] == 0xa5) && \
  97. ((guid)->Data4[3] == 0xbf) && \
  98. ((guid)->Data4[4] == 0x64) && \
  99. ((guid)->Data4[5] == 0xc8) && \
  100. ((guid)->Data4[6] == 0x6e) && \
  101. ((guid)->Data4[7] == 0xba))
  102. # endif /* INIT_USBAUDIO_PID */
  103. # ifndef INIT_USBAUDIO_PRODUCT_NAME
  104. # define INIT_USBAUDIO_PRODUCT_NAME(guid, vid, pid, strIndex) \
  105. { \
  106. (guid)->Data1 = 0XFC575048 + (USHORT)(vid); \
  107. (guid)->Data2 = 0x2E08 + (USHORT)(pid); \
  108. (guid)->Data3 = 0x463B + (USHORT)(strIndex); \
  109. (guid)->Data4[0] = 0xA7; \
  110. (guid)->Data4[1] = 0x2F; \
  111. (guid)->Data4[2] = 0xA5; \
  112. (guid)->Data4[3] = 0xBF; \
  113. (guid)->Data4[4] = 0x64; \
  114. (guid)->Data4[5] = 0xC8; \
  115. (guid)->Data4[6] = 0x6E; \
  116. (guid)->Data4[7] = 0xBA; \
  117. }
  118. # define DEFINE_USBAUDIO_PRODUCT_NAME(vid, pid, strIndex) \
  119. 0xFC575048 + (USHORT)(vid), 0x2E08 + (USHORT)(pid), 0x463B + (USHORT)(strIndex), 0xA7, 0x2F, 0xA5, 0xBF, 0x64, 0xC8, 0x6E, 0xBA
  120. # endif /* INIT_USBAUDIO_PRODUCT_NAME */
  121. # define STATIC_KSCOMPONENTID_USBAUDIO \
  122. 0x8F1275F0, 0x26E9, 0x4264, 0xBA, 0x4D, 0x39, 0xFF, 0xF0, 0x1D, 0x94, 0xAA
  123. DEFINE_GUIDSTRUCT("8F1275F0-26E9-4264-BA4D-39FFF01D94AA", KSCOMPONENTID_USBAUDIO);
  124. # define KSCOMPONENTID_USBAUDIO DEFINE_GUIDNAMED(KSCOMPONENTID_USBAUDIO)
  125. # define INIT_USB_TERMINAL(guid, id) \
  126. { \
  127. (guid)->Data1 = 0xDFF219E0 + (USHORT)(id); \
  128. (guid)->Data2 = 0xF70F; \
  129. (guid)->Data3 = 0x11D0; \
  130. (guid)->Data4[0] = 0xb9; \
  131. (guid)->Data4[1] = 0x17; \
  132. (guid)->Data4[2] = 0x00; \
  133. (guid)->Data4[3] = 0xa0; \
  134. (guid)->Data4[4] = 0xc9; \
  135. (guid)->Data4[5] = 0x22; \
  136. (guid)->Data4[6] = 0x31; \
  137. (guid)->Data4[7] = 0x96; \
  138. }
  139. # define EXTRACT_USB_TERMINAL(guid) \
  140. (USHORT)((guid)->Data1 - 0xDFF219E0)
  141. # define DEFINE_USB_TERMINAL_GUID(id) \
  142. 0xDFF219E0 + (USHORT)(id), 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  143. # define STATIC_KSNODETYPE_MICROPHONE \
  144. DEFINE_USB_TERMINAL_GUID(0x0201)
  145. DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE);
  146. # define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
  147. # define STATIC_KSNODETYPE_DESKTOP_MICROPHONE \
  148. DEFINE_USB_TERMINAL_GUID(0x0202)
  149. DEFINE_GUIDSTRUCT("DFF21BE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DESKTOP_MICROPHONE);
  150. # define KSNODETYPE_DESKTOP_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_MICROPHONE)
  151. # define STATIC_KSNODETYPE_PERSONAL_MICROPHONE \
  152. DEFINE_USB_TERMINAL_GUID(0x0203)
  153. DEFINE_GUIDSTRUCT("DFF21BE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_PERSONAL_MICROPHONE);
  154. # define KSNODETYPE_PERSONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_PERSONAL_MICROPHONE)
  155. # define STATIC_KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE \
  156. DEFINE_USB_TERMINAL_GUID(0x0204)
  157. DEFINE_GUIDSTRUCT("DFF21BE4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE);
  158. # define KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE)
  159. # define STATIC_KSNODETYPE_MICROPHONE_ARRAY \
  160. DEFINE_USB_TERMINAL_GUID(0x0205)
  161. DEFINE_GUIDSTRUCT("DFF21BE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MICROPHONE_ARRAY);
  162. # define KSNODETYPE_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE_ARRAY)
  163. # define STATIC_KSNODETYPE_PROCESSING_MICROPHONE_ARRAY \
  164. DEFINE_USB_TERMINAL_GUID(0x0206)
  165. DEFINE_GUIDSTRUCT("DFF21BE6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_PROCESSING_MICROPHONE_ARRAY);
  166. # define KSNODETYPE_PROCESSING_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY)
  167. # define STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR \
  168. 0x830a44f2, 0xa32d, 0x476b, 0xbe, 0x97, 0x42, 0x84, 0x56, 0x73, 0xb3, 0x5a
  169. DEFINE_GUIDSTRUCT("830a44f2-a32d-476b-be97-42845673b35a", KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR);
  170. # define KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR)
  171. # define STATIC_KSNODETYPE_SPEAKER \
  172. DEFINE_USB_TERMINAL_GUID(0x0301)
  173. DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPEAKER);
  174. # define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
  175. # define STATIC_KSNODETYPE_HEADPHONES \
  176. DEFINE_USB_TERMINAL_GUID(0x0302)
  177. DEFINE_GUIDSTRUCT("DFF21CE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_HEADPHONES);
  178. # define KSNODETYPE_HEADPHONES DEFINE_GUIDNAMED(KSNODETYPE_HEADPHONES)
  179. # define STATIC_KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO \
  180. DEFINE_USB_TERMINAL_GUID(0x0303)
  181. DEFINE_GUIDSTRUCT("DFF21CE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO);
  182. # define KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO)
  183. # define STATIC_KSNODETYPE_DESKTOP_SPEAKER \
  184. DEFINE_USB_TERMINAL_GUID(0x0304)
  185. DEFINE_GUIDSTRUCT("DFF21CE4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DESKTOP_SPEAKER);
  186. # define KSNODETYPE_DESKTOP_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_SPEAKER)
  187. # define STATIC_KSNODETYPE_ROOM_SPEAKER \
  188. DEFINE_USB_TERMINAL_GUID(0x0305)
  189. DEFINE_GUIDSTRUCT("DFF21CE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ROOM_SPEAKER);
  190. # define KSNODETYPE_ROOM_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_ROOM_SPEAKER)
  191. # define STATIC_KSNODETYPE_COMMUNICATION_SPEAKER \
  192. DEFINE_USB_TERMINAL_GUID(0x0306)
  193. DEFINE_GUIDSTRUCT("DFF21CE6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_COMMUNICATION_SPEAKER);
  194. # define KSNODETYPE_COMMUNICATION_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_COMMUNICATION_SPEAKER)
  195. # define STATIC_KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER \
  196. DEFINE_USB_TERMINAL_GUID(0x0307)
  197. DEFINE_GUIDSTRUCT("DFF21CE7-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER);
  198. # define KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER)
  199. # define STATIC_KSNODETYPE_HANDSET \
  200. DEFINE_USB_TERMINAL_GUID(0x0401)
  201. DEFINE_GUIDSTRUCT("DFF21DE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_HANDSET);
  202. # define KSNODETYPE_HANDSET DEFINE_GUIDNAMED(KSNODETYPE_HANDSET)
  203. # define STATIC_KSNODETYPE_HEADSET \
  204. DEFINE_USB_TERMINAL_GUID(0x0402)
  205. DEFINE_GUIDSTRUCT("DFF21DE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_HEADSET);
  206. # define KSNODETYPE_HEADSET DEFINE_GUIDNAMED(KSNODETYPE_HEADSET)
  207. # define STATIC_KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION \
  208. DEFINE_USB_TERMINAL_GUID(0x0403)
  209. DEFINE_GUIDSTRUCT("DFF21DE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION);
  210. # define KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION DEFINE_GUIDNAMED(KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION)
  211. # define STATIC_KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE \
  212. DEFINE_USB_TERMINAL_GUID(0x0404)
  213. DEFINE_GUIDSTRUCT("DFF21DE4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE);
  214. # define KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE)
  215. # define STATIC_KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE \
  216. DEFINE_USB_TERMINAL_GUID(0x0405)
  217. DEFINE_GUIDSTRUCT("DFF21DE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE);
  218. # define KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE)
  219. # define STATIC_KSNODETYPE_PHONE_LINE \
  220. DEFINE_USB_TERMINAL_GUID(0x0501)
  221. DEFINE_GUIDSTRUCT("DFF21EE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_PHONE_LINE);
  222. # define KSNODETYPE_PHONE_LINE DEFINE_GUIDNAMED(KSNODETYPE_PHONE_LINE)
  223. # define STATIC_KSNODETYPE_TELEPHONE \
  224. DEFINE_USB_TERMINAL_GUID(0x0502)
  225. DEFINE_GUIDSTRUCT("DFF21EE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_TELEPHONE);
  226. # define KSNODETYPE_TELEPHONE DEFINE_GUIDNAMED(KSNODETYPE_TELEPHONE)
  227. # define STATIC_KSNODETYPE_DOWN_LINE_PHONE \
  228. DEFINE_USB_TERMINAL_GUID(0x0503)
  229. DEFINE_GUIDSTRUCT("DFF21EE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DOWN_LINE_PHONE);
  230. # define KSNODETYPE_DOWN_LINE_PHONE DEFINE_GUIDNAMED(KSNODETYPE_DOWN_LINE_PHONE)
  231. # define STATIC_KSNODETYPE_ANALOG_CONNECTOR \
  232. DEFINE_USB_TERMINAL_GUID(0x601)
  233. DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ANALOG_CONNECTOR);
  234. # define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
  235. # define STATIC_KSNODETYPE_DIGITAL_AUDIO_INTERFACE \
  236. DEFINE_USB_TERMINAL_GUID(0x0602)
  237. DEFINE_GUIDSTRUCT("DFF21FE2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DIGITAL_AUDIO_INTERFACE);
  238. # define KSNODETYPE_DIGITAL_AUDIO_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_DIGITAL_AUDIO_INTERFACE)
  239. # define STATIC_KSNODETYPE_LINE_CONNECTOR \
  240. DEFINE_USB_TERMINAL_GUID(0x0603)
  241. DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LINE_CONNECTOR);
  242. # define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
  243. # define STATIC_KSNODETYPE_LEGACY_AUDIO_CONNECTOR \
  244. DEFINE_USB_TERMINAL_GUID(0x0604)
  245. DEFINE_GUIDSTRUCT("DFF21FE4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LEGACY_AUDIO_CONNECTOR);
  246. # define KSNODETYPE_LEGACY_AUDIO_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LEGACY_AUDIO_CONNECTOR)
  247. # define STATIC_KSNODETYPE_SPDIF_INTERFACE \
  248. DEFINE_USB_TERMINAL_GUID(0x0605)
  249. DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SPDIF_INTERFACE);
  250. # define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
  251. # define STATIC_KSNODETYPE_1394_DA_STREAM \
  252. DEFINE_USB_TERMINAL_GUID(0x0606)
  253. DEFINE_GUIDSTRUCT("DFF21FE6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_1394_DA_STREAM);
  254. # define KSNODETYPE_1394_DA_STREAM DEFINE_GUIDNAMED(KSNODETYPE_1394_DA_STREAM)
  255. # define STATIC_KSNODETYPE_1394_DV_STREAM_SOUNDTRACK \
  256. DEFINE_USB_TERMINAL_GUID(0x0607)
  257. DEFINE_GUIDSTRUCT("DFF21FE7-F70F-11D0-B917-00A0C9223196", KSNODETYPE_1394_DV_STREAM_SOUNDTRACK);
  258. # define KSNODETYPE_1394_DV_STREAM_SOUNDTRACK DEFINE_GUIDNAMED(KSNODETYPE_1394_DV_STREAM_SOUNDTRACK)
  259. # define STATIC_KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE \
  260. DEFINE_USB_TERMINAL_GUID(0x0701)
  261. DEFINE_GUIDSTRUCT("DFF220E1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE);
  262. # define KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE DEFINE_GUIDNAMED(KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE)
  263. # define STATIC_KSNODETYPE_EQUALIZATION_NOISE \
  264. DEFINE_USB_TERMINAL_GUID(0x0702)
  265. DEFINE_GUIDSTRUCT("DFF220E2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_EQUALIZATION_NOISE);
  266. # define KSNODETYPE_EQUALIZATION_NOISE DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZATION_NOISE)
  267. # define STATIC_KSNODETYPE_CD_PLAYER \
  268. DEFINE_USB_TERMINAL_GUID(0x0703)
  269. DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_CD_PLAYER);
  270. # define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
  271. # define STATIC_KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE \
  272. DEFINE_USB_TERMINAL_GUID(0x0704)
  273. DEFINE_GUIDSTRUCT("DFF220E4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE);
  274. # define KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE DEFINE_GUIDNAMED(KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE)
  275. # define STATIC_KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE \
  276. DEFINE_USB_TERMINAL_GUID(0x0705)
  277. DEFINE_GUIDSTRUCT("DFF220E5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE);
  278. # define KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE DEFINE_GUIDNAMED(KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE)
  279. # define STATIC_KSNODETYPE_MINIDISK \
  280. DEFINE_USB_TERMINAL_GUID(0x0706)
  281. DEFINE_GUIDSTRUCT("DFF220E6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MINIDISK);
  282. # define KSNODETYPE_MINIDISK DEFINE_GUIDNAMED(KSNODETYPE_MINIDISK)
  283. # define STATIC_KSNODETYPE_ANALOG_TAPE \
  284. DEFINE_USB_TERMINAL_GUID(0x0707)
  285. DEFINE_GUIDSTRUCT("DFF220E7-F70F-11D0-B917-00A0C9223196", KSNODETYPE_ANALOG_TAPE);
  286. # define KSNODETYPE_ANALOG_TAPE DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_TAPE)
  287. # define STATIC_KSNODETYPE_PHONOGRAPH \
  288. DEFINE_USB_TERMINAL_GUID(0x0708)
  289. DEFINE_GUIDSTRUCT("DFF220E8-F70F-11D0-B917-00A0C9223196", KSNODETYPE_PHONOGRAPH);
  290. # define KSNODETYPE_PHONOGRAPH DEFINE_GUIDNAMED(KSNODETYPE_PHONOGRAPH)
  291. # define STATIC_KSNODETYPE_VCR_AUDIO \
  292. DEFINE_USB_TERMINAL_GUID(0x0708)
  293. DEFINE_GUIDSTRUCT("DFF220E9-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VCR_AUDIO);
  294. # define KSNODETYPE_VCR_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VCR_AUDIO)
  295. # define STATIC_KSNODETYPE_VIDEO_DISC_AUDIO \
  296. DEFINE_USB_TERMINAL_GUID(0x070A)
  297. DEFINE_GUIDSTRUCT("DFF220EA-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_DISC_AUDIO);
  298. # define KSNODETYPE_VIDEO_DISC_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_DISC_AUDIO)
  299. # define STATIC_KSNODETYPE_DVD_AUDIO \
  300. DEFINE_USB_TERMINAL_GUID(0x070B)
  301. DEFINE_GUIDSTRUCT("DFF220EB-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DVD_AUDIO);
  302. # define KSNODETYPE_DVD_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DVD_AUDIO)
  303. # define STATIC_KSNODETYPE_TV_TUNER_AUDIO \
  304. DEFINE_USB_TERMINAL_GUID(0x070C)
  305. DEFINE_GUIDSTRUCT("DFF220EC-F70F-11D0-B917-00A0C9223196", KSNODETYPE_TV_TUNER_AUDIO);
  306. # define KSNODETYPE_TV_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_TV_TUNER_AUDIO)
  307. # define STATIC_KSNODETYPE_SATELLITE_RECEIVER_AUDIO \
  308. DEFINE_USB_TERMINAL_GUID(0x070D)
  309. DEFINE_GUIDSTRUCT("DFF220ED-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SATELLITE_RECEIVER_AUDIO);
  310. # define KSNODETYPE_SATELLITE_RECEIVER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_SATELLITE_RECEIVER_AUDIO)
  311. # define STATIC_KSNODETYPE_CABLE_TUNER_AUDIO \
  312. DEFINE_USB_TERMINAL_GUID(0x070E)
  313. DEFINE_GUIDSTRUCT("DFF220EE-F70F-11D0-B917-00A0C9223196", KSNODETYPE_CABLE_TUNER_AUDIO);
  314. # define KSNODETYPE_CABLE_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_CABLE_TUNER_AUDIO)
  315. # define STATIC_KSNODETYPE_DSS_AUDIO \
  316. DEFINE_USB_TERMINAL_GUID(0x070F)
  317. DEFINE_GUIDSTRUCT("DFF220EF-F70F-11D0-B917-00A0C9223196", KSNODETYPE_DSS_AUDIO);
  318. # define KSNODETYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DSS_AUDIO)
  319. # define STATIC_KSNODETYPE_RADIO_RECEIVER \
  320. DEFINE_USB_TERMINAL_GUID(0x0710)
  321. DEFINE_GUIDSTRUCT("DFF220F0-F70F-11D0-B917-00A0C9223196", KSNODETYPE_RADIO_RECEIVER);
  322. # define KSNODETYPE_RADIO_RECEIVER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_RECEIVER)
  323. # define STATIC_KSNODETYPE_RADIO_TRANSMITTER \
  324. DEFINE_USB_TERMINAL_GUID(0x0711)
  325. DEFINE_GUIDSTRUCT("DFF220F1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_RADIO_TRANSMITTER);
  326. # define KSNODETYPE_RADIO_TRANSMITTER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_TRANSMITTER)
  327. # define STATIC_KSNODETYPE_MULTITRACK_RECORDER \
  328. DEFINE_USB_TERMINAL_GUID(0x0712)
  329. DEFINE_GUIDSTRUCT("DFF220F2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_MULTITRACK_RECORDER);
  330. # define KSNODETYPE_MULTITRACK_RECORDER DEFINE_GUIDNAMED(KSNODETYPE_MULTITRACK_RECORDER)
  331. # define STATIC_KSNODETYPE_SYNTHESIZER \
  332. DEFINE_USB_TERMINAL_GUID(0x0713)
  333. DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_SYNTHESIZER);
  334. # define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER)
  335. # define STATIC_KSNODETYPE_SWSYNTH \
  336. 0x423274A0L, 0x8B81, 0x11D1, 0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  337. DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788", KSNODETYPE_SWSYNTH);
  338. # define KSNODETYPE_SWSYNTH DEFINE_GUIDNAMED(KSNODETYPE_SWSYNTH)
  339. # define STATIC_KSNODETYPE_SWMIDI \
  340. 0xCB9BEFA0L, 0xA251, 0x11D1, 0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  341. DEFINE_GUIDSTRUCT("CB9BEFA0-A251-11D1-A050-0000F8004788", KSNODETYPE_SWMIDI);
  342. # define KSNODETYPE_SWMIDI DEFINE_GUIDNAMED(KSNODETYPE_SWMIDI)
  343. # define STATIC_KSNODETYPE_DRM_DESCRAMBLE \
  344. 0xFFBB6E3FL, 0xCCFE, 0x4D84, 0x90, 0xD9, 0x42, 0x14, 0x18, 0xB0, 0x3A, 0x8E
  345. DEFINE_GUIDSTRUCT("FFBB6E3F-CCFE-4D84-90D9-421418B03A8E", KSNODETYPE_DRM_DESCRAMBLE);
  346. # define KSNODETYPE_DRM_DESCRAMBLE DEFINE_GUIDNAMED(KSNODETYPE_DRM_DESCRAMBLE)
  347. # define STATIC_KSCATEGORY_AUDIO \
  348. 0x6994AD04L, 0x93EF, 0x11D0, { 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 }
  349. DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_AUDIO);
  350. # define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO)
  351. # define STATIC_KSCATEGORY_VIDEO \
  352. 0x6994AD05L, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  353. DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_VIDEO);
  354. # define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO)
  355. # define STATIC_KSCATEGORY_TEXT \
  356. 0x6994AD06L, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  357. DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196", KSCATEGORY_TEXT);
  358. # define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT)
  359. # define STATIC_KSCATEGORY_NETWORK \
  360. 0x67C9CC3CL, 0x69C4, 0x11D2, 0x87, 0x59, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  361. DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196", KSCATEGORY_NETWORK);
  362. # define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK)
  363. # define STATIC_KSCATEGORY_TOPOLOGY \
  364. 0xDDA54A40L, 0x1E4C, 0x11D1, 0xA0, 0x50, 0x40, 0x57, 0x05, 0xC1, 0x00, 0x00
  365. DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000", KSCATEGORY_TOPOLOGY);
  366. # define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY)
  367. # define STATIC_KSCATEGORY_VIRTUAL \
  368. 0x3503EAC4L, 0x1F26, 0x11D1, 0x8A, 0xB0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  369. DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196", KSCATEGORY_VIRTUAL);
  370. # define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL)
  371. # define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL \
  372. 0xBF963D80L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  373. DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1", KSCATEGORY_ACOUSTIC_ECHO_CANCEL);
  374. # define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL)
  375. # define STATIC_KSCATEGORY_SYSAUDIO \
  376. 0xA7C7A5B1L, 0x5AF3, 0x11D1, 0x9C, 0xED, 0x00, 0xA0, 0x24, 0xBF, 0x04, 0x07
  377. DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407", KSCATEGORY_SYSAUDIO);
  378. # define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO)
  379. # define STATIC_KSCATEGORY_WDMAUD \
  380. 0x3E227E76L, 0x690D, 0x11D2, 0x81, 0x61, 0x00, 0x00, 0xF8, 0x77, 0x5B, 0xF1
  381. DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1", KSCATEGORY_WDMAUD);
  382. # define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD)
  383. # define STATIC_KSCATEGORY_AUDIO_GFX \
  384. 0x9BAF9572L, 0x340C, 0x11D3, 0xAB, 0xDC, 0x00, 0xA0, 0xC9, 0x0A, 0xB1, 0x6F
  385. DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F", KSCATEGORY_AUDIO_GFX);
  386. # define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX)
  387. # define STATIC_KSCATEGORY_AUDIO_SPLITTER \
  388. 0x9EA331FAL, 0xB91B, 0x45F8, 0x92, 0x85, 0xBD, 0x2B, 0xC7, 0x7A, 0xFC, 0xDE
  389. DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE", KSCATEGORY_AUDIO_SPLITTER);
  390. # define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER)
  391. # define STATIC_KSCATEGORY_SYNTHESIZER STATIC_KSNODETYPE_SYNTHESIZER
  392. # define KSCATEGORY_SYNTHESIZER KSNODETYPE_SYNTHESIZER
  393. # define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE
  394. # define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE
  395. # define STATIC_KSCATEGORY_AUDIO_DEVICE \
  396. 0xFBF6F530L, 0x07B9, 0x11D2, 0xA7, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  397. DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788", KSCATEGORY_AUDIO_DEVICE);
  398. # define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
  399. # define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \
  400. 0xD6C5066EL, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  401. DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_WAVEOUT_DEVICE);
  402. # define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE)
  403. # define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE \
  404. 0xD6C50671L, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  405. DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_WAVEIN_DEVICE);
  406. # define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE)
  407. # define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE \
  408. 0xD6C50674L, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  409. DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788", KSCATEGORY_PREFERRED_MIDIOUT_DEVICE);
  410. # define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE)
  411. # define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME \
  412. 0x47A4FA20L, 0xA251, 0x11D1, 0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88
  413. DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788", KSCATEGORY_WDMAUD_USE_PIN_NAME);
  414. # define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME)
  415. # define STATIC_KSCATEGORY_ESCALANTE_PLATFORM_DRIVER \
  416. 0x74f3aea8L, 0x9768, 0x11d1, 0x8e, 0x07, 0x00, 0xa0, 0xc9, 0x5e, 0xc2, 0x2e
  417. DEFINE_GUIDSTRUCT("74f3aea8-9768-11d1-8e07-00a0c95ec22e", KSCATEGORY_ESCALANTE_PLATFORM_DRIVER);
  418. # define KSCATEGORY_ESCALANTE_PLATFORM_DRIVER DEFINE_GUIDNAMED(KSCATEGORY_ESCALANTE_PLATFORM_DRIVER)
  419. # define STATIC_KSDATAFORMAT_TYPE_VIDEO \
  420. 0x73646976L, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
  421. DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_VIDEO);
  422. # define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO)
  423. # define STATIC_KSDATAFORMAT_TYPE_AUDIO \
  424. 0x73647561L, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
  425. DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_AUDIO);
  426. # define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
  427. # define STATIC_KSDATAFORMAT_TYPE_TEXT \
  428. 0x73747874L, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
  429. DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_TEXT);
  430. # define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT)
  431. # if !defined(DEFINE_WAVEFORMATEX_GUID)
  432. # define DEFINE_WAVEFORMATEX_GUID(x) \
  433. (USHORT)(x), 0x0000, 0x0010, { 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
  434. # endif
  435. # define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX \
  436. 0x00000000L, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
  437. DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_WAVEFORMATEX);
  438. # define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
  439. # define INIT_WAVEFORMATEX_GUID(Guid, x) \
  440. { \
  441. *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX; \
  442. (Guid)->Data1 = (USHORT)(x); \
  443. }
  444. # define EXTRACT_WAVEFORMATEX_ID(Guid) \
  445. (USHORT)((Guid)->Data1)
  446. # define IS_VALID_WAVEFORMATEX_GUID(Guid) \
  447. (!memcmp(((PUSHORT)&KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, ((PUSHORT)(Guid)) + 1, sizeof(GUID) - sizeof(USHORT)))
  448. # ifndef INIT_MMREG_MID
  449. # define INIT_MMREG_MID(guid, id) \
  450. { \
  451. (guid)->Data1 = 0xd5a47fa7 + (USHORT)(id); \
  452. (guid)->Data2 = 0x6d98; \
  453. (guid)->Data3 = 0x11d1; \
  454. (guid)->Data4[0] = 0xa2; \
  455. (guid)->Data4[1] = 0x1a; \
  456. (guid)->Data4[2] = 0x00; \
  457. (guid)->Data4[3] = 0xa0; \
  458. (guid)->Data4[4] = 0xc9; \
  459. (guid)->Data4[5] = 0x22; \
  460. (guid)->Data4[6] = 0x31; \
  461. (guid)->Data4[7] = 0x96; \
  462. }
  463. # define EXTRACT_MMREG_MID(guid) \
  464. (USHORT)((guid)->Data1 - 0xd5a47fa7)
  465. # define DEFINE_MMREG_MID_GUID(id) \
  466. 0xd5a47fa7 + (USHORT)(id), 0x6d98, 0x11d1, 0xa2, 0x1a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
  467. # define IS_COMPATIBLE_MMREG_MID(guid) \
  468. (((guid)->Data1 >= 0xd5a47fa7) && \
  469. ((guid)->Data1 < 0xd5a47fa7 + 0xffff) && \
  470. ((guid)->Data2 == 0x6d98) && \
  471. ((guid)->Data3 == 0x11d1) && \
  472. ((guid)->Data4[0] == 0xa2) && \
  473. ((guid)->Data4[1] == 0x1a) && \
  474. ((guid)->Data4[2] == 0x00) && \
  475. ((guid)->Data4[3] == 0xa0) && \
  476. ((guid)->Data4[4] == 0xc9) && \
  477. ((guid)->Data4[5] == 0x22) && \
  478. ((guid)->Data4[6] == 0x31) && \
  479. ((guid)->Data4[7] == 0x96))
  480. # endif /* INIT_MMREG_MID */
  481. # ifndef INIT_MMREG_PID
  482. # define INIT_MMREG_PID(guid, id) \
  483. { \
  484. (guid)->Data1 = 0xe36dc2ac + (USHORT)(id); \
  485. (guid)->Data2 = 0x6d9a; \
  486. (guid)->Data3 = 0x11d1; \
  487. (guid)->Data4[0] = 0xa2; \
  488. (guid)->Data4[1] = 0x1a; \
  489. (guid)->Data4[2] = 0x00; \
  490. (guid)->Data4[3] = 0xa0; \
  491. (guid)->Data4[4] = 0xc9; \
  492. (guid)->Data4[5] = 0x22; \
  493. (guid)->Data4[6] = 0x31; \
  494. (guid)->Data4[7] = 0x96; \
  495. }
  496. # define EXTRACT_MMREG_PID(guid) \
  497. (USHORT)((guid)->Data1 - 0xe36dc2ac)
  498. # define DEFINE_MMREG_PID_GUID(id) \
  499. 0xe36dc2ac + (USHORT)(id), 0x6d9a, 0x11d1, 0xa2, 0x1a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
  500. # define IS_COMPATIBLE_MMREG_PID(guid) \
  501. (((guid)->Data1 >= 0xe36dc2ac) && \
  502. ((guid)->Data1 < 0xe36dc2ac + 0xffff) && \
  503. ((guid)->Data2 == 0x6d9a) && \
  504. ((guid)->Data3 == 0x11d1) && \
  505. ((guid)->Data4[0] == 0xa2) && \
  506. ((guid)->Data4[1] == 0x1a) && \
  507. ((guid)->Data4[2] == 0x00) && \
  508. ((guid)->Data4[3] == 0xa0) && \
  509. ((guid)->Data4[4] == 0xc9) && \
  510. ((guid)->Data4[5] == 0x22) && \
  511. ((guid)->Data4[6] == 0x31) && \
  512. ((guid)->Data4[7] == 0x96))
  513. # endif /* INIT_MMREG_PID */
  514. # define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG \
  515. 0x6dba3190L, 0x67bd, 0x11cf, 0xa0, 0xf7, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4
  516. DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4", KSDATAFORMAT_SUBTYPE_ANALOG);
  517. # define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
  518. # define STATIC_KSDATAFORMAT_SUBTYPE_PCM \
  519. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM)
  520. DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_PCM);
  521. # define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
  522. # ifdef _INC_MMREG
  523. # define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT \
  524. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_IEEE_FLOAT)
  525. DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_IEEE_FLOAT);
  526. # define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)
  527. # define STATIC_KSDATAFORMAT_SUBTYPE_DRM \
  528. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DRM)
  529. DEFINE_GUIDSTRUCT("00000009-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_DRM);
  530. # define KSDATAFORMAT_SUBTYPE_DRM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DRM)
  531. # define STATIC_KSDATAFORMAT_SUBTYPE_ALAW \
  532. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ALAW)
  533. DEFINE_GUIDSTRUCT("00000006-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_ALAW);
  534. # define KSDATAFORMAT_SUBTYPE_ALAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ALAW)
  535. # define STATIC_KSDATAFORMAT_SUBTYPE_MULAW \
  536. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MULAW)
  537. DEFINE_GUIDSTRUCT("00000007-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_MULAW);
  538. # define KSDATAFORMAT_SUBTYPE_MULAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MULAW)
  539. # define STATIC_KSDATAFORMAT_SUBTYPE_ADPCM \
  540. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ADPCM)
  541. DEFINE_GUIDSTRUCT("00000002-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_ADPCM);
  542. # define KSDATAFORMAT_SUBTYPE_ADPCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ADPCM)
  543. # define STATIC_KSDATAFORMAT_SUBTYPE_MPEG \
  544. DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MPEG)
  545. DEFINE_GUIDSTRUCT("00000050-0000-0010-8000-00aa00389b71", KSDATAFORMAT_SUBTYPE_MPEG);
  546. # define KSDATAFORMAT_SUBTYPE_MPEG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG)
  547. # endif /* _INC_MMREG */
  548. # define STATIC_KSDATAFORMAT_SPECIFIER_VC_ID \
  549. 0xAD98D184L, 0xAAC3, 0x11D0, 0xA4, 0x1C, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  550. DEFINE_GUIDSTRUCT("AD98D184-AAC3-11D0-A41C-00A0C9223196", KSDATAFORMAT_SPECIFIER_VC_ID);
  551. # define KSDATAFORMAT_SPECIFIER_VC_ID DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VC_ID)
  552. # define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX \
  553. 0x05589f81L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a
  554. DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_WAVEFORMATEX);
  555. # define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
  556. # define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND \
  557. 0x518590a2L, 0xa184, 0x11d0, 0x85, 0x22, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
  558. DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3", KSDATAFORMAT_SPECIFIER_DSOUND);
  559. # define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
  560. # if defined(_INC_MMSYSTEM) || defined(_INC_MMREG) || 1
  561. # if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
  562. # include <pshpack1.h>
  563. # endif
  564. typedef struct
  565. {
  566. KSDATAFORMAT DataFormat;
  567. WAVEFORMATEX WaveFormatEx;
  568. }KSDATAFORMAT_WAVEFORMATEX, * PKSDATAFORMAT_WAVEFORMATEX;
  569. # ifndef _WAVEFORMATEXTENSIBLE_
  570. # define _WAVEFORMATEXTENSIBLE_
  571. typedef struct
  572. {
  573. WAVEFORMATEX Format;
  574. union
  575. {
  576. WORD wValidBitsPerSample;
  577. WORD wSamplesPerBlock;
  578. WORD wReserved;
  579. }Samples;
  580. DWORD dwChannelMask;
  581. GUID SubFormat;
  582. }WAVEFORMATEXTENSIBLE, * PWAVEFORMATEXTENSIBLE;
  583. # endif /* _WAVEFORMATEXTENSIBLE_ */
  584. # if !defined(WAVE_FORMAT_EXTENSIBLE)
  585. # define WAVE_FORMAT_EXTENSIBLE 0xFFFE
  586. # endif
  587. typedef struct
  588. {
  589. ULONG Flags;
  590. ULONG Control;
  591. WAVEFORMATEX WaveFormatEx;
  592. }KSDSOUND_BUFFERDESC, * PKSDSOUND_BUFFERDESC;
  593. typedef struct
  594. {
  595. KSDATAFORMAT DataFormat;
  596. KSDSOUND_BUFFERDESC BufferDesc;
  597. }KSDATAFORMAT_DSOUND, * PKSDATAFORMAT_DSOUND;
  598. # if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
  599. # include <poppack.h>
  600. # endif
  601. # endif /* defined(_INC_MMSYSTEM) || defined(_INC_MMREG) */
  602. # define KSDSOUND_BUFFER_PRIMARY 0x00000001
  603. # define KSDSOUND_BUFFER_STATIC 0x00000002
  604. # define KSDSOUND_BUFFER_LOCHARDWARE 0x00000004
  605. # define KSDSOUND_BUFFER_LOCSOFTWARE 0x00000008
  606. # define KSDSOUND_BUFFER_CTRL_3D 0x00000001
  607. # define KSDSOUND_BUFFER_CTRL_FREQUENCY 0x00000002
  608. # define KSDSOUND_BUFFER_CTRL_PAN 0x00000004
  609. # define KSDSOUND_BUFFER_CTRL_VOLUME 0x00000008
  610. # define KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY 0x00000010
  611. typedef struct
  612. {
  613. DWORDLONG PlayOffset;
  614. DWORDLONG WriteOffset;
  615. }KSAUDIO_POSITION, * PKSAUDIO_POSITION;
  616. typedef struct _DS3DVECTOR
  617. {
  618. __MINGW_EXTENSION union
  619. {
  620. FLOAT x;
  621. FLOAT dvX;
  622. };
  623. __MINGW_EXTENSION union
  624. {
  625. FLOAT y;
  626. FLOAT dvY;
  627. };
  628. __MINGW_EXTENSION union
  629. {
  630. FLOAT z;
  631. FLOAT dvZ;
  632. };
  633. }DS3DVECTOR, * PDS3DVECTOR;
  634. # define STATIC_KSPROPSETID_DirectSound3DListener \
  635. 0x437b3414L, 0xd060, 0x11d0, 0x85, 0x83, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
  636. DEFINE_GUIDSTRUCT("437b3414-d060-11d0-8583-00c04fd9baf3", KSPROPSETID_DirectSound3DListener);
  637. # define KSPROPSETID_DirectSound3DListener DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DListener)
  638. typedef enum
  639. {
  640. KSPROPERTY_DIRECTSOUND3DLISTENER_ALL,
  641. KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION,
  642. KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY,
  643. KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION,
  644. KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR,
  645. KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR,
  646. KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR,
  647. KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH,
  648. KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
  649. }KSPROPERTY_DIRECTSOUND3DLISTENER;
  650. typedef struct
  651. {
  652. DS3DVECTOR Position;
  653. DS3DVECTOR Velocity;
  654. DS3DVECTOR OrientFront;
  655. DS3DVECTOR OrientTop;
  656. FLOAT DistanceFactor;
  657. FLOAT RolloffFactor;
  658. FLOAT DopplerFactor;
  659. }KSDS3D_LISTENER_ALL, * PKSDS3D_LISTENER_ALL;
  660. typedef struct
  661. {
  662. DS3DVECTOR Front;
  663. DS3DVECTOR Top;
  664. }KSDS3D_LISTENER_ORIENTATION, * PKSDS3D_LISTENER_ORIENTATION;
  665. # define STATIC_KSPROPSETID_DirectSound3DBuffer \
  666. 0x437b3411L, 0xd060, 0x11d0, 0x85, 0x83, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
  667. DEFINE_GUIDSTRUCT("437b3411-d060-11d0-8583-00c04fd9baf3", KSPROPSETID_DirectSound3DBuffer);
  668. # define KSPROPSETID_DirectSound3DBuffer DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DBuffer)
  669. typedef enum
  670. {
  671. KSPROPERTY_DIRECTSOUND3DBUFFER_ALL,
  672. KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION,
  673. KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY,
  674. KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES,
  675. KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION,
  676. KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME,
  677. KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE,
  678. KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE,
  679. KSPROPERTY_DIRECTSOUND3DBUFFER_MODE
  680. }KSPROPERTY_DIRECTSOUND3DBUFFER;
  681. typedef struct
  682. {
  683. DS3DVECTOR Position;
  684. DS3DVECTOR Velocity;
  685. ULONG InsideConeAngle;
  686. ULONG OutsideConeAngle;
  687. DS3DVECTOR ConeOrientation;
  688. LONG ConeOutsideVolume;
  689. FLOAT MinDistance;
  690. FLOAT MaxDistance;
  691. ULONG Mode;
  692. }KSDS3D_BUFFER_ALL, * PKSDS3D_BUFFER_ALL;
  693. typedef struct
  694. {
  695. ULONG InsideConeAngle;
  696. ULONG OutsideConeAngle;
  697. }KSDS3D_BUFFER_CONE_ANGLES, * PKSDS3D_BUFFER_CONE_ANGLES;
  698. # define KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE (-1)
  699. # define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN 5
  700. # define KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW 10
  701. # define KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE 20
  702. # define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX 180
  703. # define KSDSOUND_3D_MODE_NORMAL 0x00000000
  704. # define KSDSOUND_3D_MODE_HEADRELATIVE 0x00000001
  705. # define KSDSOUND_3D_MODE_DISABLE 0x00000002
  706. # define KSDSOUND_BUFFER_CTRL_HRTF_3D 0x40000000
  707. typedef struct
  708. {
  709. ULONG Size;
  710. ULONG Enabled;
  711. WINBOOL SwapChannels;
  712. WINBOOL ZeroAzimuth;
  713. WINBOOL CrossFadeOutput;
  714. ULONG FilterSize;
  715. }KSDS3D_HRTF_PARAMS_MSG, * PKSDS3D_HRTF_PARAMS_MSG;
  716. typedef enum
  717. {
  718. FULL_FILTER,
  719. LIGHT_FILTER,
  720. KSDS3D_FILTER_QUALITY_COUNT
  721. }KSDS3D_HRTF_FILTER_QUALITY;
  722. typedef struct
  723. {
  724. ULONG Size;
  725. KSDS3D_HRTF_FILTER_QUALITY Quality;
  726. FLOAT SampleRate;
  727. ULONG MaxFilterSize;
  728. ULONG FilterTransientMuteLength;
  729. ULONG FilterOverlapBufferLength;
  730. ULONG OutputOverlapBufferLength;
  731. ULONG Reserved;
  732. }KSDS3D_HRTF_INIT_MSG, * PKSDS3D_HRTF_INIT_MSG;
  733. typedef enum
  734. {
  735. FLOAT_COEFF,
  736. SHORT_COEFF,
  737. KSDS3D_COEFF_COUNT
  738. }KSDS3D_HRTF_COEFF_FORMAT;
  739. typedef enum
  740. {
  741. DIRECT_FORM,
  742. CASCADE_FORM,
  743. KSDS3D_FILTER_METHOD_COUNT
  744. }KSDS3D_HRTF_FILTER_METHOD;
  745. typedef enum
  746. {
  747. DS3D_HRTF_VERSION_1
  748. }KSDS3D_HRTF_FILTER_VERSION;
  749. typedef struct
  750. {
  751. KSDS3D_HRTF_FILTER_METHOD FilterMethod;
  752. KSDS3D_HRTF_COEFF_FORMAT CoeffFormat;
  753. KSDS3D_HRTF_FILTER_VERSION Version;
  754. ULONG Reserved;
  755. }KSDS3D_HRTF_FILTER_FORMAT_MSG, * PKSDS3D_HRTF_FILTER_FORMAT_MSG;
  756. # define STATIC_KSPROPSETID_Hrtf3d \
  757. 0xb66decb0L, 0xa083, 0x11d0, 0x85, 0x1e, 0x00, 0xc0, 0x4f, 0xd9, 0xba, 0xf3
  758. DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3", KSPROPSETID_Hrtf3d);
  759. # define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d)
  760. typedef enum
  761. {
  762. KSPROPERTY_HRTF3D_PARAMS = 0,
  763. KSPROPERTY_HRTF3D_INITIALIZE,
  764. KSPROPERTY_HRTF3D_FILTER_FORMAT
  765. }KSPROPERTY_HRTF3D;
  766. typedef struct
  767. {
  768. LONG Channel;
  769. FLOAT VolSmoothScale;
  770. FLOAT TotalDryAttenuation;
  771. FLOAT TotalWetAttenuation;
  772. LONG SmoothFrequency;
  773. LONG Delay;
  774. }KSDS3D_ITD_PARAMS, * PKSDS3D_ITD_PARAMS;
  775. typedef struct
  776. {
  777. ULONG Enabled;
  778. KSDS3D_ITD_PARAMS LeftParams;
  779. KSDS3D_ITD_PARAMS RightParams;
  780. ULONG Reserved;
  781. }KSDS3D_ITD_PARAMS_MSG, * PKSDS3D_ITD_PARAMS_MSG;
  782. # define STATIC_KSPROPSETID_Itd3d \
  783. 0x6429f090L, 0x9fd9, 0x11d0, 0xa7, 0x5b, 0x00, 0xa0, 0xc9, 0x03, 0x65, 0xe3
  784. DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3", KSPROPSETID_Itd3d);
  785. # define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d)
  786. typedef enum
  787. {
  788. KSPROPERTY_ITD3D_PARAMS = 0
  789. }KSPROPERTY_ITD3D;
  790. typedef struct
  791. {
  792. KSDATARANGE DataRange;
  793. ULONG MaximumChannels;
  794. ULONG MinimumBitsPerSample;
  795. ULONG MaximumBitsPerSample;
  796. ULONG MinimumSampleFrequency;
  797. ULONG MaximumSampleFrequency;
  798. }KSDATARANGE_AUDIO, * PKSDATARANGE_AUDIO;
  799. # define STATIC_KSDATAFORMAT_SUBTYPE_RIFF \
  800. 0x4995DAEEL, 0x9EE6, 0x11D0, 0xA4, 0x0E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  801. DEFINE_GUIDSTRUCT("4995DAEE-9EE6-11D0-A40E-00A0C9223196", KSDATAFORMAT_SUBTYPE_RIFF);
  802. # define KSDATAFORMAT_SUBTYPE_RIFF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFF)
  803. # define STATIC_KSDATAFORMAT_SUBTYPE_RIFFWAVE \
  804. 0xe436eb8bL, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70
  805. DEFINE_GUIDSTRUCT("e436eb8b-524f-11ce-9f53-0020af0ba770", KSDATAFORMAT_SUBTYPE_RIFFWAVE);
  806. # define KSDATAFORMAT_SUBTYPE_RIFFWAVE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFWAVE)
  807. # define STATIC_KSPROPSETID_Bibliographic \
  808. 0x07BA150EL, 0xE2B1, 0x11D0, 0xAC, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  809. DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196", KSPROPSETID_Bibliographic);
  810. # define KSPROPSETID_Bibliographic DEFINE_GUIDNAMED(KSPROPSETID_Bibliographic)
  811. # define SEB_MK_FOURCC(a, b, c, d) ((a << 24) | (b << 16) | (c << 8) | (d << 0))
  812. typedef enum
  813. {
  814. KSPROPERTY_BIBLIOGRAPHIC_LEADER = SEB_MK_FOURCC('R', 'D', 'L', ' '),
  815. KSPROPERTY_BIBLIOGRAPHIC_LCCN = SEB_MK_FOURCC('0', '1', '0', ' '),
  816. KSPROPERTY_BIBLIOGRAPHIC_ISBN = SEB_MK_FOURCC('0', '2', '0', ' '),
  817. KSPROPERTY_BIBLIOGRAPHIC_ISSN = SEB_MK_FOURCC('2', '2', '0', ' '),
  818. KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE = SEB_MK_FOURCC('0', '4', '0', ' '),
  819. KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME = SEB_MK_FOURCC('0', '0', '1', ' '),
  820. KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY = SEB_MK_FOURCC('0', '1', '1', ' '),
  821. KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME = SEB_MK_FOURCC('1', '1', '1', ' '),
  822. KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE = SEB_MK_FOURCC('0', '3', '1', ' '),
  823. KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE = SEB_MK_FOURCC('0', '4', '2', ' '),
  824. KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT = SEB_MK_FOURCC('5', '4', '2', ' '),
  825. KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE = SEB_MK_FOURCC('6', '4', '2', ' '),
  826. KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION = SEB_MK_FOURCC('0', '6', '2', ' '),
  827. KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION = SEB_MK_FOURCC('0', '0', '3', ' '),
  828. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE = SEB_MK_FOURCC('0', '4', '4', ' '),
  829. KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT = SEB_MK_FOURCC('0', '9', '4', ' '),
  830. KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE = SEB_MK_FOURCC('0', '0', '5', ' '),
  831. KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE = SEB_MK_FOURCC('4', '0', '5', ' '),
  832. KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE = SEB_MK_FOURCC('5', '0', '5', ' '),
  833. KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT = SEB_MK_FOURCC('8', '0', '5', ' '),
  834. KSPROPERTY_BIBLIOGRAPHIC_CITATION = SEB_MK_FOURCC('0', '1', '5', ' '),
  835. KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT = SEB_MK_FOURCC('1', '1', '5', ' '),
  836. KSPROPERTY_BIBLIOGRAPHIC_SUMMARY = SEB_MK_FOURCC('0', '2', '5', ' '),
  837. KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE = SEB_MK_FOURCC('1', '2', '5', ' '),
  838. KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE = SEB_MK_FOURCC('0', '3', '5', ' '),
  839. KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS = SEB_MK_FOURCC('8', '3', '5', ' '),
  840. KSPROPERTY_BIBLIOGRAPHIC_AWARDS = SEB_MK_FOURCC('6', '8', '5', ' '),
  841. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME = SEB_MK_FOURCC('0', '0', '6', ' '),
  842. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM = SEB_MK_FOURCC('0', '5', '6', ' '),
  843. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC = SEB_MK_FOURCC('1', '5', '6', ' '),
  844. KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE = SEB_MK_FOURCC('5', '5', '6', ' '),
  845. KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM = SEB_MK_FOURCC('8', '5', '6', ' '),
  846. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE = SEB_MK_FOURCC('0', '3', '7', ' '),
  847. KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED = SEB_MK_FOURCC('0', '4', '7', ' '),
  848. KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME = SEB_MK_FOURCC('0', '0', '8', ' '),
  849. KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE = SEB_MK_FOURCC('0', '3', '8', ' ')
  850. }KSPROPERTY_BIBLIOGRAPHIC;
  851. # undef SEB_MK_FOURCC
  852. # define STATIC_KSPROPSETID_TopologyNode \
  853. 0x45FFAAA1L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
  854. DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000", KSPROPSETID_TopologyNode);
  855. # define KSPROPSETID_TopologyNode DEFINE_GUIDNAMED(KSPROPSETID_TopologyNode)
  856. typedef enum
  857. {
  858. KSPROPERTY_TOPOLOGYNODE_ENABLE = 1,
  859. KSPROPERTY_TOPOLOGYNODE_RESET
  860. }KSPROPERTY_TOPOLOGYNODE;
  861. # define STATIC_KSPROPSETID_RtAudio \
  862. 0xa855a48c, 0x2f78, 0x4729, 0x90, 0x51, 0x19, 0x68, 0x74, 0x6b, 0x9e, 0xef
  863. DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF", KSPROPSETID_RtAudio);
  864. # define KSPROPSETID_RtAudio DEFINE_GUIDNAMED(KSPROPSETID_RtAudio)
  865. typedef enum
  866. {
  867. KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION
  868. }KSPROPERTY_RTAUDIO;
  869. # define STATIC_KSPROPSETID_DrmAudioStream \
  870. 0x2f2c8ddd, 0x4198, 0x4fac, 0xba, 0x29, 0x61, 0xbb, 0x5, 0xb7, 0xde, 0x6
  871. DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06", KSPROPSETID_DrmAudioStream);
  872. # define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream)
  873. typedef enum
  874. {
  875. KSPROPERTY_DRMAUDIOSTREAM_CONTENTID
  876. }KSPROPERTY_DRMAUDIOSTREAM;
  877. # define STATIC_KSPROPSETID_Audio \
  878. 0x45FFAAA0L, 0x6E1B, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
  879. DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000", KSPROPSETID_Audio);
  880. # define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
  881. typedef enum
  882. {
  883. KSPROPERTY_AUDIO_LATENCY = 1,
  884. KSPROPERTY_AUDIO_COPY_PROTECTION,
  885. KSPROPERTY_AUDIO_CHANNEL_CONFIG,
  886. KSPROPERTY_AUDIO_VOLUMELEVEL,
  887. KSPROPERTY_AUDIO_POSITION,
  888. KSPROPERTY_AUDIO_DYNAMIC_RANGE,
  889. KSPROPERTY_AUDIO_QUALITY,
  890. KSPROPERTY_AUDIO_SAMPLING_RATE,
  891. KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
  892. KSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
  893. KSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
  894. KSPROPERTY_AUDIO_MUX_SOURCE,
  895. KSPROPERTY_AUDIO_MUTE,
  896. KSPROPERTY_AUDIO_BASS,
  897. KSPROPERTY_AUDIO_MID,
  898. KSPROPERTY_AUDIO_TREBLE,
  899. KSPROPERTY_AUDIO_BASS_BOOST,
  900. KSPROPERTY_AUDIO_EQ_LEVEL,
  901. KSPROPERTY_AUDIO_NUM_EQ_BANDS,
  902. KSPROPERTY_AUDIO_EQ_BANDS,
  903. KSPROPERTY_AUDIO_AGC,
  904. KSPROPERTY_AUDIO_DELAY,
  905. KSPROPERTY_AUDIO_LOUDNESS,
  906. KSPROPERTY_AUDIO_WIDE_MODE,
  907. KSPROPERTY_AUDIO_WIDENESS,
  908. KSPROPERTY_AUDIO_REVERB_LEVEL,
  909. KSPROPERTY_AUDIO_CHORUS_LEVEL,
  910. KSPROPERTY_AUDIO_DEV_SPECIFIC,
  911. KSPROPERTY_AUDIO_DEMUX_DEST,
  912. KSPROPERTY_AUDIO_STEREO_ENHANCE,
  913. KSPROPERTY_AUDIO_MANUFACTURE_GUID,
  914. KSPROPERTY_AUDIO_PRODUCT_GUID,
  915. KSPROPERTY_AUDIO_CPU_RESOURCES,
  916. KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
  917. KSPROPERTY_AUDIO_SURROUND_ENCODE,
  918. KSPROPERTY_AUDIO_3D_INTERFACE,
  919. KSPROPERTY_AUDIO_PEAKMETER,
  920. KSPROPERTY_AUDIO_ALGORITHM_INSTANCE,
  921. KSPROPERTY_AUDIO_FILTER_STATE,
  922. KSPROPERTY_AUDIO_PREFERRED_STATUS
  923. }KSPROPERTY_AUDIO;
  924. # define KSAUDIO_QUALITY_WORST 0x0
  925. # define KSAUDIO_QUALITY_PC 0x1
  926. # define KSAUDIO_QUALITY_BASIC 0x2
  927. # define KSAUDIO_QUALITY_ADVANCED 0x3
  928. # define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU 0x00000000
  929. # define KSAUDIO_CPU_RESOURCES_HOST_CPU 0x7FFFFFFF
  930. typedef struct
  931. {
  932. WINBOOL fCopyrighted;
  933. WINBOOL fOriginal;
  934. }KSAUDIO_COPY_PROTECTION, * PKSAUDIO_COPY_PROTECTION;
  935. typedef struct
  936. {
  937. LONG ActiveSpeakerPositions;
  938. }KSAUDIO_CHANNEL_CONFIG, * PKSAUDIO_CHANNEL_CONFIG;
  939. # define SPEAKER_FRONT_LEFT 0x1
  940. # define SPEAKER_FRONT_RIGHT 0x2
  941. # define SPEAKER_FRONT_CENTER 0x4
  942. # define SPEAKER_LOW_FREQUENCY 0x8
  943. # define SPEAKER_BACK_LEFT 0x10
  944. # define SPEAKER_BACK_RIGHT 0x20
  945. # define SPEAKER_FRONT_LEFT_OF_CENTER 0x40
  946. # define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
  947. # define SPEAKER_BACK_CENTER 0x100
  948. # define SPEAKER_SIDE_LEFT 0x200
  949. # define SPEAKER_SIDE_RIGHT 0x400
  950. # define SPEAKER_TOP_CENTER 0x800
  951. # define SPEAKER_TOP_FRONT_LEFT 0x1000
  952. # define SPEAKER_TOP_FRONT_CENTER 0x2000
  953. # define SPEAKER_TOP_FRONT_RIGHT 0x4000
  954. # define SPEAKER_TOP_BACK_LEFT 0x8000
  955. # define SPEAKER_TOP_BACK_CENTER 0x10000
  956. # define SPEAKER_TOP_BACK_RIGHT 0x20000
  957. # define SPEAKER_RESERVED 0x7FFC0000
  958. # define SPEAKER_ALL 0x80000000
  959. # define KSAUDIO_SPEAKER_DIRECTOUT 0
  960. # define KSAUDIO_SPEAKER_MONO (SPEAKER_FRONT_CENTER)
  961. # define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
  962. # define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  963. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
  964. # define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  965. SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
  966. # define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  967. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  968. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
  969. # define KSAUDIO_SPEAKER_7POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  970. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  971. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
  972. SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
  973. # define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  974. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  975. SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
  976. # define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \
  977. SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \
  978. SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \
  979. SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
  980. # define KSAUDIO_SPEAKER_5POINT1_BACK KSAUDIO_SPEAKER_5POINT1
  981. # define KSAUDIO_SPEAKER_7POINT1_WIDE KSAUDIO_SPEAKER_7POINT1
  982. # define KSAUDIO_SPEAKER_GROUND_FRONT_LEFT SPEAKER_FRONT_LEFT
  983. # define KSAUDIO_SPEAKER_GROUND_FRONT_CENTER SPEAKER_FRONT_CENTER
  984. # define KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT SPEAKER_FRONT_RIGHT
  985. # define KSAUDIO_SPEAKER_GROUND_REAR_LEFT SPEAKER_BACK_LEFT
  986. # define KSAUDIO_SPEAKER_GROUND_REAR_RIGHT SPEAKER_BACK_RIGHT
  987. # define KSAUDIO_SPEAKER_TOP_MIDDLE SPEAKER_TOP_CENTER
  988. # define KSAUDIO_SPEAKER_SUPER_WOOFER SPEAKER_LOW_FREQUENCY
  989. typedef struct
  990. {
  991. ULONG QuietCompression;
  992. ULONG LoudCompression;
  993. }KSAUDIO_DYNAMIC_RANGE, * PKSAUDIO_DYNAMIC_RANGE;
  994. typedef struct
  995. {
  996. WINBOOL Mute;
  997. LONG Level;
  998. }KSAUDIO_MIXLEVEL, * PKSAUDIO_MIXLEVEL;
  999. typedef struct
  1000. {
  1001. WINBOOL Mute;
  1002. LONG Minimum;
  1003. LONG Maximum;
  1004. LONG Reset;
  1005. }KSAUDIO_MIX_CAPS, * PKSAUDIO_MIX_CAPS;
  1006. typedef struct
  1007. {
  1008. ULONG InputChannels;
  1009. ULONG OutputChannels;
  1010. KSAUDIO_MIX_CAPS Capabilities[1];
  1011. }KSAUDIO_MIXCAP_TABLE, * PKSAUDIO_MIXCAP_TABLE;
  1012. typedef enum
  1013. {
  1014. SE_TECH_NONE,
  1015. SE_TECH_ANALOG_DEVICES_PHAT,
  1016. SE_TECH_CREATIVE,
  1017. SE_TECH_NATIONAL_SEMI,
  1018. SE_TECH_YAMAHA_YMERSION,
  1019. SE_TECH_BBE,
  1020. SE_TECH_CRYSTAL_SEMI,
  1021. SE_TECH_QSOUND_QXPANDER,
  1022. SE_TECH_SPATIALIZER,
  1023. SE_TECH_SRS,
  1024. SE_TECH_PLATFORM_TECH,
  1025. SE_TECH_AKM,
  1026. SE_TECH_AUREAL,
  1027. SE_TECH_AZTECH,
  1028. SE_TECH_BINAURA,
  1029. SE_TECH_ESS_TECH,
  1030. SE_TECH_HARMAN_VMAX,
  1031. SE_TECH_NVIDEA,
  1032. SE_TECH_PHILIPS_INCREDIBLE,
  1033. SE_TECH_TEXAS_INST,
  1034. SE_TECH_VLSI_TECH
  1035. }SE_TECHNIQUE;
  1036. typedef struct
  1037. {
  1038. SE_TECHNIQUE Technique;
  1039. ULONG Center;
  1040. ULONG Depth;
  1041. ULONG Reserved;
  1042. }KSAUDIO_STEREO_ENHANCE, * PKSAUDIO_STEREO_ENHANCE;
  1043. typedef enum
  1044. {
  1045. KSPROPERTY_SYSAUDIO_NORMAL_DEFAULT = 0,
  1046. KSPROPERTY_SYSAUDIO_PLAYBACK_DEFAULT,
  1047. KSPROPERTY_SYSAUDIO_RECORD_DEFAULT,
  1048. KSPROPERTY_SYSAUDIO_MIDI_DEFAULT,
  1049. KSPROPERTY_SYSAUDIO_MIXER_DEFAULT
  1050. }KSPROPERTY_SYSAUDIO_DEFAULT_TYPE;
  1051. typedef struct
  1052. {
  1053. WINBOOL Enable;
  1054. KSPROPERTY_SYSAUDIO_DEFAULT_TYPE DeviceType;
  1055. ULONG Flags;
  1056. ULONG Reserved;
  1057. }KSAUDIO_PREFERRED_STATUS, * PKSAUDIO_PREFERRED_STATUS;
  1058. # define STATIC_KSNODETYPE_DAC \
  1059. 0x507AE360L, 0xC554, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1060. DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1", KSNODETYPE_DAC);
  1061. # define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
  1062. # define STATIC_KSNODETYPE_ADC \
  1063. 0x4D837FE0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1064. DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_ADC);
  1065. # define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
  1066. # define STATIC_KSNODETYPE_SRC \
  1067. 0x9DB7B9E0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1068. DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SRC);
  1069. # define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
  1070. # define STATIC_KSNODETYPE_SUPERMIX \
  1071. 0xE573ADC0L, 0xC555, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1072. DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUPERMIX);
  1073. # define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
  1074. # define STATIC_KSNODETYPE_MUX \
  1075. 0x2CEAF780L, 0xC556, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1076. DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUX);
  1077. # define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
  1078. # define STATIC_KSNODETYPE_DEMUX \
  1079. 0xC0EB67D4L, 0xE807, 0x11D0, 0x95, 0x8A, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1080. DEFINE_GUIDSTRUCT("C0EB67D4-E807-11D0-958A-00C04FB925D3", KSNODETYPE_DEMUX);
  1081. # define KSNODETYPE_DEMUX DEFINE_GUIDNAMED(KSNODETYPE_DEMUX)
  1082. # define STATIC_KSNODETYPE_SUM \
  1083. 0xDA441A60L, 0xC556, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1084. DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1", KSNODETYPE_SUM);
  1085. # define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
  1086. # define STATIC_KSNODETYPE_MUTE \
  1087. 0x02B223C0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1088. DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_MUTE);
  1089. # define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
  1090. # define STATIC_KSNODETYPE_VOLUME \
  1091. 0x3A5ACC00L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1092. DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_VOLUME);
  1093. # define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
  1094. # define STATIC_KSNODETYPE_TONE \
  1095. 0x7607E580L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1096. DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_TONE);
  1097. # define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE)
  1098. # define STATIC_KSNODETYPE_EQUALIZER \
  1099. 0x9D41B4A0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1100. DEFINE_GUIDSTRUCT("9D41B4A0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_EQUALIZER);
  1101. # define KSNODETYPE_EQUALIZER DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZER)
  1102. # define STATIC_KSNODETYPE_AGC \
  1103. 0xE88C9BA0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1104. DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1", KSNODETYPE_AGC);
  1105. # define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC)
  1106. # define STATIC_KSNODETYPE_NOISE_SUPPRESS \
  1107. 0xe07f903f, 0x62fd, 0x4e60, 0x8c, 0xdd, 0xde, 0xa7, 0x23, 0x66, 0x65, 0xb5
  1108. DEFINE_GUIDSTRUCT("E07F903F-62FD-4e60-8CDD-DEA7236665B5", KSNODETYPE_NOISE_SUPPRESS);
  1109. # define KSNODETYPE_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSNODETYPE_NOISE_SUPPRESS)
  1110. # define STATIC_KSNODETYPE_DELAY \
  1111. 0x144981E0L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1112. DEFINE_GUIDSTRUCT("144981E0-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_DELAY);
  1113. # define KSNODETYPE_DELAY DEFINE_GUIDNAMED(KSNODETYPE_DELAY)
  1114. # define STATIC_KSNODETYPE_LOUDNESS \
  1115. 0x41887440L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1116. DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_LOUDNESS);
  1117. # define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
  1118. # define STATIC_KSNODETYPE_PROLOGIC_DECODER \
  1119. 0x831C2C80L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1120. DEFINE_GUIDSTRUCT("831C2C80-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_PROLOGIC_DECODER);
  1121. # define KSNODETYPE_PROLOGIC_DECODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_DECODER)
  1122. # define STATIC_KSNODETYPE_STEREO_WIDE \
  1123. 0xA9E69800L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1124. DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_STEREO_WIDE);
  1125. # define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE)
  1126. # define STATIC_KSNODETYPE_STEREO_ENHANCE \
  1127. 0xAF6878ACL, 0xE83F, 0x11D0, 0x95, 0x8A, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1128. DEFINE_GUIDSTRUCT("AF6878AC-E83F-11D0-958A-00C04FB925D3", KSNODETYPE_STEREO_ENHANCE);
  1129. # define KSNODETYPE_STEREO_ENHANCE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_ENHANCE)
  1130. # define STATIC_KSNODETYPE_REVERB \
  1131. 0xEF0328E0L, 0xC558, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1132. DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1", KSNODETYPE_REVERB);
  1133. # define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB)
  1134. # define STATIC_KSNODETYPE_CHORUS \
  1135. 0x20173F20L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1136. DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_CHORUS);
  1137. # define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS)
  1138. # define STATIC_KSNODETYPE_3D_EFFECTS \
  1139. 0x55515860L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1140. DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_3D_EFFECTS);
  1141. # define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
  1142. # define STATIC_KSNODETYPE_ACOUSTIC_ECHO_CANCEL STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL
  1143. # define KSNODETYPE_ACOUSTIC_ECHO_CANCEL KSCATEGORY_ACOUSTIC_ECHO_CANCEL
  1144. # define STATIC_KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL \
  1145. 0x1c22c56dL, 0x9879, 0x4f5b, 0xa3, 0x89, 0x27, 0x99, 0x6d, 0xdc, 0x28, 0x10
  1146. DEFINE_GUIDSTRUCT("1C22C56D-9879-4f5b-A389-27996DDC2810", KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL);
  1147. # define KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL)
  1148. # define STATIC_KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS \
  1149. 0x5ab0882eL, 0x7274, 0x4516, 0x87, 0x7d, 0x4e, 0xee, 0x99, 0xba, 0x4f, 0xd0
  1150. DEFINE_GUIDSTRUCT("5AB0882E-7274-4516-877D-4EEE99BA4FD0", KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS);
  1151. # define KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS)
  1152. # define STATIC_KSALGORITHMINSTANCE_SYSTEM_AGC \
  1153. 0x950e55b9L, 0x877c, 0x4c67, 0xbe, 0x8, 0xe4, 0x7b, 0x56, 0x11, 0x13, 0xa
  1154. DEFINE_GUIDSTRUCT("950E55B9-877C-4c67-BE08-E47B5611130A", KSALGORITHMINSTANCE_SYSTEM_AGC);
  1155. # define KSALGORITHMINSTANCE_SYSTEM_AGC DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_AGC)
  1156. # define STATIC_KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR \
  1157. 0xB6F5A0A0L, 0x9E61, 0x4F8C, 0x91, 0xE3, 0x76, 0xCF, 0xF, 0x3C, 0x47, 0x1F
  1158. DEFINE_GUIDSTRUCT("B6F5A0A0-9E61-4f8c-91E3-76CF0F3C471F", KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR);
  1159. # define KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR)
  1160. # define STATIC_KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
  1161. # define KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
  1162. # define STATIC_KSNODETYPE_DEV_SPECIFIC \
  1163. 0x941C7AC0L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1
  1164. DEFINE_GUIDSTRUCT("941C7AC0-C559-11D0-8A2B-00A0C9255AC1", KSNODETYPE_DEV_SPECIFIC);
  1165. # define KSNODETYPE_DEV_SPECIFIC DEFINE_GUIDNAMED(KSNODETYPE_DEV_SPECIFIC)
  1166. # define STATIC_KSNODETYPE_PROLOGIC_ENCODER \
  1167. 0x8074C5B2L, 0x3C66, 0x11D2, 0xB4, 0x5A, 0x30, 0x78, 0x30, 0x2C, 0x20, 0x30
  1168. DEFINE_GUIDSTRUCT("8074C5B2-3C66-11D2-B45A-3078302C2030", KSNODETYPE_PROLOGIC_ENCODER);
  1169. # define KSNODETYPE_PROLOGIC_ENCODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_ENCODER)
  1170. # define KSNODETYPE_SURROUND_ENCODER KSNODETYPE_PROLOGIC_ENCODER
  1171. # define STATIC_KSNODETYPE_PEAKMETER \
  1172. 0xa085651eL, 0x5f0d, 0x4b36, 0xa8, 0x69, 0xd1, 0x95, 0xd6, 0xab, 0x4b, 0x9e
  1173. DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E", KSNODETYPE_PEAKMETER);
  1174. # define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER)
  1175. # define STATIC_KSAUDFNAME_BASS \
  1176. 0x185FEDE0L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1177. DEFINE_GUIDSTRUCT("185FEDE0-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_BASS);
  1178. # define KSAUDFNAME_BASS DEFINE_GUIDNAMED(KSAUDFNAME_BASS)
  1179. # define STATIC_KSAUDFNAME_TREBLE \
  1180. 0x185FEDE1L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1181. DEFINE_GUIDSTRUCT("185FEDE1-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_TREBLE);
  1182. # define KSAUDFNAME_TREBLE DEFINE_GUIDNAMED(KSAUDFNAME_TREBLE)
  1183. # define STATIC_KSAUDFNAME_3D_STEREO \
  1184. 0x185FEDE2L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1185. DEFINE_GUIDSTRUCT("185FEDE2-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_3D_STEREO);
  1186. # define KSAUDFNAME_3D_STEREO DEFINE_GUIDNAMED(KSAUDFNAME_3D_STEREO)
  1187. # define STATIC_KSAUDFNAME_MASTER_VOLUME \
  1188. 0x185FEDE3L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1189. DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_VOLUME);
  1190. # define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
  1191. # define STATIC_KSAUDFNAME_MASTER_MUTE \
  1192. 0x185FEDE4L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1193. DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MASTER_MUTE);
  1194. # define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
  1195. # define STATIC_KSAUDFNAME_WAVE_VOLUME \
  1196. 0x185FEDE5L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1197. DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_VOLUME);
  1198. # define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
  1199. # define STATIC_KSAUDFNAME_WAVE_MUTE \
  1200. 0x185FEDE6L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1201. DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_MUTE);
  1202. # define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
  1203. # define STATIC_KSAUDFNAME_MIDI_VOLUME \
  1204. 0x185FEDE7L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1205. DEFINE_GUIDSTRUCT("185FEDE7-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIDI_VOLUME);
  1206. # define KSAUDFNAME_MIDI_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_VOLUME)
  1207. # define STATIC_KSAUDFNAME_MIDI_MUTE \
  1208. 0x185FEDE8L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1209. DEFINE_GUIDSTRUCT("185FEDE8-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIDI_MUTE);
  1210. # define KSAUDFNAME_MIDI_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_MUTE)
  1211. # define STATIC_KSAUDFNAME_CD_VOLUME \
  1212. 0x185FEDE9L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1213. DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_VOLUME);
  1214. # define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
  1215. # define STATIC_KSAUDFNAME_CD_MUTE \
  1216. 0x185FEDEAL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1217. DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_MUTE);
  1218. # define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
  1219. # define STATIC_KSAUDFNAME_LINE_VOLUME \
  1220. 0x185FEDEBL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1221. DEFINE_GUIDSTRUCT("185FEDEB-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_VOLUME);
  1222. # define KSAUDFNAME_LINE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_VOLUME)
  1223. # define STATIC_KSAUDFNAME_LINE_MUTE \
  1224. 0x185FEDECL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1225. DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_MUTE);
  1226. # define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
  1227. # define STATIC_KSAUDFNAME_MIC_VOLUME \
  1228. 0x185FEDEDL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1229. DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_VOLUME);
  1230. # define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
  1231. # define STATIC_KSAUDFNAME_MIC_MUTE \
  1232. 0x185FEDEEL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1233. DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_MUTE);
  1234. # define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
  1235. # define STATIC_KSAUDFNAME_RECORDING_SOURCE \
  1236. 0x185FEDEFL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1237. DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_SOURCE);
  1238. # define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
  1239. # define STATIC_KSAUDFNAME_PC_SPEAKER_VOLUME \
  1240. 0x185FEDF0L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1241. DEFINE_GUIDSTRUCT("185FEDF0-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_PC_SPEAKER_VOLUME);
  1242. # define KSAUDFNAME_PC_SPEAKER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_VOLUME)
  1243. # define STATIC_KSAUDFNAME_PC_SPEAKER_MUTE \
  1244. 0x185FEDF1L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1245. DEFINE_GUIDSTRUCT("185FEDF1-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_PC_SPEAKER_MUTE);
  1246. # define KSAUDFNAME_PC_SPEAKER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_MUTE)
  1247. # define STATIC_KSAUDFNAME_MIDI_IN_VOLUME \
  1248. 0x185FEDF2L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1249. DEFINE_GUIDSTRUCT("185FEDF2-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIDI_IN_VOLUME);
  1250. # define KSAUDFNAME_MIDI_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_IN_VOLUME)
  1251. # define STATIC_KSAUDFNAME_CD_IN_VOLUME \
  1252. 0x185FEDF3L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1253. DEFINE_GUIDSTRUCT("185FEDF3-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_IN_VOLUME);
  1254. # define KSAUDFNAME_CD_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_IN_VOLUME)
  1255. # define STATIC_KSAUDFNAME_LINE_IN_VOLUME \
  1256. 0x185FEDF4L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1257. DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_IN_VOLUME);
  1258. # define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
  1259. # define STATIC_KSAUDFNAME_MIC_IN_VOLUME \
  1260. 0x185FEDF5L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1261. DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIC_IN_VOLUME);
  1262. # define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
  1263. # define STATIC_KSAUDFNAME_WAVE_IN_VOLUME \
  1264. 0x185FEDF6L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1265. DEFINE_GUIDSTRUCT("185FEDF6-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_IN_VOLUME);
  1266. # define KSAUDFNAME_WAVE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_IN_VOLUME)
  1267. # define STATIC_KSAUDFNAME_VOLUME_CONTROL \
  1268. 0x185FEDF7L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1269. DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_VOLUME_CONTROL);
  1270. # define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
  1271. # define STATIC_KSAUDFNAME_MIDI \
  1272. 0x185FEDF8L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1273. DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_MIDI);
  1274. # define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI)
  1275. # define STATIC_KSAUDFNAME_LINE_IN \
  1276. 0x185FEDF9L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1277. DEFINE_GUIDSTRUCT("185FEDF9-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_LINE_IN);
  1278. # define KSAUDFNAME_LINE_IN DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN)
  1279. # define STATIC_KSAUDFNAME_RECORDING_CONTROL \
  1280. 0x185FEDFAL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1281. DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_RECORDING_CONTROL);
  1282. # define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
  1283. # define STATIC_KSAUDFNAME_CD_AUDIO \
  1284. 0x185FEDFBL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1285. DEFINE_GUIDSTRUCT("185FEDFB-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_CD_AUDIO);
  1286. # define KSAUDFNAME_CD_AUDIO DEFINE_GUIDNAMED(KSAUDFNAME_CD_AUDIO)
  1287. # define STATIC_KSAUDFNAME_AUX_VOLUME \
  1288. 0x185FEDFCL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1289. DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_VOLUME);
  1290. # define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
  1291. # define STATIC_KSAUDFNAME_AUX_MUTE \
  1292. 0x185FEDFDL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1293. DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX_MUTE);
  1294. # define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
  1295. # define STATIC_KSAUDFNAME_AUX \
  1296. 0x185FEDFEL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1297. DEFINE_GUIDSTRUCT("185FEDFE-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_AUX);
  1298. # define KSAUDFNAME_AUX DEFINE_GUIDNAMED(KSAUDFNAME_AUX)
  1299. # define STATIC_KSAUDFNAME_PC_SPEAKER \
  1300. 0x185FEDFFL, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1301. DEFINE_GUIDSTRUCT("185FEDFF-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_PC_SPEAKER);
  1302. # define KSAUDFNAME_PC_SPEAKER DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER)
  1303. # define STATIC_KSAUDFNAME_WAVE_OUT_MIX \
  1304. 0x185FEE00L, 0x9905, 0x11D1, 0x95, 0xA9, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1305. DEFINE_GUIDSTRUCT("185FEE00-9905-11D1-95A9-00C04FB925D3", KSAUDFNAME_WAVE_OUT_MIX);
  1306. # define KSAUDFNAME_WAVE_OUT_MIX DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_OUT_MIX)
  1307. # define STATIC_KSAUDFNAME_MONO_OUT \
  1308. 0xf9b41dc3L, 0x96e2, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1309. DEFINE_GUIDSTRUCT("F9B41DC3-96E2-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MONO_OUT);
  1310. # define KSAUDFNAME_MONO_OUT DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT)
  1311. # define STATIC_KSAUDFNAME_STEREO_MIX \
  1312. 0xdff077L, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1313. DEFINE_GUIDSTRUCT("00DFF077-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_STEREO_MIX);
  1314. # define KSAUDFNAME_STEREO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX)
  1315. # define STATIC_KSAUDFNAME_MONO_MIX \
  1316. 0xdff078L, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1317. DEFINE_GUIDSTRUCT("00DFF078-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MONO_MIX);
  1318. # define KSAUDFNAME_MONO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX)
  1319. # define STATIC_KSAUDFNAME_MONO_OUT_VOLUME \
  1320. 0x1ad247ebL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1321. DEFINE_GUIDSTRUCT("1AD247EB-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MONO_OUT_VOLUME);
  1322. # define KSAUDFNAME_MONO_OUT_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_VOLUME)
  1323. # define STATIC_KSAUDFNAME_MONO_OUT_MUTE \
  1324. 0x1ad247ecL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1325. DEFINE_GUIDSTRUCT("1AD247EC-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MONO_OUT_MUTE);
  1326. # define KSAUDFNAME_MONO_OUT_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_MUTE)
  1327. # define STATIC_KSAUDFNAME_STEREO_MIX_VOLUME \
  1328. 0x1ad247edL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1329. DEFINE_GUIDSTRUCT("1AD247ED-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_STEREO_MIX_VOLUME);
  1330. # define KSAUDFNAME_STEREO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_VOLUME)
  1331. # define STATIC_KSAUDFNAME_STEREO_MIX_MUTE \
  1332. 0x22b0eafdL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1333. DEFINE_GUIDSTRUCT("22B0EAFD-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_STEREO_MIX_MUTE);
  1334. # define KSAUDFNAME_STEREO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_MUTE)
  1335. # define STATIC_KSAUDFNAME_MONO_MIX_VOLUME \
  1336. 0x22b0eafeL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1337. DEFINE_GUIDSTRUCT("22B0EAFE-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MONO_MIX_VOLUME);
  1338. # define KSAUDFNAME_MONO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_VOLUME)
  1339. # define STATIC_KSAUDFNAME_MONO_MIX_MUTE \
  1340. 0x2bc31d69L, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1341. DEFINE_GUIDSTRUCT("2BC31D69-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MONO_MIX_MUTE);
  1342. # define KSAUDFNAME_MONO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_MUTE)
  1343. # define STATIC_KSAUDFNAME_MICROPHONE_BOOST \
  1344. 0x2bc31d6aL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1345. DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_MICROPHONE_BOOST);
  1346. # define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
  1347. # define STATIC_KSAUDFNAME_ALTERNATE_MICROPHONE \
  1348. 0x2bc31d6bL, 0x96e3, 0x11d2, 0xac, 0x4c, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1349. DEFINE_GUIDSTRUCT("2BC31D6B-96E3-11d2-AC4C-00C04F8EFB68", KSAUDFNAME_ALTERNATE_MICROPHONE);
  1350. # define KSAUDFNAME_ALTERNATE_MICROPHONE DEFINE_GUIDNAMED(KSAUDFNAME_ALTERNATE_MICROPHONE)
  1351. # define STATIC_KSAUDFNAME_3D_DEPTH \
  1352. 0x63ff5747L, 0x991f, 0x11d2, 0xac, 0x4d, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1353. DEFINE_GUIDSTRUCT("63FF5747-991F-11d2-AC4D-00C04F8EFB68", KSAUDFNAME_3D_DEPTH);
  1354. # define KSAUDFNAME_3D_DEPTH DEFINE_GUIDNAMED(KSAUDFNAME_3D_DEPTH)
  1355. # define STATIC_KSAUDFNAME_3D_CENTER \
  1356. 0x9f0670b4L, 0x991f, 0x11d2, 0xac, 0x4d, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1357. DEFINE_GUIDSTRUCT("9F0670B4-991F-11d2-AC4D-00C04F8EFB68", KSAUDFNAME_3D_CENTER);
  1358. # define KSAUDFNAME_3D_CENTER DEFINE_GUIDNAMED(KSAUDFNAME_3D_CENTER)
  1359. # define STATIC_KSAUDFNAME_VIDEO_VOLUME \
  1360. 0x9b46e708L, 0x992a, 0x11d2, 0xac, 0x4d, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1361. DEFINE_GUIDSTRUCT("9B46E708-992A-11d2-AC4D-00C04F8EFB68", KSAUDFNAME_VIDEO_VOLUME);
  1362. # define KSAUDFNAME_VIDEO_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_VOLUME)
  1363. # define STATIC_KSAUDFNAME_VIDEO_MUTE \
  1364. 0x9b46e709L, 0x992a, 0x11d2, 0xac, 0x4d, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1365. DEFINE_GUIDSTRUCT("9B46E709-992A-11d2-AC4D-00C04F8EFB68", KSAUDFNAME_VIDEO_MUTE);
  1366. # define KSAUDFNAME_VIDEO_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_MUTE)
  1367. # define STATIC_KSAUDFNAME_VIDEO \
  1368. 0x915daec4L, 0xa434, 0x11d2, 0xac, 0x52, 0x0, 0xc0, 0x4f, 0x8e, 0xfb, 0x68
  1369. DEFINE_GUIDSTRUCT("915DAEC4-A434-11d2-AC52-00C04F8EFB68", KSAUDFNAME_VIDEO);
  1370. # define KSAUDFNAME_VIDEO DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO)
  1371. # define STATIC_KSAUDFNAME_PEAKMETER \
  1372. 0x57e24340L, 0xfc5b, 0x4612, 0xa5, 0x62, 0x72, 0xb1, 0x1a, 0x29, 0xdf, 0xae
  1373. DEFINE_GUIDSTRUCT("57E24340-FC5B-4612-A562-72B11A29DFAE", KSAUDFNAME_PEAKMETER);
  1374. # define KSAUDFNAME_PEAKMETER DEFINE_GUIDNAMED(KSAUDFNAME_PEAKMETER)
  1375. # define KSNODEPIN_STANDARD_IN 1
  1376. # define KSNODEPIN_STANDARD_OUT 0
  1377. # define KSNODEPIN_SUM_MUX_IN 1
  1378. # define KSNODEPIN_SUM_MUX_OUT 0
  1379. # define KSNODEPIN_DEMUX_IN 0
  1380. # define KSNODEPIN_DEMUX_OUT 1
  1381. # define KSNODEPIN_AEC_RENDER_IN 1
  1382. # define KSNODEPIN_AEC_RENDER_OUT 0
  1383. # define KSNODEPIN_AEC_CAPTURE_IN 2
  1384. # define KSNODEPIN_AEC_CAPTURE_OUT 3
  1385. # define STATIC_KSMETHODSETID_Wavetable \
  1386. 0xDCEF31EBL, 0xD907, 0x11D0, 0x95, 0x83, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1387. DEFINE_GUIDSTRUCT("DCEF31EB-D907-11D0-9583-00C04FB925D3", KSMETHODSETID_Wavetable);
  1388. # define KSMETHODSETID_Wavetable DEFINE_GUIDNAMED(KSMETHODSETID_Wavetable)
  1389. typedef enum
  1390. {
  1391. KSMETHOD_WAVETABLE_WAVE_ALLOC,
  1392. KSMETHOD_WAVETABLE_WAVE_FREE,
  1393. KSMETHOD_WAVETABLE_WAVE_FIND,
  1394. KSMETHOD_WAVETABLE_WAVE_WRITE
  1395. }KSMETHOD_WAVETABLE;
  1396. typedef struct
  1397. {
  1398. KSIDENTIFIER Identifier;
  1399. ULONG Size;
  1400. WINBOOL Looped;
  1401. ULONG LoopPoint;
  1402. WINBOOL InROM;
  1403. KSDATAFORMAT Format;
  1404. }KSWAVETABLE_WAVE_DESC, * PKSWAVETABLE_WAVE_DESC;
  1405. # define STATIC_KSPROPSETID_Acoustic_Echo_Cancel \
  1406. 0xd7a4af8bL, 0x3dc1, 0x4902, 0x91, 0xea, 0x8a, 0x15, 0xc9, 0x0e, 0x05, 0xb2
  1407. DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2", KSPROPSETID_Acoustic_Echo_Cancel);
  1408. # define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel)
  1409. typedef enum
  1410. {
  1411. KSPROPERTY_AEC_NOISE_FILL_ENABLE = 0,
  1412. KSPROPERTY_AEC_STATUS,
  1413. KSPROPERTY_AEC_MODE
  1414. }KSPROPERTY_AEC;
  1415. # define AEC_STATUS_FD_HISTORY_UNINITIALIZED 0x0
  1416. # define AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED 0x1
  1417. # define AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED 0x2
  1418. # define AEC_STATUS_FD_CURRENTLY_CONVERGED 0x8
  1419. # define AEC_MODE_PASS_THROUGH 0x0
  1420. # define AEC_MODE_HALF_DUPLEX 0x1
  1421. # define AEC_MODE_FULL_DUPLEX 0x2
  1422. # define STATIC_KSPROPSETID_Wave \
  1423. 0x924e54b0L, 0x630f, 0x11cf, 0xad, 0xa7, 0x08, 0x00, 0x3e, 0x30, 0x49, 0x4a
  1424. DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a", KSPROPSETID_Wave);
  1425. # define KSPROPSETID_Wave DEFINE_GUIDNAMED(KSPROPSETID_Wave)
  1426. typedef enum
  1427. {
  1428. KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES,
  1429. KSPROPERTY_WAVE_INPUT_CAPABILITIES,
  1430. KSPROPERTY_WAVE_OUTPUT_CAPABILITIES,
  1431. KSPROPERTY_WAVE_BUFFER,
  1432. KSPROPERTY_WAVE_FREQUENCY,
  1433. KSPROPERTY_WAVE_VOLUME,
  1434. KSPROPERTY_WAVE_PAN
  1435. }KSPROPERTY_WAVE;
  1436. typedef struct
  1437. {
  1438. ULONG ulDeviceType;
  1439. }KSWAVE_COMPATCAPS, * PKSWAVE_COMPATCAPS;
  1440. # define KSWAVE_COMPATCAPS_INPUT 0x00000000
  1441. # define KSWAVE_COMPATCAPS_OUTPUT 0x00000001
  1442. typedef struct
  1443. {
  1444. ULONG MaximumChannelsPerConnection;
  1445. ULONG MinimumBitsPerSample;
  1446. ULONG MaximumBitsPerSample;
  1447. ULONG MinimumSampleFrequency;
  1448. ULONG MaximumSampleFrequency;
  1449. ULONG TotalConnections;
  1450. ULONG ActiveConnections;
  1451. }KSWAVE_INPUT_CAPABILITIES, * PKSWAVE_INPUT_CAPABILITIES;
  1452. typedef struct
  1453. {
  1454. ULONG MaximumChannelsPerConnection;
  1455. ULONG MinimumBitsPerSample;
  1456. ULONG MaximumBitsPerSample;
  1457. ULONG MinimumSampleFrequency;
  1458. ULONG MaximumSampleFrequency;
  1459. ULONG TotalConnections;
  1460. ULONG StaticConnections;
  1461. ULONG StreamingConnections;
  1462. ULONG ActiveConnections;
  1463. ULONG ActiveStaticConnections;
  1464. ULONG ActiveStreamingConnections;
  1465. ULONG Total3DConnections;
  1466. ULONG Static3DConnections;
  1467. ULONG Streaming3DConnections;
  1468. ULONG Active3DConnections;
  1469. ULONG ActiveStatic3DConnections;
  1470. ULONG ActiveStreaming3DConnections;
  1471. ULONG TotalSampleMemory;
  1472. ULONG FreeSampleMemory;
  1473. ULONG LargestFreeContiguousSampleMemory;
  1474. }KSWAVE_OUTPUT_CAPABILITIES, * PKSWAVE_OUTPUT_CAPABILITIES;
  1475. typedef struct
  1476. {
  1477. LONG LeftAttenuation;
  1478. LONG RightAttenuation;
  1479. }KSWAVE_VOLUME, * PKSWAVE_VOLUME;
  1480. # define KSWAVE_BUFFER_ATTRIBUTEF_LOOPING 0x00000001
  1481. # define KSWAVE_BUFFER_ATTRIBUTEF_STATIC 0x00000002
  1482. typedef struct
  1483. {
  1484. ULONG Attributes;
  1485. ULONG BufferSize;
  1486. PVOID BufferAddress;
  1487. }KSWAVE_BUFFER, * PKSWAVE_BUFFER;
  1488. # define STATIC_KSMUSIC_TECHNOLOGY_PORT \
  1489. 0x86C92E60L, 0x62E8, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1490. DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000", KSMUSIC_TECHNOLOGY_PORT);
  1491. # define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT)
  1492. # define STATIC_KSMUSIC_TECHNOLOGY_SQSYNTH \
  1493. 0x0ECF4380L, 0x62E9, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1494. DEFINE_GUIDSTRUCT("0ECF4380-62E9-11CF-A5D6-28DB04C10000", KSMUSIC_TECHNOLOGY_SQSYNTH);
  1495. # define KSMUSIC_TECHNOLOGY_SQSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SQSYNTH)
  1496. # define STATIC_KSMUSIC_TECHNOLOGY_FMSYNTH \
  1497. 0x252C5C80L, 0x62E9, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1498. DEFINE_GUIDSTRUCT("252C5C80-62E9-11CF-A5D6-28DB04C10000", KSMUSIC_TECHNOLOGY_FMSYNTH);
  1499. # define KSMUSIC_TECHNOLOGY_FMSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_FMSYNTH)
  1500. # define STATIC_KSMUSIC_TECHNOLOGY_WAVETABLE \
  1501. 0x394EC7C0L, 0x62E9, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1502. DEFINE_GUIDSTRUCT("394EC7C0-62E9-11CF-A5D6-28DB04C10000", KSMUSIC_TECHNOLOGY_WAVETABLE);
  1503. # define KSMUSIC_TECHNOLOGY_WAVETABLE DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_WAVETABLE)
  1504. # define STATIC_KSMUSIC_TECHNOLOGY_SWSYNTH \
  1505. 0x37407736L, 0x3620, 0x11D1, 0x85, 0xD3, 0x00, 0x00, 0xF8, 0x75, 0x43, 0x80
  1506. DEFINE_GUIDSTRUCT("37407736-3620-11D1-85D3-0000F8754380", KSMUSIC_TECHNOLOGY_SWSYNTH);
  1507. # define KSMUSIC_TECHNOLOGY_SWSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SWSYNTH)
  1508. # define STATIC_KSPROPSETID_WaveTable \
  1509. 0x8539E660L, 0x62E9, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1510. DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000", KSPROPSETID_WaveTable);
  1511. # define KSPROPSETID_WaveTable DEFINE_GUIDNAMED(KSPROPSETID_WaveTable)
  1512. typedef enum
  1513. {
  1514. KSPROPERTY_WAVETABLE_LOAD_SAMPLE,
  1515. KSPROPERTY_WAVETABLE_UNLOAD_SAMPLE,
  1516. KSPROPERTY_WAVETABLE_MEMORY,
  1517. KSPROPERTY_WAVETABLE_VERSION
  1518. }KSPROPERTY_WAVETABLE;
  1519. typedef struct
  1520. {
  1521. KSDATARANGE DataRange;
  1522. GUID Technology;
  1523. ULONG Channels;
  1524. ULONG Notes;
  1525. ULONG ChannelMask;
  1526. }KSDATARANGE_MUSIC, * PKSDATARANGE_MUSIC;
  1527. # define STATIC_KSEVENTSETID_Cyclic \
  1528. 0x142C1AC0L, 0x072A, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1529. DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000", KSEVENTSETID_Cyclic);
  1530. # define KSEVENTSETID_Cyclic DEFINE_GUIDNAMED(KSEVENTSETID_Cyclic)
  1531. typedef enum
  1532. {
  1533. KSEVENT_CYCLIC_TIME_INTERVAL
  1534. }KSEVENT_CYCLIC_TIME;
  1535. # define STATIC_KSPROPSETID_Cyclic \
  1536. 0x3FFEAEA0L, 0x2BEE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1537. DEFINE_GUIDSTRUCT("3FFEAEA0-2BEE-11CF-A5D6-28DB04C10000", KSPROPSETID_Cyclic);
  1538. # define KSPROPSETID_Cyclic DEFINE_GUIDNAMED(KSPROPSETID_Cyclic)
  1539. typedef enum
  1540. {
  1541. KSPROPERTY_CYCLIC_POSITION
  1542. }KSPROPERTY_CYCLIC;
  1543. # define STATIC_KSEVENTSETID_AudioControlChange \
  1544. 0xE85E9698L, 0xFA2F, 0x11D1, 0x95, 0xBD, 0x00, 0xC0, 0x4F, 0xB9, 0x25, 0xD3
  1545. DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3", KSEVENTSETID_AudioControlChange);
  1546. # define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange)
  1547. typedef enum
  1548. {
  1549. KSEVENT_CONTROL_CHANGE
  1550. }KSEVENT_AUDIO_CONTROL_CHANGE;
  1551. # define STATIC_KSEVENTSETID_LoopedStreaming \
  1552. 0x4682B940L, 0xC6EF, 0x11D0, 0x96, 0xD8, 0x00, 0xAA, 0x00, 0x51, 0xE5, 0x1D
  1553. DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D", KSEVENTSETID_LoopedStreaming);
  1554. # define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming)
  1555. typedef enum
  1556. {
  1557. KSEVENT_LOOPEDSTREAMING_POSITION
  1558. }KSEVENT_LOOPEDSTREAMING;
  1559. typedef struct
  1560. {
  1561. KSEVENTDATA KsEventData;
  1562. DWORDLONG Position;
  1563. }LOOPEDSTREAMING_POSITION_EVENT_DATA, * PLOOPEDSTREAMING_POSITION_EVENT_DATA;
  1564. # define STATIC_KSPROPSETID_Sysaudio \
  1565. 0xCBE3FAA0L, 0xCC75, 0x11D0, 0xB4, 0x65, 0x00, 0x00, 0x1A, 0x18, 0x18, 0xE6
  1566. DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6", KSPROPSETID_Sysaudio);
  1567. # define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio)
  1568. typedef enum
  1569. {
  1570. KSPROPERTY_SYSAUDIO_DEVICE_COUNT = 1,
  1571. KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME = 2,
  1572. KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE = 3,
  1573. KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME = 4,
  1574. KSPROPERTY_SYSAUDIO_SELECT_GRAPH = 5,
  1575. KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE = 6,
  1576. KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT = 7,
  1577. KSPROPERTY_SYSAUDIO_INSTANCE_INFO = 14,
  1578. KSPROPERTY_SYSAUDIO_COMPONENT_ID = 16
  1579. }KSPROPERTY_SYSAUDIO;
  1580. typedef struct
  1581. {
  1582. KSPROPERTY Property;
  1583. GUID PinCategory;
  1584. GUID PinName;
  1585. }SYSAUDIO_CREATE_VIRTUAL_SOURCE, * PSYSAUDIO_CREATE_VIRTUAL_SOURCE;
  1586. typedef struct
  1587. {
  1588. KSPROPERTY Property;
  1589. ULONG PinId;
  1590. ULONG NodeId;
  1591. ULONG Flags;
  1592. ULONG Reserved;
  1593. }SYSAUDIO_SELECT_GRAPH, * PSYSAUDIO_SELECT_GRAPH;
  1594. typedef struct
  1595. {
  1596. KSPROPERTY Property;
  1597. ULONG Flags;
  1598. ULONG DeviceNumber;
  1599. }SYSAUDIO_INSTANCE_INFO, * PSYSAUDIO_INSTANCE_INFO;
  1600. # define SYSAUDIO_FLAGS_DONT_COMBINE_PINS 0x00000001
  1601. # define STATIC_KSPROPSETID_Sysaudio_Pin \
  1602. 0xA3A53220L, 0xC6E4, 0x11D0, 0xB4, 0x65, 0x00, 0x00, 0x1A, 0x18, 0x18, 0xE6
  1603. DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6", KSPROPSETID_Sysaudio_Pin);
  1604. # define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin)
  1605. typedef enum
  1606. {
  1607. KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1
  1608. }KSPROPERTY_SYSAUDIO_PIN;
  1609. typedef struct
  1610. {
  1611. KSPROPERTY Property;
  1612. ULONG MixerPinId;
  1613. ULONG Reserved;
  1614. }SYSAUDIO_ATTACH_VIRTUAL_SOURCE, * PSYSAUDIO_ATTACH_VIRTUAL_SOURCE;
  1615. typedef struct
  1616. {
  1617. KSPROPERTY Property;
  1618. ULONG NodeId;
  1619. ULONG Reserved;
  1620. }KSNODEPROPERTY, * PKSNODEPROPERTY;
  1621. typedef struct
  1622. {
  1623. KSNODEPROPERTY NodeProperty;
  1624. LONG Channel;
  1625. ULONG Reserved;
  1626. }KSNODEPROPERTY_AUDIO_CHANNEL, * PKSNODEPROPERTY_AUDIO_CHANNEL;
  1627. typedef struct
  1628. {
  1629. KSNODEPROPERTY NodeProperty;
  1630. ULONG DevSpecificId;
  1631. ULONG DeviceInfo;
  1632. ULONG Length;
  1633. }KSNODEPROPERTY_AUDIO_DEV_SPECIFIC, * PKSNODEPROPERTY_AUDIO_DEV_SPECIFIC;
  1634. typedef struct
  1635. {
  1636. KSNODEPROPERTY NodeProperty;
  1637. PVOID ListenerId;
  1638. # ifndef _WIN64
  1639. ULONG Reserved;
  1640. # endif
  1641. }KSNODEPROPERTY_AUDIO_3D_LISTENER, * PKSNODEPROPERTY_AUDIO_3D_LISTENER;
  1642. typedef struct
  1643. {
  1644. KSNODEPROPERTY NodeProperty;
  1645. PVOID AppContext;
  1646. ULONG Length;
  1647. # ifndef _WIN64
  1648. ULONG Reserved;
  1649. # endif
  1650. }KSNODEPROPERTY_AUDIO_PROPERTY, * PKSNODEPROPERTY_AUDIO_PROPERTY;
  1651. # define STATIC_KSPROPSETID_AudioGfx \
  1652. 0x79a9312eL, 0x59ae, 0x43b0, 0xa3, 0x50, 0x8b, 0x5, 0x28, 0x4c, 0xab, 0x24
  1653. DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24", KSPROPSETID_AudioGfx);
  1654. # define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx)
  1655. typedef enum
  1656. {
  1657. KSPROPERTY_AUDIOGFX_RENDERTARGETDEVICEID,
  1658. KSPROPERTY_AUDIOGFX_CAPTURETARGETDEVICEID
  1659. }KSPROPERTY_AUDIOGFX;
  1660. # define STATIC_KSPROPSETID_Linear \
  1661. 0x5A2FFE80L, 0x16B9, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1662. DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000", KSPROPSETID_Linear);
  1663. # define KSPROPSETID_Linear DEFINE_GUIDNAMED(KSPROPSETID_Linear)
  1664. typedef enum
  1665. {
  1666. KSPROPERTY_LINEAR_POSITION
  1667. }KSPROPERTY_LINEAR;
  1668. # define STATIC_KSDATAFORMAT_TYPE_MUSIC \
  1669. 0xE725D360L, 0x62CC, 0x11CF, { 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 }
  1670. DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000", KSDATAFORMAT_TYPE_MUSIC);
  1671. # define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC)
  1672. # define STATIC_KSDATAFORMAT_TYPE_MIDI \
  1673. 0x7364696DL, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71
  1674. DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71", KSDATAFORMAT_TYPE_MIDI);
  1675. # define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI)
  1676. # define STATIC_KSDATAFORMAT_SUBTYPE_MIDI \
  1677. 0x1D262760L, 0xE957, 0x11CF, { 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 }
  1678. DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI);
  1679. # define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
  1680. # define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS \
  1681. 0x2CA15FA0L, 0x6CFE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
  1682. DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000", KSDATAFORMAT_SUBTYPE_MIDI_BUS);
  1683. # define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS)
  1684. # define STATIC_KSDATAFORMAT_SUBTYPE_RIFFMIDI \
  1685. 0x4995DAF0L, 0x9EE6, 0x11D0, 0xA4, 0x0E, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  1686. DEFINE_GUIDSTRUCT("4995DAF0-9EE6-11D0-A40E-00A0C9223196", KSDATAFORMAT_SUBTYPE_RIFFMIDI);
  1687. # define KSDATAFORMAT_SUBTYPE_RIFFMIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFMIDI)
  1688. typedef struct
  1689. {
  1690. ULONG TimeDeltaMs;
  1691. ULONG ByteCount;
  1692. }KSMUSICFORMAT, * PKSMUSICFORMAT;
  1693. # define STATIC_KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM \
  1694. 0x36523b11L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1695. DEFINE_GUIDSTRUCT("36523B11-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM);
  1696. # define KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM)
  1697. # define STATIC_KSDATAFORMAT_TYPE_STANDARD_PES_PACKET \
  1698. 0x36523b12L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1699. DEFINE_GUIDSTRUCT("36523B12-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_TYPE_STANDARD_PES_PACKET);
  1700. # define KSDATAFORMAT_TYPE_STANDARD_PES_PACKET DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PES_PACKET)
  1701. # define STATIC_KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER \
  1702. 0x36523b13L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1703. DEFINE_GUIDSTRUCT("36523B13-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER);
  1704. # define KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER)
  1705. # define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO \
  1706. 0x36523b21L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1707. DEFINE_GUIDSTRUCT("36523B21-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO);
  1708. # define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO)
  1709. # define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO \
  1710. 0x36523b22L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1711. DEFINE_GUIDSTRUCT("36523B22-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO);
  1712. # define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO)
  1713. # define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO \
  1714. 0x36523b23L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1715. DEFINE_GUIDSTRUCT("36523B23-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO);
  1716. # define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO)
  1717. # define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO \
  1718. 0x36523b24L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1719. DEFINE_GUIDSTRUCT("36523B24-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO);
  1720. # define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO)
  1721. # define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO \
  1722. 0x36523b25L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1723. DEFINE_GUIDSTRUCT("36523B25-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO);
  1724. # define KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO)
  1725. # define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO \
  1726. 0x36523b31L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1727. DEFINE_GUIDSTRUCT("36523B31-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO);
  1728. # define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO)
  1729. # define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO \
  1730. 0x36523b32L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1731. DEFINE_GUIDSTRUCT("36523B32-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO);
  1732. # define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO)
  1733. # define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO \
  1734. 0x36523b33L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1735. DEFINE_GUIDSTRUCT("36523B33-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO);
  1736. # define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO)
  1737. # define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO \
  1738. 0x36523b34L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1739. DEFINE_GUIDSTRUCT("36523B34-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO);
  1740. # define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO)
  1741. # define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO \
  1742. 0x36523b35L, 0x8ee5, 0x11d1, 0x8c, 0xa3, 0x00, 0x60, 0xb0, 0x57, 0x66, 0x4a
  1743. DEFINE_GUIDSTRUCT("36523B35-8EE5-11d1-8CA3-0060B057664A", KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO);
  1744. # define KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO)
  1745. # define STATIC_KSDATAFORMAT_SUBTYPE_DSS_VIDEO \
  1746. 0xa0af4f81L, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a
  1747. DEFINE_GUIDSTRUCT("a0af4f81-e163-11d0-bad9-00609744111a", KSDATAFORMAT_SUBTYPE_DSS_VIDEO);
  1748. # define KSDATAFORMAT_SUBTYPE_DSS_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_VIDEO)
  1749. # define STATIC_KSDATAFORMAT_SUBTYPE_DSS_AUDIO \
  1750. 0xa0af4f82L, 0xe163, 0x11d0, 0xba, 0xd9, 0x00, 0x60, 0x97, 0x44, 0x11, 0x1a
  1751. DEFINE_GUIDSTRUCT("a0af4f82-e163-11d0-bad9-00609744111a", KSDATAFORMAT_SUBTYPE_DSS_AUDIO);
  1752. # define KSDATAFORMAT_SUBTYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_AUDIO)
  1753. # define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Packet \
  1754. 0xe436eb80, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70
  1755. DEFINE_GUIDSTRUCT("e436eb80-524f-11ce-9F53-0020af0ba770", KSDATAFORMAT_SUBTYPE_MPEG1Packet);
  1756. # define KSDATAFORMAT_SUBTYPE_MPEG1Packet DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Packet)
  1757. # define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Payload \
  1758. 0xe436eb81, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70
  1759. DEFINE_GUIDSTRUCT("e436eb81-524f-11ce-9F53-0020af0ba770", KSDATAFORMAT_SUBTYPE_MPEG1Payload);
  1760. # define KSDATAFORMAT_SUBTYPE_MPEG1Payload DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Payload)
  1761. # define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Video \
  1762. 0xe436eb86, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70
  1763. DEFINE_GUIDSTRUCT("e436eb86-524f-11ce-9f53-0020af0ba770", KSDATAFORMAT_SUBTYPE_MPEG1Video);
  1764. # define KSDATAFORMAT_SUBTYPE_MPEG1Video DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Video)
  1765. # define STATIC_KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO \
  1766. 0x05589f82L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a
  1767. DEFINE_GUIDSTRUCT("05589f82-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO);
  1768. # define KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO)
  1769. # define STATIC_KSDATAFORMAT_TYPE_MPEG2_PES \
  1770. 0xe06d8020L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1771. DEFINE_GUIDSTRUCT("e06d8020-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_TYPE_MPEG2_PES);
  1772. # define KSDATAFORMAT_TYPE_MPEG2_PES DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PES)
  1773. # define STATIC_KSDATAFORMAT_TYPE_MPEG2_PROGRAM \
  1774. 0xe06d8022L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1775. DEFINE_GUIDSTRUCT("e06d8022-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_TYPE_MPEG2_PROGRAM);
  1776. # define KSDATAFORMAT_TYPE_MPEG2_PROGRAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PROGRAM)
  1777. # define STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT \
  1778. 0xe06d8023L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1779. DEFINE_GUIDSTRUCT("e06d8023-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_TYPE_MPEG2_TRANSPORT);
  1780. # define KSDATAFORMAT_TYPE_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_TRANSPORT)
  1781. # define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO \
  1782. 0xe06d8026L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1783. DEFINE_GUIDSTRUCT("e06d8026-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO);
  1784. # define KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO)
  1785. # define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO \
  1786. 0xe06d80e3L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1787. DEFINE_GUIDSTRUCT("e06d80e3-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO);
  1788. # define KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO)
  1789. # define STATIC_KSPROPSETID_Mpeg2Vid \
  1790. 0xC8E11B60L, 0x0CC9, 0x11D0, 0xBD, 0x69, 0x00, 0x35, 0x05, 0xC1, 0x03, 0xA9
  1791. DEFINE_GUIDSTRUCT("C8E11B60-0CC9-11D0-BD69-003505C103A9", KSPROPSETID_Mpeg2Vid);
  1792. # define KSPROPSETID_Mpeg2Vid DEFINE_GUIDNAMED(KSPROPSETID_Mpeg2Vid)
  1793. typedef enum
  1794. {
  1795. KSPROPERTY_MPEG2VID_MODES,
  1796. KSPROPERTY_MPEG2VID_CUR_MODE,
  1797. KSPROPERTY_MPEG2VID_4_3_RECT,
  1798. KSPROPERTY_MPEG2VID_16_9_RECT,
  1799. KSPROPERTY_MPEG2VID_16_9_PANSCAN
  1800. }KSPROPERTY_MPEG2VID;
  1801. # define KSMPEGVIDMODE_PANSCAN 0x0001
  1802. # define KSMPEGVIDMODE_LTRBOX 0x0002
  1803. # define KSMPEGVIDMODE_SCALE 0x0004
  1804. typedef struct _KSMPEGVID_RECT
  1805. {
  1806. ULONG StartX;
  1807. ULONG StartY;
  1808. ULONG EndX;
  1809. ULONG EndY;
  1810. }KSMPEGVID_RECT, * PKSMPEGVID_RECT;
  1811. # define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO \
  1812. 0xe06d802bL, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1813. DEFINE_GUIDSTRUCT("e06d802b-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO);
  1814. # define KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO)
  1815. # define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO \
  1816. 0xe06d80e5L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1817. DEFINE_GUIDSTRUCT("e06d80e5-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO);
  1818. # define KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO)
  1819. # define STATIC_KSDATAFORMAT_SUBTYPE_LPCM_AUDIO \
  1820. 0xe06d8032L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1821. DEFINE_GUIDSTRUCT("e06d8032-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_LPCM_AUDIO);
  1822. # define KSDATAFORMAT_SUBTYPE_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_LPCM_AUDIO)
  1823. # define STATIC_KSDATAFORMAT_SPECIFIER_LPCM_AUDIO \
  1824. 0xe06d80e6L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1825. DEFINE_GUIDSTRUCT("e06d80e6-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_LPCM_AUDIO);
  1826. # define KSDATAFORMAT_SPECIFIER_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_LPCM_AUDIO)
  1827. # define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO \
  1828. 0xe06d802cL, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1829. DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_AC3_AUDIO);
  1830. # define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
  1831. # define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO \
  1832. 0xe06d80e4L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1833. DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SPECIFIER_AC3_AUDIO);
  1834. # define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
  1835. # define STATIC_KSPROPSETID_AC3 \
  1836. 0xBFABE720L, 0x6E1F, 0x11D0, 0xBC, 0xF2, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00
  1837. DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000", KSPROPSETID_AC3);
  1838. # define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
  1839. typedef enum
  1840. {
  1841. KSPROPERTY_AC3_ERROR_CONCEALMENT = 1,
  1842. KSPROPERTY_AC3_ALTERNATE_AUDIO,
  1843. KSPROPERTY_AC3_DOWNMIX,
  1844. KSPROPERTY_AC3_BIT_STREAM_MODE,
  1845. KSPROPERTY_AC3_DIALOGUE_LEVEL,
  1846. KSPROPERTY_AC3_LANGUAGE_CODE,
  1847. KSPROPERTY_AC3_ROOM_TYPE
  1848. }KSPROPERTY_AC3;
  1849. typedef struct
  1850. {
  1851. WINBOOL fRepeatPreviousBlock;
  1852. WINBOOL fErrorInCurrentBlock;
  1853. }KSAC3_ERROR_CONCEALMENT, * PKSAC3_ERROR_CONCEALMENT;
  1854. typedef struct
  1855. {
  1856. WINBOOL fStereo;
  1857. ULONG DualMode;
  1858. }KSAC3_ALTERNATE_AUDIO, * PKSAC3_ALTERNATE_AUDIO;
  1859. # define KSAC3_ALTERNATE_AUDIO_1 1
  1860. # define KSAC3_ALTERNATE_AUDIO_2 2
  1861. # define KSAC3_ALTERNATE_AUDIO_BOTH 3
  1862. typedef struct
  1863. {
  1864. WINBOOL fDownMix;
  1865. WINBOOL fDolbySurround;
  1866. }KSAC3_DOWNMIX, * PKSAC3_DOWNMIX;
  1867. typedef struct
  1868. {
  1869. LONG BitStreamMode;
  1870. }KSAC3_BIT_STREAM_MODE, * PKSAC3_BIT_STREAM_MODE;
  1871. # define KSAC3_SERVICE_MAIN_AUDIO 0
  1872. # define KSAC3_SERVICE_NO_DIALOG 1
  1873. # define KSAC3_SERVICE_VISUALLY_IMPAIRED 2
  1874. # define KSAC3_SERVICE_HEARING_IMPAIRED 3
  1875. # define KSAC3_SERVICE_DIALOG_ONLY 4
  1876. # define KSAC3_SERVICE_COMMENTARY 5
  1877. # define KSAC3_SERVICE_EMERGENCY_FLASH 6
  1878. # define KSAC3_SERVICE_VOICE_OVER 7
  1879. typedef struct
  1880. {
  1881. ULONG DialogueLevel;
  1882. }KSAC3_DIALOGUE_LEVEL, * PKSAC3_DIALOGUE_LEVEL;
  1883. typedef struct
  1884. {
  1885. WINBOOL fLargeRoom;
  1886. }KSAC3_ROOM_TYPE, * PKSAC3_ROOM_TYPE;
  1887. # define STATIC_KSDATAFORMAT_SUBTYPE_DTS_AUDIO \
  1888. 0xe06d8033L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1889. DEFINE_GUIDSTRUCT("e06d8033-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_DTS_AUDIO);
  1890. # define KSDATAFORMAT_SUBTYPE_DTS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DTS_AUDIO)
  1891. # define STATIC_KSDATAFORMAT_SUBTYPE_SDDS_AUDIO \
  1892. 0xe06d8034L, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1893. DEFINE_GUIDSTRUCT("e06d8034-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_SDDS_AUDIO);
  1894. # define KSDATAFORMAT_SUBTYPE_SDDS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SDDS_AUDIO)
  1895. # define STATIC_KSPROPSETID_AudioDecoderOut \
  1896. 0x6ca6e020L, 0x43bd, 0x11d0, 0xbd, 0x6a, 0x00, 0x35, 0x05, 0xc1, 0x03, 0xa9
  1897. DEFINE_GUIDSTRUCT("6ca6e020-43bd-11d0-bd6a-003505c103a9", KSPROPSETID_AudioDecoderOut);
  1898. # define KSPROPSETID_AudioDecoderOut DEFINE_GUIDNAMED(KSPROPSETID_AudioDecoderOut)
  1899. typedef enum
  1900. {
  1901. KSPROPERTY_AUDDECOUT_MODES,
  1902. KSPROPERTY_AUDDECOUT_CUR_MODE
  1903. }KSPROPERTY_AUDDECOUT;
  1904. # define KSAUDDECOUTMODE_STEREO_ANALOG 0x0001
  1905. # define KSAUDDECOUTMODE_PCM_51 0x0002
  1906. # define KSAUDDECOUTMODE_SPDIFF 0x0004
  1907. # define STATIC_KSDATAFORMAT_SUBTYPE_SUBPICTURE \
  1908. 0xe06d802dL, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea
  1909. DEFINE_GUIDSTRUCT("e06d802d-db46-11cf-b4d1-00805f6cbbea", KSDATAFORMAT_SUBTYPE_SUBPICTURE);
  1910. # define KSDATAFORMAT_SUBTYPE_SUBPICTURE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SUBPICTURE)
  1911. # define STATIC_KSPROPSETID_DvdSubPic \
  1912. 0xac390460L, 0x43af, 0x11d0, 0xbd, 0x6a, 0x00, 0x35, 0x05, 0xc1, 0x03, 0xa9
  1913. DEFINE_GUIDSTRUCT("ac390460-43af-11d0-bd6a-003505c103a9", KSPROPSETID_DvdSubPic);
  1914. # define KSPROPSETID_DvdSubPic DEFINE_GUIDNAMED(KSPROPSETID_DvdSubPic)
  1915. typedef enum
  1916. {
  1917. KSPROPERTY_DVDSUBPIC_PALETTE,
  1918. KSPROPERTY_DVDSUBPIC_HLI,
  1919. KSPROPERTY_DVDSUBPIC_COMPOSIT_ON
  1920. }KSPROPERTY_DVDSUBPIC;
  1921. typedef struct _KS_DVD_YCrCb
  1922. {
  1923. UCHAR Reserved;
  1924. UCHAR Y;
  1925. UCHAR Cr;
  1926. UCHAR Cb;
  1927. }KS_DVD_YCrCb, * PKS_DVD_YCrCb;
  1928. typedef struct _KS_DVD_YUV
  1929. {
  1930. UCHAR Reserved;
  1931. UCHAR Y;
  1932. UCHAR V;
  1933. UCHAR U;
  1934. }KS_DVD_YUV, * PKS_DVD_YUV;
  1935. typedef struct _KSPROPERTY_SPPAL
  1936. {
  1937. KS_DVD_YUV sppal[16];
  1938. }KSPROPERTY_SPPAL, * PKSPROPERTY_SPPAL;
  1939. typedef struct _KS_COLCON
  1940. {
  1941. UCHAR emph1col : 4;
  1942. UCHAR emph2col : 4;
  1943. UCHAR backcol : 4;
  1944. UCHAR patcol : 4;
  1945. UCHAR emph1con : 4;
  1946. UCHAR emph2con : 4;
  1947. UCHAR backcon : 4;
  1948. UCHAR patcon : 4;
  1949. }KS_COLCON, * PKS_COLCON;
  1950. typedef struct _KSPROPERTY_SPHLI
  1951. {
  1952. USHORT HLISS;
  1953. USHORT Reserved;
  1954. ULONG StartPTM;
  1955. ULONG EndPTM;
  1956. USHORT StartX;
  1957. USHORT StartY;
  1958. USHORT StopX;
  1959. USHORT StopY;
  1960. KS_COLCON ColCon;
  1961. }KSPROPERTY_SPHLI, * PKSPROPERTY_SPHLI;
  1962. typedef WINBOOL KSPROPERTY_COMPOSIT_ON, * PKSPROPERTY_COMPOSIT_ON;
  1963. # define STATIC_KSPROPSETID_CopyProt \
  1964. 0x0E8A0A40L, 0x6AEF, 0x11D0, 0x9E, 0xD0, 0x00, 0xA0, 0x24, 0xCA, 0x19, 0xB3
  1965. DEFINE_GUIDSTRUCT("0E8A0A40-6AEF-11D0-9ED0-00A024CA19B3", KSPROPSETID_CopyProt);
  1966. # define KSPROPSETID_CopyProt DEFINE_GUIDNAMED(KSPROPSETID_CopyProt)
  1967. typedef enum
  1968. {
  1969. KSPROPERTY_DVDCOPY_CHLG_KEY = 0x01,
  1970. KSPROPERTY_DVDCOPY_DVD_KEY1,
  1971. KSPROPERTY_DVDCOPY_DEC_KEY2,
  1972. KSPROPERTY_DVDCOPY_TITLE_KEY,
  1973. KSPROPERTY_COPY_MACROVISION,
  1974. KSPROPERTY_DVDCOPY_REGION,
  1975. KSPROPERTY_DVDCOPY_SET_COPY_STATE,
  1976. KSPROPERTY_DVDCOPY_DISC_KEY = 0x80
  1977. }KSPROPERTY_COPYPROT;
  1978. typedef struct _KS_DVDCOPY_CHLGKEY
  1979. {
  1980. BYTE ChlgKey[10];
  1981. BYTE Reserved[2];
  1982. }KS_DVDCOPY_CHLGKEY, * PKS_DVDCOPY_CHLGKEY;
  1983. typedef struct _KS_DVDCOPY_BUSKEY
  1984. {
  1985. BYTE BusKey[5];
  1986. BYTE Reserved[1];
  1987. }KS_DVDCOPY_BUSKEY, * PKS_DVDCOPY_BUSKEY;
  1988. typedef struct _KS_DVDCOPY_DISCKEY
  1989. {
  1990. BYTE DiscKey[2048];
  1991. }KS_DVDCOPY_DISCKEY, * PKS_DVDCOPY_DISCKEY;
  1992. typedef struct _KS_DVDCOPY_REGION
  1993. {
  1994. UCHAR Reserved;
  1995. UCHAR RegionData;
  1996. UCHAR Reserved2[2];
  1997. }KS_DVDCOPY_REGION, * PKS_DVDCOPY_REGION;
  1998. typedef struct _KS_DVDCOPY_TITLEKEY
  1999. {
  2000. ULONG KeyFlags;
  2001. ULONG ReservedNT[2];
  2002. UCHAR TitleKey[6];
  2003. UCHAR Reserved[2];
  2004. }KS_DVDCOPY_TITLEKEY, * PKS_DVDCOPY_TITLEKEY;
  2005. typedef struct _KS_COPY_MACROVISION
  2006. {
  2007. ULONG MACROVISIONLevel;
  2008. }KS_COPY_MACROVISION, * PKS_COPY_MACROVISION;
  2009. typedef struct _KS_DVDCOPY_SET_COPY_STATE
  2010. {
  2011. ULONG DVDCopyState;
  2012. }KS_DVDCOPY_SET_COPY_STATE, * PKS_DVDCOPY_SET_COPY_STATE;
  2013. typedef enum
  2014. {
  2015. KS_DVDCOPYSTATE_INITIALIZE,
  2016. KS_DVDCOPYSTATE_INITIALIZE_TITLE,
  2017. KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED,
  2018. KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED,
  2019. KS_DVDCOPYSTATE_DONE
  2020. }KS_DVDCOPYSTATE;
  2021. typedef enum
  2022. {
  2023. KS_MACROVISION_DISABLED,
  2024. KS_MACROVISION_LEVEL1,
  2025. KS_MACROVISION_LEVEL2,
  2026. KS_MACROVISION_LEVEL3
  2027. }KS_COPY_MACROVISION_LEVEL, * PKS_COPY_MACROVISION_LEVEL;
  2028. # define KS_DVD_CGMS_RESERVED_MASK 0x00000078
  2029. # define KS_DVD_CGMS_COPY_PROTECT_MASK 0x00000018
  2030. # define KS_DVD_CGMS_COPY_PERMITTED 0x00000000
  2031. # define KS_DVD_CGMS_COPY_ONCE 0x00000010
  2032. # define KS_DVD_CGMS_NO_COPY 0x00000018
  2033. # define KS_DVD_COPYRIGHT_MASK 0x00000040
  2034. # define KS_DVD_NOT_COPYRIGHTED 0x00000000
  2035. # define KS_DVD_COPYRIGHTED 0x00000040
  2036. # define KS_DVD_SECTOR_PROTECT_MASK 0x00000020
  2037. # define KS_DVD_SECTOR_NOT_PROTECTED 0x00000000
  2038. # define KS_DVD_SECTOR_PROTECTED 0x00000020
  2039. # define STATIC_KSCATEGORY_TVTUNER \
  2040. 0xa799a800L, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4
  2041. DEFINE_GUIDSTRUCT("a799a800-a46d-11d0-a18c-00a02401dcd4", KSCATEGORY_TVTUNER);
  2042. # define KSCATEGORY_TVTUNER DEFINE_GUIDNAMED(KSCATEGORY_TVTUNER)
  2043. # define STATIC_KSCATEGORY_CROSSBAR \
  2044. 0xa799a801L, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4
  2045. DEFINE_GUIDSTRUCT("a799a801-a46d-11d0-a18c-00a02401dcd4", KSCATEGORY_CROSSBAR);
  2046. # define KSCATEGORY_CROSSBAR DEFINE_GUIDNAMED(KSCATEGORY_CROSSBAR)
  2047. # define STATIC_KSCATEGORY_TVAUDIO \
  2048. 0xa799a802L, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4
  2049. DEFINE_GUIDSTRUCT("a799a802-a46d-11d0-a18c-00a02401dcd4", KSCATEGORY_TVAUDIO);
  2050. # define KSCATEGORY_TVAUDIO DEFINE_GUIDNAMED(KSCATEGORY_TVAUDIO)
  2051. # define STATIC_KSCATEGORY_VPMUX \
  2052. 0xa799a803L, 0xa46d, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0x24, 0x01, 0xdc, 0xd4
  2053. DEFINE_GUIDSTRUCT("a799a803-a46d-11d0-a18c-00a02401dcd4", KSCATEGORY_VPMUX);
  2054. # define KSCATEGORY_VPMUX DEFINE_GUIDNAMED(KSCATEGORY_VPMUX)
  2055. # define STATIC_KSCATEGORY_VBICODEC \
  2056. 0x07dad660L, 0x22f1, 0x11d1, 0xa9, 0xf4, 0x00, 0xc0, 0x4f, 0xbb, 0xde, 0x8f
  2057. DEFINE_GUIDSTRUCT("07dad660-22f1-11d1-a9f4-00c04fbbde8f", KSCATEGORY_VBICODEC);
  2058. # define KSCATEGORY_VBICODEC DEFINE_GUIDNAMED(KSCATEGORY_VBICODEC)
  2059. # define STATIC_KSDATAFORMAT_SUBTYPE_VPVideo \
  2060. 0x5a9b6a40L, 0x1a22, 0x11d1, 0xba, 0xd9, 0x0, 0x60, 0x97, 0x44, 0x11, 0x1a
  2061. DEFINE_GUIDSTRUCT("5a9b6a40-1a22-11d1-bad9-00609744111a", KSDATAFORMAT_SUBTYPE_VPVideo);
  2062. # define KSDATAFORMAT_SUBTYPE_VPVideo DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVideo)
  2063. # define STATIC_KSDATAFORMAT_SUBTYPE_VPVBI \
  2064. 0x5a9b6a41L, 0x1a22, 0x11d1, 0xba, 0xd9, 0x0, 0x60, 0x97, 0x44, 0x11, 0x1a
  2065. DEFINE_GUIDSTRUCT("5a9b6a41-1a22-11d1-bad9-00609744111a", KSDATAFORMAT_SUBTYPE_VPVBI);
  2066. # define KSDATAFORMAT_SUBTYPE_VPVBI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVBI)
  2067. # define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \
  2068. 0x05589f80L, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a
  2069. DEFINE_GUIDSTRUCT("05589f80-c356-11ce-bf01-00aa0055595a", KSDATAFORMAT_SPECIFIER_VIDEOINFO);
  2070. # define KSDATAFORMAT_SPECIFIER_VIDEOINFO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO)
  2071. # define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO2 \
  2072. 0xf72a76A0L, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba
  2073. DEFINE_GUIDSTRUCT("f72a76A0-eb0a-11d0-ace4-0000c0cc16ba", KSDATAFORMAT_SPECIFIER_VIDEOINFO2);
  2074. # define KSDATAFORMAT_SPECIFIER_VIDEOINFO2 DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO2)
  2075. # define STATIC_KSDATAFORMAT_TYPE_ANALOGVIDEO \
  2076. 0x0482dde1L, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65
  2077. DEFINE_GUIDSTRUCT("0482dde1-7817-11cf-8a03-00aa006ecb65", KSDATAFORMAT_TYPE_ANALOGVIDEO);
  2078. # define KSDATAFORMAT_TYPE_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGVIDEO)
  2079. # define STATIC_KSDATAFORMAT_SPECIFIER_ANALOGVIDEO \
  2080. 0x0482dde0L, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65
  2081. DEFINE_GUIDSTRUCT("0482dde0-7817-11cf-8a03-00aa006ecb65", KSDATAFORMAT_SPECIFIER_ANALOGVIDEO);
  2082. # define KSDATAFORMAT_SPECIFIER_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO)
  2083. # define STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO \
  2084. 0x0482dee1L, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65
  2085. DEFINE_GUIDSTRUCT("0482DEE1-7817-11cf-8a03-00aa006ecb65", KSDATAFORMAT_TYPE_ANALOGAUDIO);
  2086. # define KSDATAFORMAT_TYPE_ANALOGAUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGAUDIO)
  2087. # define STATIC_KSDATAFORMAT_SPECIFIER_VBI \
  2088. 0xf72a76e0L, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba
  2089. DEFINE_GUIDSTRUCT("f72a76e0-eb0a-11d0-ace4-0000c0cc16ba", KSDATAFORMAT_SPECIFIER_VBI);
  2090. # define KSDATAFORMAT_SPECIFIER_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VBI)
  2091. # define STATIC_KSDATAFORMAT_TYPE_VBI \
  2092. 0xf72a76e1L, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba
  2093. DEFINE_GUIDSTRUCT("f72a76e1-eb0a-11d0-ace4-0000c0cc16ba", KSDATAFORMAT_TYPE_VBI);
  2094. # define KSDATAFORMAT_TYPE_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VBI)
  2095. # define STATIC_KSDATAFORMAT_SUBTYPE_RAW8 \
  2096. 0xca20d9a0, 0x3e3e, 0x11d1, 0x9b, 0xf9, 0x0, 0xc0, 0x4f, 0xbb, 0xde, 0xbf
  2097. DEFINE_GUIDSTRUCT("ca20d9a0-3e3e-11d1-9bf9-00c04fbbdebf", KSDATAFORMAT_SUBTYPE_RAW8);
  2098. # define KSDATAFORMAT_SUBTYPE_RAW8 DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RAW8)
  2099. # define STATIC_KSDATAFORMAT_SUBTYPE_CC \
  2100. 0x33214cc1, 0x11f, 0x11d2, 0xb4, 0xb1, 0x0, 0xa0, 0xd1, 0x2, 0xcf, 0xbe
  2101. DEFINE_GUIDSTRUCT("33214CC1-011F-11D2-B4B1-00A0D102CFBE", KSDATAFORMAT_SUBTYPE_CC);
  2102. # define KSDATAFORMAT_SUBTYPE_CC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_CC)
  2103. # define STATIC_KSDATAFORMAT_SUBTYPE_NABTS \
  2104. 0xf72a76e2L, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba
  2105. DEFINE_GUIDSTRUCT("f72a76e2-eb0a-11d0-ace4-0000c0cc16ba", KSDATAFORMAT_SUBTYPE_NABTS);
  2106. # define KSDATAFORMAT_SUBTYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS)
  2107. # define STATIC_KSDATAFORMAT_SUBTYPE_TELETEXT \
  2108. 0xf72a76e3L, 0xeb0a, 0x11d0, 0xac, 0xe4, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba
  2109. DEFINE_GUIDSTRUCT("f72a76e3-eb0a-11d0-ace4-0000c0cc16ba", KSDATAFORMAT_SUBTYPE_TELETEXT);
  2110. # define KSDATAFORMAT_SUBTYPE_TELETEXT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_TELETEXT)
  2111. # define KS_BI_RGB 0L
  2112. # define KS_BI_RLE8 1L
  2113. # define KS_BI_RLE4 2L
  2114. # define KS_BI_BITFIELDS 3L
  2115. typedef struct tagKS_RGBQUAD
  2116. {
  2117. BYTE rgbBlue;
  2118. BYTE rgbGreen;
  2119. BYTE rgbRed;
  2120. BYTE rgbReserved;
  2121. }KS_RGBQUAD, * PKS_RGBQUAD;
  2122. # define KS_iPALETTE_COLORS 256
  2123. # define KS_iEGA_COLORS 16
  2124. # define KS_iMASK_COLORS 3
  2125. # define KS_iTRUECOLOR 16
  2126. # define KS_iRED 0
  2127. # define KS_iGREEN 1
  2128. # define KS_iBLUE 2
  2129. # define KS_iPALETTE 8
  2130. # define KS_iMAXBITS 8
  2131. # define KS_SIZE_EGA_PALETTE (KS_iEGA_COLORS * sizeof(KS_RGBQUAD))
  2132. # define KS_SIZE_PALETTE (KS_iPALETTE_COLORS * sizeof(KS_RGBQUAD))
  2133. typedef struct tagKS_BITMAPINFOHEADER
  2134. {
  2135. DWORD biSize;
  2136. LONG biWidth;
  2137. LONG biHeight;
  2138. WORD biPlanes;
  2139. WORD biBitCount;
  2140. DWORD biCompression;
  2141. DWORD biSizeImage;
  2142. LONG biXPelsPerMeter;
  2143. LONG biYPelsPerMeter;
  2144. DWORD biClrUsed;
  2145. DWORD biClrImportant;
  2146. }KS_BITMAPINFOHEADER, * PKS_BITMAPINFOHEADER;
  2147. typedef struct tag_KS_TRUECOLORINFO
  2148. {
  2149. DWORD dwBitMasks[KS_iMASK_COLORS];
  2150. KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
  2151. }KS_TRUECOLORINFO, * PKS_TRUECOLORINFO;
  2152. # define KS_WIDTHBYTES(bits) ((DWORD)(((bits) + 31) & (~31)) / 8)
  2153. # define KS_DIBWIDTHBYTES(bi) (DWORD)KS_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
  2154. # define KS__DIBSIZE(bi) (KS_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
  2155. # define KS_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1) * (KS__DIBSIZE(bi)) : KS__DIBSIZE(bi))
  2156. typedef LONGLONG REFERENCE_TIME;
  2157. typedef struct tagKS_VIDEOINFOHEADER
  2158. {
  2159. RECT rcSource;
  2160. RECT rcTarget;
  2161. DWORD dwBitRate;
  2162. DWORD dwBitErrorRate;
  2163. REFERENCE_TIME AvgTimePerFrame;
  2164. KS_BITMAPINFOHEADER bmiHeader;
  2165. }KS_VIDEOINFOHEADER, * PKS_VIDEOINFOHEADER;
  2166. typedef struct tagKS_VIDEOINFO
  2167. {
  2168. RECT rcSource;
  2169. RECT rcTarget;
  2170. DWORD dwBitRate;
  2171. DWORD dwBitErrorRate;
  2172. REFERENCE_TIME AvgTimePerFrame;
  2173. KS_BITMAPINFOHEADER bmiHeader;
  2174. __MINGW_EXTENSION union
  2175. {
  2176. KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
  2177. DWORD dwBitMasks[KS_iMASK_COLORS];
  2178. KS_TRUECOLORINFO TrueColorInfo;
  2179. };
  2180. }KS_VIDEOINFO, * PKS_VIDEOINFO;
  2181. # define KS_SIZE_MASKS (KS_iMASK_COLORS * sizeof(DWORD))
  2182. # define KS_SIZE_PREHEADER (FIELD_OFFSET(KS_VIDEOINFOHEADER, bmiHeader))
  2183. # define KS_SIZE_VIDEOHEADER(pbmi) ((pbmi)->bmiHeader.biSize + KS_SIZE_PREHEADER)
  2184. typedef struct tagKS_VBIINFOHEADER
  2185. {
  2186. ULONG StartLine;
  2187. ULONG EndLine;
  2188. ULONG SamplingFrequency;
  2189. ULONG MinLineStartTime;
  2190. ULONG MaxLineStartTime;
  2191. ULONG ActualLineStartTime;
  2192. ULONG ActualLineEndTime;
  2193. ULONG VideoStandard;
  2194. ULONG SamplesPerLine;
  2195. ULONG StrideInBytes;
  2196. ULONG BufferSize;
  2197. }KS_VBIINFOHEADER, * PKS_VBIINFOHEADER;
  2198. # define KS_VBIDATARATE_NABTS (5727272L)
  2199. # define KS_VBIDATARATE_CC (503493L)
  2200. # define KS_VBISAMPLINGRATE_4X_NABTS ((long)(4 * KS_VBIDATARATE_NABTS))
  2201. # define KS_VBISAMPLINGRATE_47X_NABTS ((long)(27000000))
  2202. # define KS_VBISAMPLINGRATE_5X_NABTS ((long)(5 * KS_VBIDATARATE_NABTS))
  2203. # define KS_47NABTS_SCALER (KS_VBISAMPLINGRATE_47X_NABTS / (double)KS_VBIDATARATE_NABTS)
  2204. typedef struct tagKS_AnalogVideoInfo
  2205. {
  2206. RECT rcSource;
  2207. RECT rcTarget;
  2208. DWORD dwActiveWidth;
  2209. DWORD dwActiveHeight;
  2210. REFERENCE_TIME AvgTimePerFrame;
  2211. }KS_ANALOGVIDEOINFO, * PKS_ANALOGVIDEOINFO;
  2212. # define KS_TVTUNER_CHANGE_BEGIN_TUNE 0x0001L
  2213. # define KS_TVTUNER_CHANGE_END_TUNE 0x0002L
  2214. typedef struct tagKS_TVTUNER_CHANGE_INFO
  2215. {
  2216. DWORD dwFlags;
  2217. DWORD dwCountryCode;
  2218. DWORD dwAnalogVideoStandard;
  2219. DWORD dwChannel;
  2220. }KS_TVTUNER_CHANGE_INFO, * PKS_TVTUNER_CHANGE_INFO;
  2221. typedef enum
  2222. {
  2223. KS_MPEG2Level_Low,
  2224. KS_MPEG2Level_Main,
  2225. KS_MPEG2Level_High1440,
  2226. KS_MPEG2Level_High
  2227. }KS_MPEG2Level;
  2228. typedef enum
  2229. {
  2230. KS_MPEG2Profile_Simple,
  2231. KS_MPEG2Profile_Main,
  2232. KS_MPEG2Profile_SNRScalable,
  2233. KS_MPEG2Profile_SpatiallyScalable,
  2234. KS_MPEG2Profile_High
  2235. }KS_MPEG2Profile;
  2236. # define KS_INTERLACE_IsInterlaced 0x00000001
  2237. # define KS_INTERLACE_1FieldPerSample 0x00000002
  2238. # define KS_INTERLACE_Field1First 0x00000004
  2239. # define KS_INTERLACE_UNUSED 0x00000008
  2240. # define KS_INTERLACE_FieldPatternMask 0x00000030
  2241. # define KS_INTERLACE_FieldPatField1Only 0x00000000
  2242. # define KS_INTERLACE_FieldPatField2Only 0x00000010
  2243. # define KS_INTERLACE_FieldPatBothRegular 0x00000020
  2244. # define KS_INTERLACE_FieldPatBothIrregular 0x00000030
  2245. # define KS_INTERLACE_DisplayModeMask 0x000000c0
  2246. # define KS_INTERLACE_DisplayModeBobOnly 0x00000000
  2247. # define KS_INTERLACE_DisplayModeWeaveOnly 0x00000040
  2248. # define KS_INTERLACE_DisplayModeBobOrWeave 0x00000080
  2249. # define KS_MPEG2_DoPanScan 0x00000001
  2250. # define KS_MPEG2_DVDLine21Field1 0x00000002
  2251. # define KS_MPEG2_DVDLine21Field2 0x00000004
  2252. # define KS_MPEG2_SourceIsLetterboxed 0x00000008
  2253. # define KS_MPEG2_FilmCameraMode 0x00000010
  2254. # define KS_MPEG2_LetterboxAnalogOut 0x00000020
  2255. # define KS_MPEG2_DSS_UserData 0x00000040
  2256. # define KS_MPEG2_DVB_UserData 0x00000080
  2257. # define KS_MPEG2_27MhzTimebase 0x00000100
  2258. typedef struct tagKS_VIDEOINFOHEADER2
  2259. {
  2260. RECT rcSource;
  2261. RECT rcTarget;
  2262. DWORD dwBitRate;
  2263. DWORD dwBitErrorRate;
  2264. REFERENCE_TIME AvgTimePerFrame;
  2265. DWORD dwInterlaceFlags;
  2266. DWORD dwCopyProtectFlags;
  2267. DWORD dwPictAspectRatioX;
  2268. DWORD dwPictAspectRatioY;
  2269. DWORD dwReserved1;
  2270. DWORD dwReserved2;
  2271. KS_BITMAPINFOHEADER bmiHeader;
  2272. }KS_VIDEOINFOHEADER2, * PKS_VIDEOINFOHEADER2;
  2273. typedef struct tagKS_MPEG1VIDEOINFO
  2274. {
  2275. KS_VIDEOINFOHEADER hdr;
  2276. DWORD dwStartTimeCode;
  2277. DWORD cbSequenceHeader;
  2278. BYTE bSequenceHeader[1];
  2279. }KS_MPEG1VIDEOINFO, * PKS_MPEG1VIDEOINFO;
  2280. # define KS_MAX_SIZE_MPEG1_SEQUENCE_INFO 140
  2281. # define KS_SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(KS_MPEG1VIDEOINFO, bSequenceHeader[0]) + (pv)->cbSequenceHeader)
  2282. # define KS_MPEG1_SEQUENCE_INFO(pv) ((const BYTE*)(pv)->bSequenceHeader)
  2283. typedef struct tagKS_MPEGVIDEOINFO2
  2284. {
  2285. KS_VIDEOINFOHEADER2 hdr;
  2286. DWORD dwStartTimeCode;
  2287. DWORD cbSequenceHeader;
  2288. DWORD dwProfile;
  2289. DWORD dwLevel;
  2290. DWORD dwFlags;
  2291. DWORD bSequenceHeader[1];
  2292. }KS_MPEGVIDEOINFO2, * PKS_MPEGVIDEOINFO2;
  2293. # define KS_SIZE_MPEGVIDEOINFO2(pv) (FIELD_OFFSET(KS_MPEGVIDEOINFO2, bSequenceHeader[0]) + (pv)->cbSequenceHeader)
  2294. # define KS_MPEG1_SEQUENCE_INFO(pv) ((const BYTE*)(pv)->bSequenceHeader)
  2295. # define KS_MPEGAUDIOINFO_27MhzTimebase 0x00000001
  2296. typedef struct tagKS_MPEAUDIOINFO
  2297. {
  2298. DWORD dwFlags;
  2299. DWORD dwReserved1;
  2300. DWORD dwReserved2;
  2301. DWORD dwReserved3;
  2302. }KS_MPEGAUDIOINFO, * PKS_MPEGAUDIOINFO;
  2303. typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER
  2304. {
  2305. KSDATAFORMAT DataFormat;
  2306. KS_VIDEOINFOHEADER VideoInfoHeader;
  2307. }KS_DATAFORMAT_VIDEOINFOHEADER, * PKS_DATAFORMAT_VIDEOINFOHEADER;
  2308. typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER2
  2309. {
  2310. KSDATAFORMAT DataFormat;
  2311. KS_VIDEOINFOHEADER2 VideoInfoHeader2;
  2312. }KS_DATAFORMAT_VIDEOINFOHEADER2, * PKS_DATAFORMAT_VIDEOINFOHEADER2;
  2313. typedef struct tagKS_DATAFORMAT_VIDEOINFO_PALETTE
  2314. {
  2315. KSDATAFORMAT DataFormat;
  2316. KS_VIDEOINFO VideoInfo;
  2317. }KS_DATAFORMAT_VIDEOINFO_PALETTE, * PKS_DATAFORMAT_VIDEOINFO_PALETTE;
  2318. typedef struct tagKS_DATAFORMAT_VBIINFOHEADER
  2319. {
  2320. KSDATAFORMAT DataFormat;
  2321. KS_VBIINFOHEADER VBIInfoHeader;
  2322. }KS_DATAFORMAT_VBIINFOHEADER, * PKS_DATAFORMAT_VBIINFOHEADER;
  2323. typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS
  2324. {
  2325. GUID guid;
  2326. ULONG VideoStandard;
  2327. SIZE InputSize;
  2328. SIZE MinCroppingSize;
  2329. SIZE MaxCroppingSize;
  2330. int CropGranularityX;
  2331. int CropGranularityY;
  2332. int CropAlignX;
  2333. int CropAlignY;
  2334. SIZE MinOutputSize;
  2335. SIZE MaxOutputSize;
  2336. int OutputGranularityX;
  2337. int OutputGranularityY;
  2338. int StretchTapsX;
  2339. int StretchTapsY;
  2340. int ShrinkTapsX;
  2341. int ShrinkTapsY;
  2342. LONGLONG MinFrameInterval;
  2343. LONGLONG MaxFrameInterval;
  2344. LONG MinBitsPerSecond;
  2345. LONG MaxBitsPerSecond;
  2346. }KS_VIDEO_STREAM_CONFIG_CAPS, * PKS_VIDEO_STREAM_CONFIG_CAPS;
  2347. typedef struct tagKS_DATARANGE_VIDEO
  2348. {
  2349. KSDATARANGE DataRange;
  2350. WINBOOL bFixedSizeSamples;
  2351. WINBOOL bTemporalCompression;
  2352. DWORD StreamDescriptionFlags;
  2353. DWORD MemoryAllocationFlags;
  2354. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2355. KS_VIDEOINFOHEADER VideoInfoHeader;
  2356. }KS_DATARANGE_VIDEO, * PKS_DATARANGE_VIDEO;
  2357. typedef struct tagKS_DATARANGE_VIDEO2
  2358. {
  2359. KSDATARANGE DataRange;
  2360. WINBOOL bFixedSizeSamples;
  2361. WINBOOL bTemporalCompression;
  2362. DWORD StreamDescriptionFlags;
  2363. DWORD MemoryAllocationFlags;
  2364. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2365. KS_VIDEOINFOHEADER2 VideoInfoHeader;
  2366. }KS_DATARANGE_VIDEO2, * PKS_DATARANGE_VIDEO2;
  2367. typedef struct tagKS_DATARANGE_MPEG1_VIDEO
  2368. {
  2369. KSDATARANGE DataRange;
  2370. WINBOOL bFixedSizeSamples;
  2371. WINBOOL bTemporalCompression;
  2372. DWORD StreamDescriptionFlags;
  2373. DWORD MemoryAllocationFlags;
  2374. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2375. KS_MPEG1VIDEOINFO VideoInfoHeader;
  2376. }KS_DATARANGE_MPEG1_VIDEO, * PKS_DATARANGE_MPEG1_VIDEO;
  2377. typedef struct tagKS_DATARANGE_MPEG2_VIDEO
  2378. {
  2379. KSDATARANGE DataRange;
  2380. WINBOOL bFixedSizeSamples;
  2381. WINBOOL bTemporalCompression;
  2382. DWORD StreamDescriptionFlags;
  2383. DWORD MemoryAllocationFlags;
  2384. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2385. KS_MPEGVIDEOINFO2 VideoInfoHeader;
  2386. }KS_DATARANGE_MPEG2_VIDEO, * PKS_DATARANGE_MPEG2_VIDEO;
  2387. typedef struct tagKS_DATARANGE_VIDEO_PALETTE
  2388. {
  2389. KSDATARANGE DataRange;
  2390. WINBOOL bFixedSizeSamples;
  2391. WINBOOL bTemporalCompression;
  2392. DWORD StreamDescriptionFlags;
  2393. DWORD MemoryAllocationFlags;
  2394. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2395. KS_VIDEOINFO VideoInfo;
  2396. }KS_DATARANGE_VIDEO_PALETTE, * PKS_DATARANGE_VIDEO_PALETTE;
  2397. typedef struct tagKS_DATARANGE_VIDEO_VBI
  2398. {
  2399. KSDATARANGE DataRange;
  2400. WINBOOL bFixedSizeSamples;
  2401. WINBOOL bTemporalCompression;
  2402. DWORD StreamDescriptionFlags;
  2403. DWORD MemoryAllocationFlags;
  2404. KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
  2405. KS_VBIINFOHEADER VBIInfoHeader;
  2406. }KS_DATARANGE_VIDEO_VBI, * PKS_DATARANGE_VIDEO_VBI;
  2407. typedef struct tagKS_DATARANGE_ANALOGVIDEO
  2408. {
  2409. KSDATARANGE DataRange;
  2410. KS_ANALOGVIDEOINFO AnalogVideoInfo;
  2411. }KS_DATARANGE_ANALOGVIDEO, * PKS_DATARANGE_ANALOGVIDEO;
  2412. # define KS_VIDEOSTREAM_PREVIEW 0x0001
  2413. # define KS_VIDEOSTREAM_CAPTURE 0x0002
  2414. # define KS_VIDEOSTREAM_VBI 0x0010
  2415. # define KS_VIDEOSTREAM_NABTS 0x0020
  2416. # define KS_VIDEOSTREAM_CC 0x0100
  2417. # define KS_VIDEOSTREAM_EDS 0x0200
  2418. # define KS_VIDEOSTREAM_TELETEXT 0x0400
  2419. # define KS_VIDEOSTREAM_STILL 0x1000
  2420. # define KS_VIDEOSTREAM_IS_VPE 0x8000
  2421. # define KS_VIDEO_ALLOC_VPE_SYSTEM 0x0001
  2422. # define KS_VIDEO_ALLOC_VPE_DISPLAY 0x0002
  2423. # define KS_VIDEO_ALLOC_VPE_AGP 0x0004
  2424. # define STATIC_KSPROPSETID_VBICAP_PROPERTIES \
  2425. 0xf162c607, 0x7b35, 0x496f, 0xad, 0x7f, 0x2d, 0xca, 0x3b, 0x46, 0xb7, 0x18
  2426. DEFINE_GUIDSTRUCT("F162C607-7B35-496f-AD7F-2DCA3B46B718", KSPROPSETID_VBICAP_PROPERTIES);
  2427. # define KSPROPSETID_VBICAP_PROPERTIES DEFINE_GUIDNAMED(KSPROPSETID_VBICAP_PROPERTIES)
  2428. typedef enum
  2429. {
  2430. KSPROPERTY_VBICAP_PROPERTIES_PROTECTION = 0x01
  2431. }KSPROPERTY_VBICAP;
  2432. typedef struct _VBICAP_PROPERTIES_PROTECTION_S
  2433. {
  2434. KSPROPERTY Property;
  2435. ULONG StreamIndex;
  2436. ULONG Status;
  2437. }VBICAP_PROPERTIES_PROTECTION_S, * PVBICAP_PROPERTIES_PROTECTION_S;
  2438. # define KS_VBICAP_PROTECTION_MV_PRESENT 0x0001L
  2439. # define KS_VBICAP_PROTECTION_MV_HARDWARE 0x0002L
  2440. # define KS_VBICAP_PROTECTION_MV_DETECTED 0x0004L
  2441. # define KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE 0x800
  2442. # define KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE 0x810
  2443. # define KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE 0x820
  2444. # define KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE 0x830
  2445. # define KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE 0x840
  2446. # define KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE 0x850
  2447. # define KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE 0x860
  2448. # define KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE 0x870
  2449. # define KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE 0x880
  2450. # define KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE 0x890
  2451. # define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE 0x8A0
  2452. # define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE 0x8B0
  2453. # define KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE 0x8F0
  2454. # define STATIC_KSDATAFORMAT_TYPE_NABTS \
  2455. 0xe757bca0, 0x39ac, 0x11d1, 0xa9, 0xf5, 0x0, 0xc0, 0x4f, 0xbb, 0xde, 0x8f
  2456. DEFINE_GUIDSTRUCT("E757BCA0-39AC-11d1-A9F5-00C04FBBDE8F", KSDATAFORMAT_TYPE_NABTS);
  2457. # define KSDATAFORMAT_TYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_NABTS)
  2458. # define STATIC_KSDATAFORMAT_SUBTYPE_NABTS_FEC \
  2459. 0xe757bca1, 0x39ac, 0x11d1, 0xa9, 0xf5, 0x0, 0xc0, 0x4f, 0xbb, 0xde, 0x8f
  2460. DEFINE_GUIDSTRUCT("E757BCA1-39AC-11d1-A9F5-00C04FBBDE8F", KSDATAFORMAT_SUBTYPE_NABTS_FEC);
  2461. # define KSDATAFORMAT_SUBTYPE_NABTS_FEC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS_FEC)
  2462. # define MAX_NABTS_VBI_LINES_PER_FIELD 11
  2463. # define NABTS_LINES_PER_BUNDLE 16
  2464. # define NABTS_PAYLOAD_PER_LINE 28
  2465. # define NABTS_BYTES_PER_LINE 36
  2466. typedef struct _NABTSFEC_BUFFER
  2467. {
  2468. ULONG dataSize;
  2469. USHORT groupID;
  2470. USHORT Reserved;
  2471. UCHAR data[NABTS_LINES_PER_BUNDLE * NABTS_PAYLOAD_PER_LINE];
  2472. }NABTSFEC_BUFFER, * PNABTSFEC_BUFFER;
  2473. # define STATIC_KSPROPSETID_VBICodecFiltering \
  2474. 0xcafeb0caL, 0x8715, 0x11d0, 0xbd, 0x6a, 0x00, 0x35, 0xc0, 0xed, 0xba, 0xbe
  2475. DEFINE_GUIDSTRUCT("cafeb0ca-8715-11d0-bd6a-0035c0edbabe", KSPROPSETID_VBICodecFiltering);
  2476. # define KSPROPSETID_VBICodecFiltering DEFINE_GUIDNAMED(KSPROPSETID_VBICodecFiltering)
  2477. typedef enum
  2478. {
  2479. KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY = 0x01,
  2480. KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY,
  2481. KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY,
  2482. KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY,
  2483. KSPROPERTY_VBICODECFILTERING_STATISTICS
  2484. }KSPROPERTY_VBICODECFILTERING;
  2485. typedef struct _VBICODECFILTERING_SCANLINES
  2486. {
  2487. DWORD DwordBitArray[32];
  2488. }VBICODECFILTERING_SCANLINES, * PVBICODECFILTERING_SCANLINES;
  2489. typedef struct _VBICODECFILTERING_NABTS_SUBSTREAMS
  2490. {
  2491. DWORD SubstreamMask[128];
  2492. }VBICODECFILTERING_NABTS_SUBSTREAMS, * PVBICODECFILTERING_NABTS_SUBSTREAMS;
  2493. typedef struct _VBICODECFILTERING_CC_SUBSTREAMS
  2494. {
  2495. DWORD SubstreamMask;
  2496. }VBICODECFILTERING_CC_SUBSTREAMS, * PVBICODECFILTERING_CC_SUBSTREAMS;
  2497. # define KS_CC_SUBSTREAM_ODD 0x0001L
  2498. # define KS_CC_SUBSTREAM_EVEN 0x0002L
  2499. # define KS_CC_SUBSTREAM_FIELD1_MASK 0x00F0L
  2500. # define KS_CC_SUBSTREAM_SERVICE_CC1 0x0010L
  2501. # define KS_CC_SUBSTREAM_SERVICE_CC2 0x0020L
  2502. # define KS_CC_SUBSTREAM_SERVICE_T1 0x0040L
  2503. # define KS_CC_SUBSTREAM_SERVICE_T2 0x0080L
  2504. # define KS_CC_SUBSTREAM_FIELD2_MASK 0x1F00L
  2505. # define KS_CC_SUBSTREAM_SERVICE_CC3 0x0100L
  2506. # define KS_CC_SUBSTREAM_SERVICE_CC4 0x0200L
  2507. # define KS_CC_SUBSTREAM_SERVICE_T3 0x0400L
  2508. # define KS_CC_SUBSTREAM_SERVICE_T4 0x0800L
  2509. # define KS_CC_SUBSTREAM_SERVICE_XDS 0x1000L
  2510. # define CC_MAX_HW_DECODE_LINES 12
  2511. typedef struct _CC_BYTE_PAIR
  2512. {
  2513. BYTE Decoded[2];
  2514. USHORT Reserved;
  2515. }CC_BYTE_PAIR, * PCC_BYTE_PAIR;
  2516. typedef struct _CC_HW_FIELD
  2517. {
  2518. VBICODECFILTERING_SCANLINES ScanlinesRequested;
  2519. ULONG fieldFlags;
  2520. LONGLONG PictureNumber;
  2521. CC_BYTE_PAIR Lines[CC_MAX_HW_DECODE_LINES];
  2522. }CC_HW_FIELD, * PCC_HW_FIELD;
  2523. # ifndef PACK_PRAGMAS_NOT_SUPPORTED
  2524. # include <pshpack1.h>
  2525. # endif
  2526. typedef struct _NABTS_BUFFER_LINE
  2527. {
  2528. BYTE Confidence;
  2529. BYTE Bytes[NABTS_BYTES_PER_LINE];
  2530. }NABTS_BUFFER_LINE, * PNABTS_BUFFER_LINE;
  2531. # define NABTS_BUFFER_PICTURENUMBER_SUPPORT 1
  2532. typedef struct _NABTS_BUFFER
  2533. {
  2534. VBICODECFILTERING_SCANLINES ScanlinesRequested;
  2535. LONGLONG PictureNumber;
  2536. NABTS_BUFFER_LINE NabtsLines[MAX_NABTS_VBI_LINES_PER_FIELD];
  2537. }NABTS_BUFFER, * PNABTS_BUFFER;
  2538. # ifndef PACK_PRAGMAS_NOT_SUPPORTED
  2539. # include <poppack.h>
  2540. # endif
  2541. # define WST_TVTUNER_CHANGE_BEGIN_TUNE 0x1000L
  2542. # define WST_TVTUNER_CHANGE_END_TUNE 0x2000L
  2543. # define MAX_WST_VBI_LINES_PER_FIELD 17
  2544. # define WST_BYTES_PER_LINE 42
  2545. typedef struct _WST_BUFFER_LINE
  2546. {
  2547. BYTE Confidence;
  2548. BYTE Bytes[WST_BYTES_PER_LINE];
  2549. }WST_BUFFER_LINE, * PWST_BUFFER_LINE;
  2550. typedef struct _WST_BUFFER
  2551. {
  2552. VBICODECFILTERING_SCANLINES ScanlinesRequested;
  2553. WST_BUFFER_LINE WstLines[MAX_WST_VBI_LINES_PER_FIELD];
  2554. }WST_BUFFER, * PWST_BUFFER;
  2555. typedef struct _VBICODECFILTERING_STATISTICS_COMMON
  2556. {
  2557. DWORD InputSRBsProcessed;
  2558. DWORD OutputSRBsProcessed;
  2559. DWORD SRBsIgnored;
  2560. DWORD InputSRBsMissing;
  2561. DWORD OutputSRBsMissing;
  2562. DWORD OutputFailures;
  2563. DWORD InternalErrors;
  2564. DWORD ExternalErrors;
  2565. DWORD InputDiscontinuities;
  2566. DWORD DSPFailures;
  2567. DWORD TvTunerChanges;
  2568. DWORD VBIHeaderChanges;
  2569. DWORD LineConfidenceAvg;
  2570. DWORD BytesOutput;
  2571. }VBICODECFILTERING_STATISTICS_COMMON, * PVBICODECFILTERING_STATISTICS_COMMON;
  2572. typedef struct _VBICODECFILTERING_STATISTICS_COMMON_PIN
  2573. {
  2574. DWORD SRBsProcessed;
  2575. DWORD SRBsIgnored;
  2576. DWORD SRBsMissing;
  2577. DWORD InternalErrors;
  2578. DWORD ExternalErrors;
  2579. DWORD Discontinuities;
  2580. DWORD LineConfidenceAvg;
  2581. DWORD BytesOutput;
  2582. }VBICODECFILTERING_STATISTICS_COMMON_PIN, * PVBICODECFILTERING_STATISTICS_COMMON_PIN;
  2583. typedef struct _VBICODECFILTERING_STATISTICS_NABTS
  2584. {
  2585. VBICODECFILTERING_STATISTICS_COMMON Common;
  2586. DWORD FECBundleBadLines;
  2587. DWORD FECQueueOverflows;
  2588. DWORD FECCorrectedLines;
  2589. DWORD FECUncorrectableLines;
  2590. DWORD BundlesProcessed;
  2591. DWORD BundlesSent2IP;
  2592. DWORD FilteredLines;
  2593. }VBICODECFILTERING_STATISTICS_NABTS, * PVBICODECFILTERING_STATISTICS_NABTS;
  2594. typedef struct _VBICODECFILTERING_STATISTICS_NABTS_PIN
  2595. {
  2596. VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
  2597. }VBICODECFILTERING_STATISTICS_NABTS_PIN, * PVBICODECFILTERING_STATISTICS_NABTS_PIN;
  2598. typedef struct _VBICODECFILTERING_STATISTICS_CC
  2599. {
  2600. VBICODECFILTERING_STATISTICS_COMMON Common;
  2601. }VBICODECFILTERING_STATISTICS_CC, * PVBICODECFILTERING_STATISTICS_CC;
  2602. typedef struct _VBICODECFILTERING_STATISTICS_CC_PIN
  2603. {
  2604. VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
  2605. }VBICODECFILTERING_STATISTICS_CC_PIN, * PVBICODECFILTERING_STATISTICS_CC_PIN;
  2606. typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT
  2607. {
  2608. VBICODECFILTERING_STATISTICS_COMMON Common;
  2609. }VBICODECFILTERING_STATISTICS_TELETEXT, * PVBICODECFILTERING_STATISTICS_TELETEXT;
  2610. typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT_PIN
  2611. {
  2612. VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
  2613. }VBICODECFILTERING_STATISTICS_TELETEXT_PIN, * PVBICODECFILTERING_STATISTICS_TELETEXT_PIN;
  2614. typedef struct
  2615. {
  2616. KSPROPERTY Property;
  2617. VBICODECFILTERING_SCANLINES Scanlines;
  2618. }KSPROPERTY_VBICODECFILTERING_SCANLINES_S, * PKSPROPERTY_VBICODECFILTERING_SCANLINES_S;
  2619. typedef struct
  2620. {
  2621. KSPROPERTY Property;
  2622. VBICODECFILTERING_NABTS_SUBSTREAMS Substreams;
  2623. }KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S, * PKSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S;
  2624. typedef struct
  2625. {
  2626. KSPROPERTY Property;
  2627. VBICODECFILTERING_CC_SUBSTREAMS Substreams;
  2628. }KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S, * PKSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S;
  2629. typedef struct
  2630. {
  2631. KSPROPERTY Property;
  2632. VBICODECFILTERING_STATISTICS_COMMON Statistics;
  2633. }KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S, * PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S;
  2634. typedef struct
  2635. {
  2636. KSPROPERTY Property;
  2637. VBICODECFILTERING_STATISTICS_COMMON_PIN Statistics;
  2638. }KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S, * PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S;
  2639. typedef struct
  2640. {
  2641. KSPROPERTY Property;
  2642. VBICODECFILTERING_STATISTICS_NABTS Statistics;
  2643. }KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S, * PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S;
  2644. typedef struct
  2645. {
  2646. KSPROPERTY Property;
  2647. VBICODECFILTERING_STATISTICS_NABTS_PIN Statistics;
  2648. }KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S, * PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S;
  2649. typedef struct
  2650. {
  2651. KSPROPERTY Property;
  2652. VBICODECFILTERING_STATISTICS_CC Statistics;
  2653. }KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S, * PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S;
  2654. typedef struct
  2655. {
  2656. KSPROPERTY Property;
  2657. VBICODECFILTERING_STATISTICS_CC_PIN Statistics;
  2658. }KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S, * PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S;
  2659. # define STATIC_PINNAME_VIDEO_CAPTURE \
  2660. 0xfb6c4281, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2661. # define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
  2662. DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_CAPTURE);
  2663. # define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
  2664. # define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
  2665. # define STATIC_PINNAME_VIDEO_CC_CAPTURE \
  2666. 0x1aad8061, 0x12d, 0x11d2, 0xb4, 0xb1, 0x0, 0xa0, 0xd1, 0x2, 0xcf, 0xbe
  2667. # define STATIC_PINNAME_CC_CAPTURE STATIC_PINNAME_VIDEO_CC_CAPTURE
  2668. DEFINE_GUIDSTRUCT("1AAD8061-012D-11d2-B4B1-00A0D102CFBE", PINNAME_VIDEO_CC_CAPTURE);
  2669. # define PINNAME_VIDEO_CC_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CC_CAPTURE)
  2670. # define STATIC_PINNAME_VIDEO_NABTS_CAPTURE \
  2671. 0x29703660, 0x498a, 0x11d2, 0xb4, 0xb1, 0x0, 0xa0, 0xd1, 0x2, 0xcf, 0xbe
  2672. # define STATIC_PINNAME_NABTS_CAPTURE STATIC_PINNAME_VIDEO_NABTS_CAPTURE
  2673. DEFINE_GUIDSTRUCT("29703660-498A-11d2-B4B1-00A0D102CFBE", PINNAME_VIDEO_NABTS_CAPTURE);
  2674. # define PINNAME_VIDEO_NABTS_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS_CAPTURE)
  2675. # define STATIC_PINNAME_VIDEO_PREVIEW \
  2676. 0xfb6c4282, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2677. # define STATIC_PINNAME_PREVIEW STATIC_PINNAME_VIDEO_PREVIEW
  2678. DEFINE_GUIDSTRUCT("FB6C4282-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_PREVIEW);
  2679. # define PINNAME_VIDEO_PREVIEW DEFINE_GUIDNAMED(PINNAME_VIDEO_PREVIEW)
  2680. # define PINNAME_PREVIEW PINNAME_VIDEO_PREVIEW
  2681. # define STATIC_PINNAME_VIDEO_ANALOGVIDEOIN \
  2682. 0xfb6c4283, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2683. DEFINE_GUIDSTRUCT("FB6C4283-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_ANALOGVIDEOIN);
  2684. # define PINNAME_VIDEO_ANALOGVIDEOIN DEFINE_GUIDNAMED(PINNAME_VIDEO_ANALOGVIDEOIN)
  2685. # define STATIC_PINNAME_VIDEO_VBI \
  2686. 0xfb6c4284, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2687. DEFINE_GUIDSTRUCT("FB6C4284-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_VBI);
  2688. # define PINNAME_VIDEO_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VBI)
  2689. # define STATIC_PINNAME_VIDEO_VIDEOPORT \
  2690. 0xfb6c4285, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2691. DEFINE_GUIDSTRUCT("FB6C4285-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_VIDEOPORT);
  2692. # define PINNAME_VIDEO_VIDEOPORT DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT)
  2693. # define STATIC_PINNAME_VIDEO_NABTS \
  2694. 0xfb6c4286, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2695. DEFINE_GUIDSTRUCT("FB6C4286-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_NABTS);
  2696. # define PINNAME_VIDEO_NABTS DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS)
  2697. # define STATIC_PINNAME_VIDEO_EDS \
  2698. 0xfb6c4287, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2699. DEFINE_GUIDSTRUCT("FB6C4287-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_EDS);
  2700. # define PINNAME_VIDEO_EDS DEFINE_GUIDNAMED(PINNAME_VIDEO_EDS)
  2701. # define STATIC_PINNAME_VIDEO_TELETEXT \
  2702. 0xfb6c4288, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2703. DEFINE_GUIDSTRUCT("FB6C4288-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_TELETEXT);
  2704. # define PINNAME_VIDEO_TELETEXT DEFINE_GUIDNAMED(PINNAME_VIDEO_TELETEXT)
  2705. # define STATIC_PINNAME_VIDEO_CC \
  2706. 0xfb6c4289, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2707. DEFINE_GUIDSTRUCT("FB6C4289-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_CC);
  2708. # define PINNAME_VIDEO_CC DEFINE_GUIDNAMED(PINNAME_VIDEO_CC)
  2709. # define STATIC_PINNAME_VIDEO_STILL \
  2710. 0xfb6c428A, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2711. DEFINE_GUIDSTRUCT("FB6C428A-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_STILL);
  2712. # define PINNAME_VIDEO_STILL DEFINE_GUIDNAMED(PINNAME_VIDEO_STILL)
  2713. # define STATIC_PINNAME_VIDEO_TIMECODE \
  2714. 0xfb6c428B, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2715. DEFINE_GUIDSTRUCT("FB6C428B-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_TIMECODE);
  2716. # define PINNAME_VIDEO_TIMECODE DEFINE_GUIDNAMED(PINNAME_VIDEO_TIMECODE)
  2717. # define STATIC_PINNAME_VIDEO_VIDEOPORT_VBI \
  2718. 0xfb6c428C, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2719. DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_VIDEOPORT_VBI);
  2720. # define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI)
  2721. # define KS_VIDEO_FLAG_FRAME 0x0000L
  2722. # define KS_VIDEO_FLAG_FIELD1 0x0001L
  2723. # define KS_VIDEO_FLAG_FIELD2 0x0002L
  2724. # define KS_VIDEO_FLAG_I_FRAME 0x0000L
  2725. # define KS_VIDEO_FLAG_P_FRAME 0x0010L
  2726. # define KS_VIDEO_FLAG_B_FRAME 0x0020L
  2727. typedef struct tagKS_FRAME_INFO
  2728. {
  2729. ULONG ExtendedHeaderSize;
  2730. DWORD dwFrameFlags;
  2731. LONGLONG PictureNumber;
  2732. LONGLONG DropCount;
  2733. HANDLE hDirectDraw;
  2734. HANDLE hSurfaceHandle;
  2735. RECT DirectDrawRect;
  2736. DWORD Reserved1;
  2737. DWORD Reserved2;
  2738. DWORD Reserved3;
  2739. DWORD Reserved4;
  2740. }KS_FRAME_INFO, * PKS_FRAME_INFO;
  2741. # define KS_VBI_FLAG_FIELD1 0x0001L
  2742. # define KS_VBI_FLAG_FIELD2 0x0002L
  2743. # define KS_VBI_FLAG_MV_PRESENT 0x0100L
  2744. # define KS_VBI_FLAG_MV_HARDWARE 0x0200L
  2745. # define KS_VBI_FLAG_MV_DETECTED 0x0400L
  2746. # define KS_VBI_FLAG_TVTUNER_CHANGE 0x0010L
  2747. # define KS_VBI_FLAG_VBIINFOHEADER_CHANGE 0x0020L
  2748. typedef struct tagKS_VBI_FRAME_INFO
  2749. {
  2750. ULONG ExtendedHeaderSize;
  2751. DWORD dwFrameFlags;
  2752. LONGLONG PictureNumber;
  2753. LONGLONG DropCount;
  2754. DWORD dwSamplingFrequency;
  2755. KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo;
  2756. KS_VBIINFOHEADER VBIInfoHeader;
  2757. }KS_VBI_FRAME_INFO, * PKS_VBI_FRAME_INFO;
  2758. typedef enum
  2759. {
  2760. KS_AnalogVideo_None = 0x00000000,
  2761. KS_AnalogVideo_NTSC_M = 0x00000001,
  2762. KS_AnalogVideo_NTSC_M_J = 0x00000002,
  2763. KS_AnalogVideo_NTSC_433 = 0x00000004,
  2764. KS_AnalogVideo_PAL_B = 0x00000010,
  2765. KS_AnalogVideo_PAL_D = 0x00000020,
  2766. KS_AnalogVideo_PAL_G = 0x00000040,
  2767. KS_AnalogVideo_PAL_H = 0x00000080,
  2768. KS_AnalogVideo_PAL_I = 0x00000100,
  2769. KS_AnalogVideo_PAL_M = 0x00000200,
  2770. KS_AnalogVideo_PAL_N = 0x00000400,
  2771. KS_AnalogVideo_PAL_60 = 0x00000800,
  2772. KS_AnalogVideo_SECAM_B = 0x00001000,
  2773. KS_AnalogVideo_SECAM_D = 0x00002000,
  2774. KS_AnalogVideo_SECAM_G = 0x00004000,
  2775. KS_AnalogVideo_SECAM_H = 0x00008000,
  2776. KS_AnalogVideo_SECAM_K = 0x00010000,
  2777. KS_AnalogVideo_SECAM_K1 = 0x00020000,
  2778. KS_AnalogVideo_SECAM_L = 0x00040000,
  2779. KS_AnalogVideo_SECAM_L1 = 0x00080000,
  2780. KS_AnalogVideo_PAL_N_COMBO = 0x00100000
  2781. }KS_AnalogVideoStandard;
  2782. # define KS_AnalogVideo_NTSC_Mask 0x00000007
  2783. # define KS_AnalogVideo_PAL_Mask 0x00100FF0
  2784. # define KS_AnalogVideo_SECAM_Mask 0x000FF000
  2785. # define STATIC_PROPSETID_ALLOCATOR_CONTROL \
  2786. 0x53171960, 0x148e, 0x11d2, 0x99, 0x79, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  2787. DEFINE_GUIDSTRUCT("53171960-148E-11d2-9979-0000C0CC16BA", PROPSETID_ALLOCATOR_CONTROL);
  2788. # define PROPSETID_ALLOCATOR_CONTROL DEFINE_GUIDNAMED(PROPSETID_ALLOCATOR_CONTROL)
  2789. typedef enum
  2790. {
  2791. KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT,
  2792. KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE,
  2793. KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS,
  2794. KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE
  2795. }KSPROPERTY_ALLOCATOR_CONTROL;
  2796. typedef struct
  2797. {
  2798. ULONG CX;
  2799. ULONG CY;
  2800. }KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S, * PKSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S;
  2801. typedef struct
  2802. {
  2803. ULONG InterleavedCapSupported;
  2804. }KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S, * PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S;
  2805. typedef struct
  2806. {
  2807. ULONG InterleavedCapPossible;
  2808. }KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S, * PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S;
  2809. # define STATIC_PROPSETID_VIDCAP_VIDEOPROCAMP \
  2810. 0xC6E13360L, 0x30AC, 0x11d0, 0xa1, 0x8c, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56
  2811. DEFINE_GUIDSTRUCT("C6E13360-30AC-11d0-A18C-00A0C9118956", PROPSETID_VIDCAP_VIDEOPROCAMP);
  2812. # define PROPSETID_VIDCAP_VIDEOPROCAMP DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOPROCAMP)
  2813. typedef enum
  2814. {
  2815. KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
  2816. KSPROPERTY_VIDEOPROCAMP_CONTRAST,
  2817. KSPROPERTY_VIDEOPROCAMP_HUE,
  2818. KSPROPERTY_VIDEOPROCAMP_SATURATION,
  2819. KSPROPERTY_VIDEOPROCAMP_SHARPNESS,
  2820. KSPROPERTY_VIDEOPROCAMP_GAMMA,
  2821. KSPROPERTY_VIDEOPROCAMP_COLORENABLE,
  2822. KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE,
  2823. KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION,
  2824. KSPROPERTY_VIDEOPROCAMP_GAIN,
  2825. KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER,
  2826. KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT,
  2827. KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT,
  2828. KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY
  2829. }KSPROPERTY_VIDCAP_VIDEOPROCAMP;
  2830. typedef struct
  2831. {
  2832. KSPROPERTY Property;
  2833. LONG Value;
  2834. ULONG Flags;
  2835. ULONG Capabilities;
  2836. }KSPROPERTY_VIDEOPROCAMP_S, * PKSPROPERTY_VIDEOPROCAMP_S;
  2837. typedef struct
  2838. {
  2839. KSP_NODE NodeProperty;
  2840. LONG Value;
  2841. ULONG Flags;
  2842. ULONG Capabilities;
  2843. }KSPROPERTY_VIDEOPROCAMP_NODE_S, * PKSPROPERTY_VIDEOPROCAMP_NODE_S;
  2844. typedef struct
  2845. {
  2846. KSPROPERTY Property;
  2847. LONG Value1;
  2848. ULONG Flags;
  2849. ULONG Capabilities;
  2850. LONG Value2;
  2851. }KSPROPERTY_VIDEOPROCAMP_S2, * PKSPROPERTY_VIDEOPROCAMP_S2;
  2852. typedef struct
  2853. {
  2854. KSP_NODE NodeProperty;
  2855. LONG Value1;
  2856. ULONG Flags;
  2857. ULONG Capabilities;
  2858. LONG Value2;
  2859. }KSPROPERTY_VIDEOPROCAMP_NODE_S2, * PKSPROPERTY_VIDEOPROCAMP_NODE_S2;
  2860. # define KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO 0X0001L
  2861. # define KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL 0X0002L
  2862. # define STATIC_PROPSETID_VIDCAP_SELECTOR \
  2863. 0x1ABDAECA, 0x68B6, 0x4F83, 0x93, 0x71, 0xB4, 0x13, 0x90, 0x7C, 0x7B, 0x9F
  2864. DEFINE_GUIDSTRUCT("1ABDAECA-68B6-4F83-9371-B413907C7B9F", PROPSETID_VIDCAP_SELECTOR);
  2865. # define PROPSETID_VIDCAP_SELECTOR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_SELECTOR)
  2866. typedef enum
  2867. {
  2868. KSPROPERTY_SELECTOR_SOURCE_NODE_ID,
  2869. KSPROPERTY_SELECTOR_NUM_SOURCES
  2870. }KSPROPERTY_VIDCAP_SELECTOR, * PKSPROPERTY_VIDCAP_SELECTOR;
  2871. typedef struct
  2872. {
  2873. KSPROPERTY Property;
  2874. LONG Value;
  2875. ULONG Flags;
  2876. ULONG Capabilities;
  2877. }KSPROPERTY_SELECTOR_S, * PKSPROPERTY_SELECTOR_S;
  2878. typedef struct
  2879. {
  2880. KSP_NODE NodeProperty;
  2881. LONG Value;
  2882. ULONG Flags;
  2883. ULONG Capabilities;
  2884. }KSPROPERTY_SELECTOR_NODE_S, * PKSPROPERTY_SELECTOR_NODE_S;
  2885. # define STATIC_PROPSETID_TUNER \
  2886. 0x6a2e0605L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  2887. DEFINE_GUIDSTRUCT("6a2e0605-28e4-11d0-a18c-00a0c9118956", PROPSETID_TUNER);
  2888. # define PROPSETID_TUNER DEFINE_GUIDNAMED(PROPSETID_TUNER)
  2889. typedef enum
  2890. {
  2891. KSPROPERTY_TUNER_CAPS,
  2892. KSPROPERTY_TUNER_MODE_CAPS,
  2893. KSPROPERTY_TUNER_MODE,
  2894. KSPROPERTY_TUNER_STANDARD,
  2895. KSPROPERTY_TUNER_FREQUENCY,
  2896. KSPROPERTY_TUNER_INPUT,
  2897. KSPROPERTY_TUNER_STATUS,
  2898. KSPROPERTY_TUNER_IF_MEDIUM
  2899. }KSPROPERTY_TUNER;
  2900. typedef enum
  2901. {
  2902. KSPROPERTY_TUNER_MODE_TV = 0X0001,
  2903. KSPROPERTY_TUNER_MODE_FM_RADIO = 0X0002,
  2904. KSPROPERTY_TUNER_MODE_AM_RADIO = 0X0004,
  2905. KSPROPERTY_TUNER_MODE_DSS = 0X0008,
  2906. KSPROPERTY_TUNER_MODE_ATSC = 0X0010
  2907. }KSPROPERTY_TUNER_MODES;
  2908. typedef enum
  2909. {
  2910. KS_TUNER_TUNING_EXACT = 1,
  2911. KS_TUNER_TUNING_FINE,
  2912. KS_TUNER_TUNING_COARSE
  2913. }KS_TUNER_TUNING_FLAGS;
  2914. typedef enum
  2915. {
  2916. KS_TUNER_STRATEGY_PLL = 0X01,
  2917. KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02,
  2918. KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04
  2919. }KS_TUNER_STRATEGY;
  2920. typedef struct
  2921. {
  2922. KSPROPERTY Property;
  2923. ULONG ModesSupported;
  2924. KSPIN_MEDIUM VideoMedium;
  2925. KSPIN_MEDIUM TVAudioMedium;
  2926. KSPIN_MEDIUM RadioAudioMedium;
  2927. }KSPROPERTY_TUNER_CAPS_S, * PKSPROPERTY_TUNER_CAPS_S;
  2928. typedef struct
  2929. {
  2930. KSPROPERTY Property;
  2931. KSPIN_MEDIUM IFMedium;
  2932. }KSPROPERTY_TUNER_IF_MEDIUM_S, * PKSPROPERTY_TUNER_IF_MEDIUM_S;
  2933. typedef struct
  2934. {
  2935. KSPROPERTY Property;
  2936. ULONG Mode;
  2937. ULONG StandardsSupported;
  2938. ULONG MinFrequency;
  2939. ULONG MaxFrequency;
  2940. ULONG TuningGranularity;
  2941. ULONG NumberOfInputs;
  2942. ULONG SettlingTime;
  2943. ULONG Strategy;
  2944. }KSPROPERTY_TUNER_MODE_CAPS_S, * PKSPROPERTY_TUNER_MODE_CAPS_S;
  2945. typedef struct
  2946. {
  2947. KSPROPERTY Property;
  2948. ULONG Mode;
  2949. }KSPROPERTY_TUNER_MODE_S, * PKSPROPERTY_TUNER_MODE_S;
  2950. typedef struct
  2951. {
  2952. KSPROPERTY Property;
  2953. ULONG Frequency;
  2954. ULONG LastFrequency;
  2955. ULONG TuningFlags;
  2956. ULONG VideoSubChannel;
  2957. ULONG AudioSubChannel;
  2958. ULONG Channel;
  2959. ULONG Country;
  2960. }KSPROPERTY_TUNER_FREQUENCY_S, * PKSPROPERTY_TUNER_FREQUENCY_S;
  2961. typedef struct
  2962. {
  2963. KSPROPERTY Property;
  2964. ULONG Standard;
  2965. }KSPROPERTY_TUNER_STANDARD_S, * PKSPROPERTY_TUNER_STANDARD_S;
  2966. typedef struct
  2967. {
  2968. KSPROPERTY Property;
  2969. ULONG InputIndex;
  2970. }KSPROPERTY_TUNER_INPUT_S, * PKSPROPERTY_TUNER_INPUT_S;
  2971. typedef struct
  2972. {
  2973. KSPROPERTY Property;
  2974. ULONG CurrentFrequency;
  2975. ULONG PLLOffset;
  2976. ULONG SignalStrength;
  2977. ULONG Busy;
  2978. }KSPROPERTY_TUNER_STATUS_S, * PKSPROPERTY_TUNER_STATUS_S;
  2979. # define STATIC_EVENTSETID_TUNER \
  2980. 0x6a2e0606L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  2981. DEFINE_GUIDSTRUCT("6a2e0606-28e4-11d0-a18c-00a0c9118956", EVENTSETID_TUNER);
  2982. # define EVENTSETID_TUNER DEFINE_GUIDNAMED(EVENTSETID_TUNER)
  2983. typedef enum
  2984. {
  2985. KSEVENT_TUNER_CHANGED
  2986. }KSEVENT_TUNER;
  2987. # define STATIC_KSNODETYPE_VIDEO_STREAMING \
  2988. 0xDFF229E1L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  2989. DEFINE_GUIDSTRUCT("DFF229E1-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_STREAMING);
  2990. # define KSNODETYPE_VIDEO_STREAMING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_STREAMING)
  2991. # define STATIC_KSNODETYPE_VIDEO_INPUT_TERMINAL \
  2992. 0xDFF229E2L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  2993. DEFINE_GUIDSTRUCT("DFF229E2-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_INPUT_TERMINAL);
  2994. # define KSNODETYPE_VIDEO_INPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_TERMINAL)
  2995. # define STATIC_KSNODETYPE_VIDEO_OUTPUT_TERMINAL \
  2996. 0xDFF229E3L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  2997. DEFINE_GUIDSTRUCT("DFF229E3-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_OUTPUT_TERMINAL);
  2998. # define KSNODETYPE_VIDEO_OUTPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_TERMINAL)
  2999. # define STATIC_KSNODETYPE_VIDEO_SELECTOR \
  3000. 0xDFF229E4L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  3001. DEFINE_GUIDSTRUCT("DFF229E4-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_SELECTOR);
  3002. # define KSNODETYPE_VIDEO_SELECTOR DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_SELECTOR)
  3003. # define STATIC_KSNODETYPE_VIDEO_PROCESSING \
  3004. 0xDFF229E5L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  3005. DEFINE_GUIDSTRUCT("DFF229E5-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_PROCESSING);
  3006. # define KSNODETYPE_VIDEO_PROCESSING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_PROCESSING)
  3007. # define STATIC_KSNODETYPE_VIDEO_CAMERA_TERMINAL \
  3008. 0xDFF229E6L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  3009. DEFINE_GUIDSTRUCT("DFF229E6-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_CAMERA_TERMINAL);
  3010. # define KSNODETYPE_VIDEO_CAMERA_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_CAMERA_TERMINAL)
  3011. # define STATIC_KSNODETYPE_VIDEO_INPUT_MTT \
  3012. 0xDFF229E7L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  3013. DEFINE_GUIDSTRUCT("DFF229E7-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_INPUT_MTT);
  3014. # define KSNODETYPE_VIDEO_INPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_MTT)
  3015. # define STATIC_KSNODETYPE_VIDEO_OUTPUT_MTT \
  3016. 0xDFF229E8L, 0xF70F, 0x11D0, 0xB9, 0x17, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  3017. DEFINE_GUIDSTRUCT("DFF229E8-F70F-11D0-B917-00A0C9223196", KSNODETYPE_VIDEO_OUTPUT_MTT);
  3018. # define KSNODETYPE_VIDEO_OUTPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_MTT)
  3019. # define STATIC_PROPSETID_VIDCAP_VIDEOENCODER \
  3020. 0x6a2e0610L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3021. DEFINE_GUIDSTRUCT("6a2e0610-28e4-11d0-a18c-00a0c9118956", PROPSETID_VIDCAP_VIDEOENCODER);
  3022. # define PROPSETID_VIDCAP_VIDEOENCODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOENCODER)
  3023. typedef enum
  3024. {
  3025. KSPROPERTY_VIDEOENCODER_CAPS,
  3026. KSPROPERTY_VIDEOENCODER_STANDARD,
  3027. KSPROPERTY_VIDEOENCODER_COPYPROTECTION,
  3028. KSPROPERTY_VIDEOENCODER_CC_ENABLE
  3029. }KSPROPERTY_VIDCAP_VIDEOENCODER;
  3030. typedef struct
  3031. {
  3032. KSPROPERTY Property;
  3033. LONG Value;
  3034. ULONG Flags;
  3035. ULONG Capabilities;
  3036. }KSPROPERTY_VIDEOENCODER_S, * PKSPROPERTY_VIDEOENCODER_S;
  3037. # define STATIC_PROPSETID_VIDCAP_VIDEODECODER \
  3038. 0xC6E13350L, 0x30AC, 0x11d0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56
  3039. DEFINE_GUIDSTRUCT("C6E13350-30AC-11d0-A18C-00A0C9118956", PROPSETID_VIDCAP_VIDEODECODER);
  3040. # define PROPSETID_VIDCAP_VIDEODECODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEODECODER)
  3041. typedef enum
  3042. {
  3043. KSPROPERTY_VIDEODECODER_CAPS,
  3044. KSPROPERTY_VIDEODECODER_STANDARD,
  3045. KSPROPERTY_VIDEODECODER_STATUS,
  3046. KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE,
  3047. KSPROPERTY_VIDEODECODER_VCR_TIMING
  3048. }KSPROPERTY_VIDCAP_VIDEODECODER;
  3049. typedef enum
  3050. {
  3051. KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT = 0X0001,
  3052. KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING = 0X0002,
  3053. KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED = 0X0004
  3054. }KS_VIDEODECODER_FLAGS;
  3055. typedef struct
  3056. {
  3057. KSPROPERTY Property;
  3058. ULONG StandardsSupported;
  3059. ULONG Capabilities;
  3060. ULONG SettlingTime;
  3061. ULONG HSyncPerVSync;
  3062. }KSPROPERTY_VIDEODECODER_CAPS_S, * PKSPROPERTY_VIDEODECODER_CAPS_S;
  3063. typedef struct
  3064. {
  3065. KSPROPERTY Property;
  3066. ULONG NumberOfLines;
  3067. ULONG SignalLocked;
  3068. }KSPROPERTY_VIDEODECODER_STATUS_S, * PKSPROPERTY_VIDEODECODER_STATUS_S;
  3069. typedef struct
  3070. {
  3071. KSPROPERTY Property;
  3072. ULONG Value;
  3073. }KSPROPERTY_VIDEODECODER_S, * PKSPROPERTY_VIDEODECODER_S;
  3074. # define STATIC_EVENTSETID_VIDEODECODER \
  3075. 0x6a2e0621L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3076. DEFINE_GUIDSTRUCT("6a2e0621-28e4-11d0-a18c-00a0c9118956", EVENTSETID_VIDEODECODER);
  3077. # define EVENTSETID_VIDEODECODER DEFINE_GUIDNAMED(EVENTSETID_VIDEODECODER)
  3078. typedef enum
  3079. {
  3080. KSEVENT_VIDEODECODER_CHANGED
  3081. }KSEVENT_VIDEODECODER;
  3082. # define STATIC_PROPSETID_VIDCAP_CAMERACONTROL \
  3083. 0xC6E13370L, 0x30AC, 0x11d0, 0xa1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56
  3084. DEFINE_GUIDSTRUCT("C6E13370-30AC-11d0-A18C-00A0C9118956", PROPSETID_VIDCAP_CAMERACONTROL);
  3085. # define PROPSETID_VIDCAP_CAMERACONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CAMERACONTROL)
  3086. typedef enum
  3087. {
  3088. KSPROPERTY_CAMERACONTROL_PAN,
  3089. KSPROPERTY_CAMERACONTROL_TILT,
  3090. KSPROPERTY_CAMERACONTROL_ROLL,
  3091. KSPROPERTY_CAMERACONTROL_ZOOM,
  3092. KSPROPERTY_CAMERACONTROL_EXPOSURE,
  3093. KSPROPERTY_CAMERACONTROL_IRIS,
  3094. KSPROPERTY_CAMERACONTROL_FOCUS,
  3095. KSPROPERTY_CAMERACONTROL_SCANMODE,
  3096. KSPROPERTY_CAMERACONTROL_PRIVACY,
  3097. KSPROPERTY_CAMERACONTROL_PANTILT,
  3098. KSPROPERTY_CAMERACONTROL_PAN_RELATIVE,
  3099. KSPROPERTY_CAMERACONTROL_TILT_RELATIVE,
  3100. KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE,
  3101. KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE,
  3102. KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE,
  3103. KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE,
  3104. KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE,
  3105. KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE,
  3106. KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH
  3107. }KSPROPERTY_VIDCAP_CAMERACONTROL;
  3108. typedef struct
  3109. {
  3110. KSPROPERTY Property;
  3111. LONG Value;
  3112. ULONG Flags;
  3113. ULONG Capabilities;
  3114. }KSPROPERTY_CAMERACONTROL_S, * PKSPROPERTY_CAMERACONTROL_S;
  3115. typedef struct
  3116. {
  3117. KSP_NODE NodeProperty;
  3118. LONG Value;
  3119. ULONG Flags;
  3120. ULONG Capabilities;
  3121. }KSPROPERTY_CAMERACONTROL_NODE_S, PKSPROPERTY_CAMERACONTROL_NODE_S;
  3122. typedef struct
  3123. {
  3124. KSPROPERTY Property;
  3125. LONG Value1;
  3126. ULONG Flags;
  3127. ULONG Capabilities;
  3128. LONG Value2;
  3129. }KSPROPERTY_CAMERACONTROL_S2, * PKSPROPERTY_CAMERACONTROL_S2;
  3130. typedef struct
  3131. {
  3132. KSP_NODE NodeProperty;
  3133. LONG Value1;
  3134. ULONG Flags;
  3135. ULONG Capabilities;
  3136. LONG Value2;
  3137. }KSPROPERTY_CAMERACONTROL_NODE_S2, * PKSPROPERTY_CAMERACONTROL_NODE_S2;
  3138. typedef struct
  3139. {
  3140. KSPROPERTY Property;
  3141. LONG lOcularFocalLength;
  3142. LONG lObjectiveFocalLengthMin;
  3143. LONG lObjectiveFocalLengthMax;
  3144. }KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S, * PKSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S;
  3145. typedef struct
  3146. {
  3147. KSNODEPROPERTY NodeProperty;
  3148. LONG lOcularFocalLength;
  3149. LONG lObjectiveFocalLengthMin;
  3150. LONG lObjectiveFocalLengthMax;
  3151. }KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S, * PKSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S;
  3152. # define KSPROPERTY_CAMERACONTROL_FLAGS_AUTO 0X0001L
  3153. # define KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL 0X0002L
  3154. # define KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE 0X0000L
  3155. # define KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE 0X0010L
  3156. # ifndef __EDevCtrl__
  3157. # define __EDevCtrl__
  3158. # define STATIC_PROPSETID_EXT_DEVICE \
  3159. 0xB5730A90L, 0x1A2C, 0x11cf, 0x8c, 0x23, 0x00, 0xAA, 0x00, 0x6B, 0x68, 0x14
  3160. DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814", PROPSETID_EXT_DEVICE);
  3161. # define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE)
  3162. typedef enum
  3163. {
  3164. KSPROPERTY_EXTDEVICE_ID,
  3165. KSPROPERTY_EXTDEVICE_VERSION,
  3166. KSPROPERTY_EXTDEVICE_POWER_STATE,
  3167. KSPROPERTY_EXTDEVICE_PORT,
  3168. KSPROPERTY_EXTDEVICE_CAPABILITIES
  3169. }KSPROPERTY_EXTDEVICE;
  3170. typedef struct tagDEVCAPS
  3171. {
  3172. LONG CanRecord;
  3173. LONG CanRecordStrobe;
  3174. LONG HasAudio;
  3175. LONG HasVideo;
  3176. LONG UsesFiles;
  3177. LONG CanSave;
  3178. LONG DeviceType;
  3179. LONG TCRead;
  3180. LONG TCWrite;
  3181. LONG CTLRead;
  3182. LONG IndexRead;
  3183. LONG Preroll;
  3184. LONG Postroll;
  3185. LONG SyncAcc;
  3186. LONG NormRate;
  3187. LONG CanPreview;
  3188. LONG CanMonitorSrc;
  3189. LONG CanTest;
  3190. LONG VideoIn;
  3191. LONG AudioIn;
  3192. LONG Calibrate;
  3193. LONG SeekType;
  3194. LONG SimulatedHardware;
  3195. }DEVCAPS, * PDEVCAPS;
  3196. typedef struct
  3197. {
  3198. KSPROPERTY Property;
  3199. union
  3200. {
  3201. DEVCAPS Capabilities;
  3202. ULONG DevPort;
  3203. ULONG PowerState;
  3204. WCHAR pawchString[MAX_PATH];
  3205. DWORD NodeUniqueID[2];
  3206. }u;
  3207. }KSPROPERTY_EXTDEVICE_S, * PKSPROPERTY_EXTDEVICE_S;
  3208. # define STATIC_PROPSETID_EXT_TRANSPORT \
  3209. 0xA03CD5F0L, 0x3045, 0x11cf, 0x8c, 0x44, 0x00, 0xAA, 0x00, 0x6B, 0x68, 0x14
  3210. DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814", PROPSETID_EXT_TRANSPORT);
  3211. # define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT)
  3212. typedef enum
  3213. {
  3214. KSPROPERTY_EXTXPORT_CAPABILITIES,
  3215. KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE,
  3216. KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE,
  3217. KSPROPERTY_EXTXPORT_LOAD_MEDIUM,
  3218. KSPROPERTY_EXTXPORT_MEDIUM_INFO,
  3219. KSPROPERTY_EXTXPORT_STATE,
  3220. KSPROPERTY_EXTXPORT_STATE_NOTIFY,
  3221. KSPROPERTY_EXTXPORT_TIMECODE_SEARCH,
  3222. KSPROPERTY_EXTXPORT_ATN_SEARCH,
  3223. KSPROPERTY_EXTXPORT_RTC_SEARCH,
  3224. KSPROPERTY_RAW_AVC_CMD
  3225. }KSPROPERTY_EXTXPORT;
  3226. typedef struct tagTRANSPORTSTATUS
  3227. {
  3228. LONG Mode;
  3229. LONG LastError;
  3230. LONG RecordInhibit;
  3231. LONG ServoLock;
  3232. LONG MediaPresent;
  3233. LONG MediaLength;
  3234. LONG MediaSize;
  3235. LONG MediaTrackCount;
  3236. LONG MediaTrackLength;
  3237. LONG MediaTrackSide;
  3238. LONG MediaType;
  3239. LONG LinkMode;
  3240. LONG NotifyOn;
  3241. }TRANSPORTSTATUS, * PTRANSPORTSTATUS;
  3242. typedef struct tagTRANSPORTBASICPARMS
  3243. {
  3244. LONG TimeFormat;
  3245. LONG TimeReference;
  3246. LONG Superimpose;
  3247. LONG EndStopAction;
  3248. LONG RecordFormat;
  3249. LONG StepFrames;
  3250. LONG SetpField;
  3251. LONG Preroll;
  3252. LONG RecPreroll;
  3253. LONG Postroll;
  3254. LONG EditDelay;
  3255. LONG PlayTCDelay;
  3256. LONG RecTCDelay;
  3257. LONG EditField;
  3258. LONG FrameServo;
  3259. LONG ColorFrameServo;
  3260. LONG ServoRef;
  3261. LONG WarnGenlock;
  3262. LONG SetTracking;
  3263. TCHAR VolumeName[40];
  3264. LONG Ballistic[20];
  3265. LONG Speed;
  3266. LONG CounterFormat;
  3267. LONG TunerChannel;
  3268. LONG TunerNumber;
  3269. LONG TimerEvent;
  3270. LONG TimerStartDay;
  3271. LONG TimerStartTime;
  3272. LONG TimerStopDay;
  3273. LONG TimerStopTime;
  3274. }TRANSPORTBASICPARMS, * PTRANSPORTBASICPARMS;
  3275. typedef struct tagTRANSPORTVIDEOPARMS
  3276. {
  3277. LONG OutputMode;
  3278. LONG Input;
  3279. }TRANSPORTVIDEOPARMS, * PTRANSPORTVIDEOPARMS;
  3280. typedef struct tagTRANSPORTAUDIOPARMS
  3281. {
  3282. LONG EnableOutput;
  3283. LONG EnableRecord;
  3284. LONG EnableSelsync;
  3285. LONG Input;
  3286. LONG MonitorSource;
  3287. }TRANSPORTAUDIOPARMS, * PTRANSPORTAUDIOPARMS;
  3288. typedef struct
  3289. {
  3290. WINBOOL MediaPresent;
  3291. ULONG MediaType;
  3292. WINBOOL RecordInhibit;
  3293. }MEDIUM_INFO, * PMEDIUM_INFO;
  3294. typedef struct
  3295. {
  3296. ULONG Mode;
  3297. ULONG State;
  3298. }TRANSPORT_STATE, * PTRANSPORT_STATE;
  3299. typedef struct
  3300. {
  3301. KSPROPERTY Property;
  3302. union
  3303. {
  3304. ULONG Capabilities;
  3305. ULONG SignalMode;
  3306. ULONG LoadMedium;
  3307. MEDIUM_INFO MediumInfo;
  3308. TRANSPORT_STATE XPrtState;
  3309. struct
  3310. {
  3311. BYTE frame;
  3312. BYTE second;
  3313. BYTE minute;
  3314. BYTE hour;
  3315. }Timecode;
  3316. DWORD dwTimecode;
  3317. DWORD dwAbsTrackNumber;
  3318. struct
  3319. {
  3320. ULONG PayloadSize;
  3321. BYTE Payload[512];
  3322. }RawAVC;
  3323. }u;
  3324. }KSPROPERTY_EXTXPORT_S, * PKSPROPERTY_EXTXPORT_S;
  3325. typedef struct
  3326. {
  3327. KSP_NODE NodeProperty;
  3328. union
  3329. {
  3330. ULONG Capabilities;
  3331. ULONG SignalMode;
  3332. ULONG LoadMedium;
  3333. MEDIUM_INFO MediumInfo;
  3334. TRANSPORT_STATE XPrtState;
  3335. struct
  3336. {
  3337. BYTE frame;
  3338. BYTE second;
  3339. BYTE minute;
  3340. BYTE hour;
  3341. }Timecode;
  3342. DWORD dwTimecode;
  3343. DWORD dwAbsTrackNumber;
  3344. struct
  3345. {
  3346. ULONG PayloadSize;
  3347. BYTE Payload[512];
  3348. }RawAVC;
  3349. }u;
  3350. }KSPROPERTY_EXTXPORT_NODE_S, * PKSPROPERTY_EXTXPORT_NODE_S;
  3351. # define STATIC_PROPSETID_TIMECODE_READER \
  3352. 0x9B496CE1L, 0x811B, 0x11cf, 0x8C, 0x77, 0x00, 0xAA, 0x00, 0x6B, 0x68, 0x14
  3353. DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814", PROPSETID_TIMECODE_READER);
  3354. # define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER)
  3355. typedef enum
  3356. {
  3357. KSPROPERTY_TIMECODE_READER,
  3358. KSPROPERTY_ATN_READER,
  3359. KSPROPERTY_RTC_READER
  3360. }KSPROPERTY_TIMECODE;
  3361. # ifndef TIMECODE_DEFINED
  3362. # define TIMECODE_DEFINED
  3363. typedef union _timecode
  3364. {
  3365. struct
  3366. {
  3367. WORD wFrameRate;
  3368. WORD wFrameFract;
  3369. DWORD dwFrames;
  3370. };
  3371. DWORDLONG qw;
  3372. }TIMECODE;
  3373. typedef TIMECODE* PTIMECODE;
  3374. typedef struct tagTIMECODE_SAMPLE
  3375. {
  3376. LONGLONG qwTick;
  3377. TIMECODE timecode;
  3378. DWORD dwUser;
  3379. DWORD dwFlags;
  3380. }TIMECODE_SAMPLE;
  3381. typedef TIMECODE_SAMPLE* PTIMECODE_SAMPLE;
  3382. # endif /* TIMECODE_DEFINED */
  3383. typedef struct
  3384. {
  3385. KSPROPERTY Property;
  3386. TIMECODE_SAMPLE TimecodeSamp;
  3387. }KSPROPERTY_TIMECODE_S, * PKSPROPERTY_TIMECODE_S;
  3388. typedef struct
  3389. {
  3390. KSP_NODE NodeProperty;
  3391. TIMECODE_SAMPLE TimecodeSamp;
  3392. }KSPROPERTY_TIMECODE_NODE_S, * PKSPROPERTY_TIMECODE_NODE_S;
  3393. # define STATIC_KSEVENTSETID_EXTDEV_Command \
  3394. 0x109c7988L, 0xb3cb, 0x11d2, 0xb4, 0x8e, 0x00, 0x60, 0x97, 0xb3, 0x39, 0x1b
  3395. DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b", KSEVENTSETID_EXTDEV_Command);
  3396. # define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command)
  3397. typedef enum
  3398. {
  3399. KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY,
  3400. KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY,
  3401. KSEVENT_EXTDEV_COMMAND_BUSRESET,
  3402. KSEVENT_EXTDEV_TIMECODE_UPDATE,
  3403. KSEVENT_EXTDEV_OPERATION_MODE_UPDATE,
  3404. KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE,
  3405. KSEVENT_EXTDEV_NOTIFY_REMOVAL,
  3406. KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE
  3407. }KSEVENT_DEVCMD;
  3408. # endif /* __EDevCtrl__ */
  3409. # define STATIC_PROPSETID_VIDCAP_CROSSBAR \
  3410. 0x6a2e0640L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3411. DEFINE_GUIDSTRUCT("6a2e0640-28e4-11d0-a18c-00a0c9118956", PROPSETID_VIDCAP_CROSSBAR);
  3412. # define PROPSETID_VIDCAP_CROSSBAR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CROSSBAR)
  3413. typedef enum
  3414. {
  3415. KSPROPERTY_CROSSBAR_CAPS,
  3416. KSPROPERTY_CROSSBAR_PININFO,
  3417. KSPROPERTY_CROSSBAR_CAN_ROUTE,
  3418. KSPROPERTY_CROSSBAR_ROUTE
  3419. }KSPROPERTY_VIDCAP_CROSSBAR;
  3420. typedef struct
  3421. {
  3422. KSPROPERTY Property;
  3423. ULONG NumberOfInputs;
  3424. ULONG NumberOfOutputs;
  3425. }KSPROPERTY_CROSSBAR_CAPS_S, * PKSPROPERTY_CROSSBAR_CAPS_S;
  3426. typedef struct
  3427. {
  3428. KSPROPERTY Property;
  3429. KSPIN_DATAFLOW Direction;
  3430. ULONG Index;
  3431. ULONG PinType;
  3432. ULONG RelatedPinIndex;
  3433. KSPIN_MEDIUM Medium;
  3434. }KSPROPERTY_CROSSBAR_PININFO_S, * PKSPROPERTY_CROSSBAR_PININFO_S;
  3435. typedef struct
  3436. {
  3437. KSPROPERTY Property;
  3438. ULONG IndexInputPin;
  3439. ULONG IndexOutputPin;
  3440. ULONG CanRoute;
  3441. }KSPROPERTY_CROSSBAR_ROUTE_S, * PKSPROPERTY_CROSSBAR_ROUTE_S;
  3442. # define STATIC_EVENTSETID_CROSSBAR \
  3443. 0x6a2e0641L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3444. DEFINE_GUIDSTRUCT("6a2e0641-28e4-11d0-a18c-00a0c9118956", EVENTSETID_CROSSBAR);
  3445. # define EVENTSETID_CROSSBAR DEFINE_GUIDNAMED(EVENTSETID_CROSSBAR)
  3446. typedef enum
  3447. {
  3448. KSEVENT_CROSSBAR_CHANGED
  3449. }KSEVENT_CROSSBAR;
  3450. typedef enum
  3451. {
  3452. KS_PhysConn_Video_Tuner = 1,
  3453. KS_PhysConn_Video_Composite,
  3454. KS_PhysConn_Video_SVideo,
  3455. KS_PhysConn_Video_RGB,
  3456. KS_PhysConn_Video_YRYBY,
  3457. KS_PhysConn_Video_SerialDigital,
  3458. KS_PhysConn_Video_ParallelDigital,
  3459. KS_PhysConn_Video_SCSI,
  3460. KS_PhysConn_Video_AUX,
  3461. KS_PhysConn_Video_1394,
  3462. KS_PhysConn_Video_USB,
  3463. KS_PhysConn_Video_VideoDecoder,
  3464. KS_PhysConn_Video_VideoEncoder,
  3465. KS_PhysConn_Video_SCART,
  3466. KS_PhysConn_Audio_Tuner = 4096,
  3467. KS_PhysConn_Audio_Line,
  3468. KS_PhysConn_Audio_Mic,
  3469. KS_PhysConn_Audio_AESDigital,
  3470. KS_PhysConn_Audio_SPDIFDigital,
  3471. KS_PhysConn_Audio_SCSI,
  3472. KS_PhysConn_Audio_AUX,
  3473. KS_PhysConn_Audio_1394,
  3474. KS_PhysConn_Audio_USB,
  3475. KS_PhysConn_Audio_AudioDecoder
  3476. }KS_PhysicalConnectorType;
  3477. # define STATIC_PROPSETID_VIDCAP_TVAUDIO \
  3478. 0x6a2e0650L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3479. DEFINE_GUIDSTRUCT("6a2e0650-28e4-11d0-a18c-00a0c9118956", PROPSETID_VIDCAP_TVAUDIO);
  3480. # define PROPSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(PROPSETID_VIDCAP_TVAUDIO)
  3481. typedef enum
  3482. {
  3483. KSPROPERTY_TVAUDIO_CAPS,
  3484. KSPROPERTY_TVAUDIO_MODE,
  3485. KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES
  3486. }KSPROPERTY_VIDCAP_TVAUDIO;
  3487. # define KS_TVAUDIO_MODE_MONO 0x0001
  3488. # define KS_TVAUDIO_MODE_STEREO 0x0002
  3489. # define KS_TVAUDIO_MODE_LANG_A 0x0010
  3490. # define KS_TVAUDIO_MODE_LANG_B 0x0020
  3491. # define KS_TVAUDIO_MODE_LANG_C 0x0040
  3492. typedef struct
  3493. {
  3494. KSPROPERTY Property;
  3495. ULONG Capabilities;
  3496. KSPIN_MEDIUM InputMedium;
  3497. KSPIN_MEDIUM OutputMedium;
  3498. }KSPROPERTY_TVAUDIO_CAPS_S, * PKSPROPERTY_TVAUDIO_CAPS_S;
  3499. typedef struct
  3500. {
  3501. KSPROPERTY Property;
  3502. ULONG Mode;
  3503. }KSPROPERTY_TVAUDIO_S, * PKSPROPERTY_TVAUDIO_S;
  3504. # define STATIC_KSEVENTSETID_VIDCAP_TVAUDIO \
  3505. 0x6a2e0651L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3506. DEFINE_GUIDSTRUCT("6a2e0651-28e4-11d0-a18c-00a0c9118956", KSEVENTSETID_VIDCAP_TVAUDIO);
  3507. # define KSEVENTSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAP_TVAUDIO)
  3508. typedef enum
  3509. {
  3510. KSEVENT_TVAUDIO_CHANGED
  3511. }KSEVENT_TVAUDIO;
  3512. # define STATIC_PROPSETID_VIDCAP_VIDEOCOMPRESSION \
  3513. 0xC6E13343L, 0x30AC, 0x11d0, 0xA1, 0x8C, 0x00, 0xA0, 0xC9, 0x11, 0x89, 0x56
  3514. DEFINE_GUIDSTRUCT("C6E13343-30AC-11d0-A18C-00A0C9118956", PROPSETID_VIDCAP_VIDEOCOMPRESSION);
  3515. # define PROPSETID_VIDCAP_VIDEOCOMPRESSION DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCOMPRESSION)
  3516. typedef enum
  3517. {
  3518. KSPROPERTY_VIDEOCOMPRESSION_GETINFO,
  3519. KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE,
  3520. KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME,
  3521. KSPROPERTY_VIDEOCOMPRESSION_QUALITY,
  3522. KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME,
  3523. KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE,
  3524. KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE
  3525. }KSPROPERTY_VIDCAP_VIDEOCOMPRESSION;
  3526. typedef enum
  3527. {
  3528. KS_CompressionCaps_CanQuality = 1,
  3529. KS_CompressionCaps_CanCrunch = 2,
  3530. KS_CompressionCaps_CanKeyFrame = 4,
  3531. KS_CompressionCaps_CanBFrame = 8,
  3532. KS_CompressionCaps_CanWindow = 0x10
  3533. }KS_CompressionCaps;
  3534. typedef enum
  3535. {
  3536. KS_StreamingHint_FrameInterval = 0x0100,
  3537. KS_StreamingHint_KeyFrameRate = 0x0200,
  3538. KS_StreamingHint_PFrameRate = 0x0400,
  3539. KS_StreamingHint_CompQuality = 0x0800,
  3540. KS_StreamingHint_CompWindowSize = 0x1000
  3541. }KS_VideoStreamingHints;
  3542. typedef struct
  3543. {
  3544. KSPROPERTY Property;
  3545. ULONG StreamIndex;
  3546. LONG DefaultKeyFrameRate;
  3547. LONG DefaultPFrameRate;
  3548. LONG DefaultQuality;
  3549. LONG NumberOfQualitySettings;
  3550. LONG Capabilities;
  3551. }KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S, * PKSPROPERTY_VIDEOCOMPRESSION_GETINFO_S;
  3552. typedef struct
  3553. {
  3554. KSPROPERTY Property;
  3555. ULONG StreamIndex;
  3556. LONG Value;
  3557. }KSPROPERTY_VIDEOCOMPRESSION_S, * PKSPROPERTY_VIDEOCOMPRESSION_S;
  3558. typedef struct
  3559. {
  3560. KSPROPERTY Property;
  3561. ULONG StreamIndex;
  3562. LONG Value;
  3563. ULONG Flags;
  3564. }KSPROPERTY_VIDEOCOMPRESSION_S1, * PKSPROPERTY_VIDEOCOMPRESSION_S1;
  3565. # define STATIC_KSDATAFORMAT_SUBTYPE_OVERLAY \
  3566. 0xe436eb7fL, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70
  3567. DEFINE_GUIDSTRUCT("e436eb7f-524f-11ce-9f53-0020af0ba770", KSDATAFORMAT_SUBTYPE_OVERLAY);
  3568. # define KSDATAFORMAT_SUBTYPE_OVERLAY DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_OVERLAY)
  3569. # define STATIC_KSPROPSETID_OverlayUpdate \
  3570. 0x490EA5CFL, 0x7681, 0x11D1, 0xA2, 0x1C, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
  3571. DEFINE_GUIDSTRUCT("490EA5CF-7681-11D1-A21C-00A0C9223196", KSPROPSETID_OverlayUpdate);
  3572. # define KSPROPSETID_OverlayUpdate DEFINE_GUIDNAMED(KSPROPSETID_OverlayUpdate)
  3573. typedef enum
  3574. {
  3575. KSPROPERTY_OVERLAYUPDATE_INTERESTS,
  3576. KSPROPERTY_OVERLAYUPDATE_CLIPLIST = 0x1,
  3577. KSPROPERTY_OVERLAYUPDATE_PALETTE = 0x2,
  3578. KSPROPERTY_OVERLAYUPDATE_COLORKEY = 0x4,
  3579. KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION = 0x8,
  3580. KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE = 0x10,
  3581. KSPROPERTY_OVERLAYUPDATE_COLORREF = 0x10000000
  3582. }KSPROPERTY_OVERLAYUPDATE;
  3583. typedef struct
  3584. {
  3585. ULONG PelsWidth;
  3586. ULONG PelsHeight;
  3587. ULONG BitsPerPel;
  3588. WCHAR DeviceID[1];
  3589. }KSDISPLAYCHANGE, * PKSDISPLAYCHANGE;
  3590. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_INTERESTS(Handler) \
  3591. DEFINE_KSPROPERTY_ITEM( \
  3592. KSPROPERTY_OVERLAYUPDATE_INTERESTS, \
  3593. (Handler), \
  3594. sizeof(KSPROPERTY), \
  3595. sizeof(ULONG), \
  3596. NULL, NULL, 0, NULL, NULL, 0)
  3597. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_PALETTE(Handler) \
  3598. DEFINE_KSPROPERTY_ITEM( \
  3599. KSPROPERTY_OVERLAYUPDATE_PALETTE, \
  3600. NULL, \
  3601. sizeof(KSPROPERTY), \
  3602. 0, \
  3603. (Handler), \
  3604. NULL, 0, NULL, NULL, 0)
  3605. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORKEY(Handler) \
  3606. DEFINE_KSPROPERTY_ITEM( \
  3607. KSPROPERTY_OVERLAYUPDATE_COLORKEY, \
  3608. NULL, \
  3609. sizeof(KSPROPERTY), \
  3610. sizeof(COLORKEY), \
  3611. (Handler), \
  3612. NULL, 0, NULL, NULL, 0)
  3613. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_CLIPLIST(Handler) \
  3614. DEFINE_KSPROPERTY_ITEM( \
  3615. KSPROPERTY_OVERLAYUPDATE_CLIPLIST, \
  3616. NULL, \
  3617. sizeof(KSPROPERTY), \
  3618. 2 * sizeof(RECT) + sizeof(RGNDATAHEADER), \
  3619. (Handler), \
  3620. NULL, 0, NULL, NULL, 0)
  3621. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_VIDEOPOSITION(Handler) \
  3622. DEFINE_KSPROPERTY_ITEM( \
  3623. KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION, \
  3624. NULL, \
  3625. sizeof(KSPROPERTY), \
  3626. 2 * sizeof(RECT), \
  3627. (Handler), \
  3628. NULL, 0, NULL, NULL, 0)
  3629. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_DISPLAYCHANGE(Handler) \
  3630. DEFINE_KSPROPERTY_ITEM( \
  3631. KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE, \
  3632. NULL, \
  3633. sizeof(KSPROPERTY), \
  3634. sizeof(KSDISPLAYCHANGE), \
  3635. (Handler), \
  3636. NULL, 0, NULL, NULL, 0)
  3637. # define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORREF(Handler) \
  3638. DEFINE_KSPROPERTY_ITEM( \
  3639. KSPROPERTY_OVERLAYUPDATE_COLORREF, \
  3640. (Handler), \
  3641. sizeof(KSPROPERTY), \
  3642. sizeof(COLORREF), \
  3643. NULL, \
  3644. NULL, 0, NULL, NULL, 0)
  3645. # define STATIC_PROPSETID_VIDCAP_VIDEOCONTROL \
  3646. 0x6a2e0670L, 0x28e4, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3647. DEFINE_GUIDSTRUCT("6a2e0670-28e4-11d0-a18c-00a0c9118956", PROPSETID_VIDCAP_VIDEOCONTROL);
  3648. # define PROPSETID_VIDCAP_VIDEOCONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCONTROL)
  3649. typedef enum
  3650. {
  3651. KSPROPERTY_VIDEOCONTROL_CAPS,
  3652. KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE,
  3653. KSPROPERTY_VIDEOCONTROL_FRAME_RATES,
  3654. KSPROPERTY_VIDEOCONTROL_MODE
  3655. }KSPROPERTY_VIDCAP_VIDEOCONTROL;
  3656. typedef enum
  3657. {
  3658. KS_VideoControlFlag_FlipHorizontal = 0x0001,
  3659. KS_VideoControlFlag_FlipVertical = 0x0002,
  3660. KS_Obsolete_VideoControlFlag_ExternalTriggerEnable = 0x0010,
  3661. KS_Obsolete_VideoControlFlag_Trigger = 0x0020,
  3662. KS_VideoControlFlag_ExternalTriggerEnable = 0x0004,
  3663. KS_VideoControlFlag_Trigger = 0x0008
  3664. }KS_VideoControlFlags;
  3665. typedef struct
  3666. {
  3667. KSPROPERTY Property;
  3668. ULONG StreamIndex;
  3669. ULONG VideoControlCaps;
  3670. }KSPROPERTY_VIDEOCONTROL_CAPS_S, * PKSPROPERTY_VIDEOCONTROL_CAPS_S;
  3671. typedef struct
  3672. {
  3673. KSPROPERTY Property;
  3674. ULONG StreamIndex;
  3675. LONG Mode;
  3676. }KSPROPERTY_VIDEOCONTROL_MODE_S, * PKSPROPERTY_VIDEOCONTROL_MODE_S;
  3677. typedef struct
  3678. {
  3679. KSPROPERTY Property;
  3680. ULONG StreamIndex;
  3681. ULONG RangeIndex;
  3682. SIZE Dimensions;
  3683. LONGLONG CurrentActualFrameRate;
  3684. LONGLONG CurrentMaxAvailableFrameRate;
  3685. }KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S, * PKSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S;
  3686. typedef struct
  3687. {
  3688. KSPROPERTY Property;
  3689. ULONG StreamIndex;
  3690. ULONG RangeIndex;
  3691. SIZE Dimensions;
  3692. }KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S, * PKSPROPERTY_VIDEOCONTROL_FRAME_RATES_S;
  3693. # define STATIC_PROPSETID_VIDCAP_DROPPEDFRAMES \
  3694. 0xC6E13344L, 0x30AC, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56
  3695. DEFINE_GUIDSTRUCT("C6E13344-30AC-11d0-A18C-00A0C9118956", PROPSETID_VIDCAP_DROPPEDFRAMES);
  3696. # define PROPSETID_VIDCAP_DROPPEDFRAMES DEFINE_GUIDNAMED(PROPSETID_VIDCAP_DROPPEDFRAMES)
  3697. typedef enum
  3698. {
  3699. KSPROPERTY_DROPPEDFRAMES_CURRENT
  3700. }KSPROPERTY_VIDCAP_DROPPEDFRAMES;
  3701. typedef struct
  3702. {
  3703. KSPROPERTY Property;
  3704. LONGLONG PictureNumber;
  3705. LONGLONG DropCount;
  3706. ULONG AverageFrameSize;
  3707. }KSPROPERTY_DROPPEDFRAMES_CURRENT_S, * PKSPROPERTY_DROPPEDFRAMES_CURRENT_S;
  3708. # define STATIC_KSPROPSETID_VPConfig \
  3709. 0xbc29a660L, 0x30e3, 0x11d0, 0x9e, 0x69, 0x00, 0xc0, 0x4f, 0xd7, 0xc1, 0x5b
  3710. DEFINE_GUIDSTRUCT("bc29a660-30e3-11d0-9e69-00c04fd7c15b", KSPROPSETID_VPConfig);
  3711. # define KSPROPSETID_VPConfig DEFINE_GUIDNAMED(KSPROPSETID_VPConfig)
  3712. # define STATIC_KSPROPSETID_VPVBIConfig \
  3713. 0xec529b00L, 0x1a1f, 0x11d1, 0xba, 0xd9, 0x0, 0x60, 0x97, 0x44, 0x11, 0x1a
  3714. DEFINE_GUIDSTRUCT("ec529b00-1a1f-11d1-bad9-00609744111a", KSPROPSETID_VPVBIConfig);
  3715. # define KSPROPSETID_VPVBIConfig DEFINE_GUIDNAMED(KSPROPSETID_VPVBIConfig)
  3716. typedef enum
  3717. {
  3718. KSPROPERTY_VPCONFIG_NUMCONNECTINFO,
  3719. KSPROPERTY_VPCONFIG_GETCONNECTINFO,
  3720. KSPROPERTY_VPCONFIG_SETCONNECTINFO,
  3721. KSPROPERTY_VPCONFIG_VPDATAINFO,
  3722. KSPROPERTY_VPCONFIG_MAXPIXELRATE,
  3723. KSPROPERTY_VPCONFIG_INFORMVPINPUT,
  3724. KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT,
  3725. KSPROPERTY_VPCONFIG_GETVIDEOFORMAT,
  3726. KSPROPERTY_VPCONFIG_SETVIDEOFORMAT,
  3727. KSPROPERTY_VPCONFIG_INVERTPOLARITY,
  3728. KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY,
  3729. KSPROPERTY_VPCONFIG_SCALEFACTOR,
  3730. KSPROPERTY_VPCONFIG_DDRAWHANDLE,
  3731. KSPROPERTY_VPCONFIG_VIDEOPORTID,
  3732. KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE,
  3733. KSPROPERTY_VPCONFIG_SURFACEPARAMS
  3734. }KSPROPERTY_VPCONFIG;
  3735. # define STATIC_CLSID_KsIBasicAudioInterfaceHandler \
  3736. 0xb9f8ac3e, 0x0f71, 0x11d2, 0xb7, 0x2c, 0x00, 0xc0, 0x4f, 0xb6, 0xbd, 0x3d
  3737. DEFINE_GUIDSTRUCT("b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d", CLSID_KsIBasicAudioInterfaceHandler);
  3738. # define CLSID_KsIBasicAudioInterfaceHandler DEFINE_GUIDNAMED(CLSID_KsIBasicAudioInterfaceHandler)
  3739. # ifdef __IVPType__
  3740. typedef struct
  3741. {
  3742. AMVPSIZE Size;
  3743. DWORD MaxPixelsPerSecond;
  3744. DWORD Reserved;
  3745. }KSVPMAXPIXELRATE, * PKSVPMAXPIXELRATE;
  3746. typedef struct
  3747. {
  3748. KSPROPERTY Property;
  3749. AMVPSIZE Size;
  3750. }KSVPSIZE_PROP, * PKSVPSIZE_PROP;
  3751. typedef struct
  3752. {
  3753. DWORD dwPitch;
  3754. DWORD dwXOrigin;
  3755. DWORD dwYOrigin;
  3756. }KSVPSURFACEPARAMS, * PKSVPSURFACEPARAMS;
  3757. # else /* __IVPType__ */
  3758. # ifndef __DDRAW_INCLUDED__
  3759. # define DDPF_FOURCC 0x00000004l
  3760. typedef struct _DDPIXELFORMAT
  3761. {
  3762. DWORD dwSize;
  3763. DWORD dwFlags;
  3764. DWORD dwFourCC;
  3765. __MINGW_EXTENSION union
  3766. {
  3767. DWORD dwRGBBitCount;
  3768. DWORD dwYUVBitCount;
  3769. DWORD dwZBufferBitDepth;
  3770. DWORD dwAlphaBitDepth;
  3771. };
  3772. __MINGW_EXTENSION union
  3773. {
  3774. DWORD dwRBitMask;
  3775. DWORD dwYBitMask;
  3776. };
  3777. __MINGW_EXTENSION union
  3778. {
  3779. DWORD dwGBitMask;
  3780. DWORD dwUBitMask;
  3781. };
  3782. __MINGW_EXTENSION union
  3783. {
  3784. DWORD dwBBitMask;
  3785. DWORD dwVBitMask;
  3786. };
  3787. __MINGW_EXTENSION union
  3788. {
  3789. DWORD dwRGBAlphaBitMask;
  3790. DWORD dwYUVAlphaBitMask;
  3791. DWORD dwRGBZBitMask;
  3792. DWORD dwYUVZBitMask;
  3793. };
  3794. }DDPIXELFORMAT, * LPDDPIXELFORMAT;
  3795. # endif /* __DDRAW_INCLUDED__ */
  3796. # ifndef __DVP_INCLUDED__
  3797. typedef struct _DDVIDEOPORTCONNECT
  3798. {
  3799. DWORD dwSize;
  3800. DWORD dwPortWidth;
  3801. GUID guidTypeID;
  3802. DWORD dwFlags;
  3803. ULONG_PTR dwReserved1;
  3804. }DDVIDEOPORTCONNECT, * LPDDVIDEOPORTCONNECT;
  3805. # define DDVPTYPE_E_HREFH_VREFH \
  3806. 0x54F39980L, 0xDA60, 0x11CF, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8
  3807. # define DDVPTYPE_E_HREFL_VREFL \
  3808. 0xE09C77E0L, 0xDA60, 0x11CF, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8
  3809. # endif /* __DVP_INCLUDED__ */
  3810. typedef enum
  3811. {
  3812. KS_PixAspectRatio_NTSC4x3,
  3813. KS_PixAspectRatio_NTSC16x9,
  3814. KS_PixAspectRatio_PAL4x3,
  3815. KS_PixAspectRatio_PAL16x9
  3816. }KS_AMPixAspectRatio;
  3817. typedef enum
  3818. {
  3819. KS_AMVP_DO_NOT_CARE,
  3820. KS_AMVP_BEST_BANDWIDTH,
  3821. KS_AMVP_INPUT_SAME_AS_OUTPUT
  3822. }KS_AMVP_SELECTFORMATBY;
  3823. typedef enum
  3824. {
  3825. KS_AMVP_MODE_WEAVE,
  3826. KS_AMVP_MODE_BOBINTERLEAVED,
  3827. KS_AMVP_MODE_BOBNONINTERLEAVED,
  3828. KS_AMVP_MODE_SKIPEVEN,
  3829. KS_AMVP_MODE_SKIPODD
  3830. }KS_AMVP_MODE;
  3831. typedef struct tagKS_AMVPDIMINFO
  3832. {
  3833. DWORD dwFieldWidth;
  3834. DWORD dwFieldHeight;
  3835. DWORD dwVBIWidth;
  3836. DWORD dwVBIHeight;
  3837. RECT rcValidRegion;
  3838. }KS_AMVPDIMINFO, * PKS_AMVPDIMINFO;
  3839. typedef struct tagKS_AMVPDATAINFO
  3840. {
  3841. DWORD dwSize;
  3842. DWORD dwMicrosecondsPerField;
  3843. KS_AMVPDIMINFO amvpDimInfo;
  3844. DWORD dwPictAspectRatioX;
  3845. DWORD dwPictAspectRatioY;
  3846. WINBOOL bEnableDoubleClock;
  3847. WINBOOL bEnableVACT;
  3848. WINBOOL bDataIsInterlaced;
  3849. LONG lHalfLinesOdd;
  3850. WINBOOL bFieldPolarityInverted;
  3851. DWORD dwNumLinesInVREF;
  3852. LONG lHalfLinesEven;
  3853. DWORD dwReserved1;
  3854. }KS_AMVPDATAINFO, * PKS_AMVPDATAINFO;
  3855. typedef struct tagKS_AMVPSIZE
  3856. {
  3857. DWORD dwWidth;
  3858. DWORD dwHeight;
  3859. }KS_AMVPSIZE, * PKS_AMVPSIZE;
  3860. typedef struct
  3861. {
  3862. KS_AMVPSIZE Size;
  3863. DWORD MaxPixelsPerSecond;
  3864. DWORD Reserved;
  3865. }KSVPMAXPIXELRATE, * PKSVPMAXPIXELRATE;
  3866. typedef struct
  3867. {
  3868. KSPROPERTY Property;
  3869. KS_AMVPSIZE Size;
  3870. }KSVPSIZE_PROP, * PKSVPSIZE_PROP;
  3871. typedef struct
  3872. {
  3873. DWORD dwPitch;
  3874. DWORD dwXOrigin;
  3875. DWORD dwYOrigin;
  3876. }KSVPSURFACEPARAMS, * PKSVPSURFACEPARAMS;
  3877. # endif /* __IVPType__ */
  3878. # define STATIC_KSEVENTSETID_VPNotify \
  3879. 0x20c5598eL, 0xd3c8, 0x11d0, 0x8d, 0xfc, 0x00, 0xc0, 0x4f, 0xd7, 0xc0, 0x8b
  3880. DEFINE_GUIDSTRUCT("20c5598e-d3c8-11d0-8dfc-00c04fd7c08b", KSEVENTSETID_VPNotify);
  3881. # define KSEVENTSETID_VPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VPNotify)
  3882. typedef enum
  3883. {
  3884. KSEVENT_VPNOTIFY_FORMATCHANGE
  3885. }KSEVENT_VPNOTIFY;
  3886. # define STATIC_KSEVENTSETID_VIDCAPTOSTI \
  3887. 0xdb47de20, 0xf628, 0x11d1, 0xba, 0x41, 0x0, 0xa0, 0xc9, 0xd, 0x2b, 0x5
  3888. DEFINE_GUIDSTRUCT("DB47DE20-F628-11d1-BA41-00A0C90D2B05", KSEVENTSETID_VIDCAPTOSTI);
  3889. # define KSEVENTSETID_VIDCAPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAPTOSTI)
  3890. typedef enum
  3891. {
  3892. KSEVENT_VIDCAPTOSTI_EXT_TRIGGER,
  3893. KSEVENT_VIDCAP_AUTO_UPDATE,
  3894. KSEVENT_VIDCAP_SEARCH
  3895. }KSEVENT_VIDCAPTOSTI;
  3896. typedef enum
  3897. {
  3898. KSPROPERTY_EXTENSION_UNIT_INFO,
  3899. KSPROPERTY_EXTENSION_UNIT_CONTROL,
  3900. KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH = 0xffff
  3901. }KSPROPERTY_EXTENSION_UNIT, * PKSPROPERTY_EXTENSION_UNIT;
  3902. # define STATIC_KSEVENTSETID_VPVBINotify \
  3903. 0xec529b01L, 0x1a1f, 0x11d1, 0xba, 0xd9, 0x0, 0x60, 0x97, 0x44, 0x11, 0x1a
  3904. DEFINE_GUIDSTRUCT("ec529b01-1a1f-11d1-bad9-00609744111a", KSEVENTSETID_VPVBINotify);
  3905. # define KSEVENTSETID_VPVBINotify DEFINE_GUIDNAMED(KSEVENTSETID_VPVBINotify)
  3906. typedef enum
  3907. {
  3908. KSEVENT_VPVBINOTIFY_FORMATCHANGE
  3909. }KSEVENT_VPVBINOTIFY;
  3910. # define STATIC_KSDATAFORMAT_TYPE_AUXLine21Data \
  3911. 0x670aea80L, 0x3a82, 0x11d0, 0xb7, 0x9b, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7
  3912. DEFINE_GUIDSTRUCT("670aea80-3a82-11d0-b79b-00aa003767a7", KSDATAFORMAT_TYPE_AUXLine21Data);
  3913. # define KSDATAFORMAT_TYPE_AUXLine21Data DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUXLine21Data)
  3914. # define STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair \
  3915. 0x6e8d4a22L, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7
  3916. DEFINE_GUIDSTRUCT("6e8d4a22-310c-11d0-b79a-00aa003767a7", KSDATAFORMAT_SUBTYPE_Line21_BytePair);
  3917. # define KSDATAFORMAT_SUBTYPE_Line21_BytePair DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_BytePair)
  3918. # define STATIC_KSDATAFORMAT_SUBTYPE_Line21_GOPPacket \
  3919. 0x6e8d4a23L, 0x310c, 0x11d0, 0xb7, 0x9a, 0x00, 0xaa, 0x00, 0x37, 0x67, 0xa7
  3920. DEFINE_GUIDSTRUCT("6e8d4a23-310c-11d0-b79a-00aa003767a7", KSDATAFORMAT_SUBTYPE_Line21_GOPPacket);
  3921. # define KSDATAFORMAT_SUBTYPE_Line21_GOPPacket DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket)
  3922. typedef struct _KSGOP_USERDATA
  3923. {
  3924. ULONG sc;
  3925. ULONG reserved1;
  3926. BYTE cFields;
  3927. CHAR l21Data[3];
  3928. }KSGOP_USERDATA, * PKSGOP_USERDATA;
  3929. # define STATIC_KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK \
  3930. 0xed0b916a, 0x044d, 0x11d1, 0xaa, 0x78, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x60
  3931. DEFINE_GUIDSTRUCT("ed0b916a-044d-11d1-aa78-00c04fc31d60", KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK);
  3932. # define KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK)
  3933. # define KS_AM_UseNewCSSKey 0x1
  3934. # define STATIC_KSPROPSETID_TSRateChange \
  3935. 0xa503c5c0, 0x1d1d, 0x11d1, 0xad, 0x80, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0
  3936. DEFINE_GUIDSTRUCT("A503C5C0-1D1D-11D1-AD80-444553540000", KSPROPSETID_TSRateChange);
  3937. # define KSPROPSETID_TSRateChange DEFINE_GUIDNAMED(KSPROPSETID_TSRateChange)
  3938. typedef enum
  3939. {
  3940. KS_AM_RATE_SimpleRateChange = 1,
  3941. KS_AM_RATE_ExactRateChange = 2,
  3942. KS_AM_RATE_MaxFullDataRate = 3,
  3943. KS_AM_RATE_Step = 4
  3944. }KS_AM_PROPERTY_TS_RATE_CHANGE;
  3945. typedef struct
  3946. {
  3947. REFERENCE_TIME StartTime;
  3948. LONG Rate;
  3949. }KS_AM_SimpleRateChange, * PKS_AM_SimpleRateChange;
  3950. typedef struct
  3951. {
  3952. REFERENCE_TIME OutputZeroTime;
  3953. LONG Rate;
  3954. }KS_AM_ExactRateChange, * PKS_AM_ExactRateChange;
  3955. typedef LONG KS_AM_MaxFullDataRate;
  3956. typedef DWORD KS_AM_Step;
  3957. # define STATIC_KSCATEGORY_ENCODER \
  3958. 0x19689bf6, 0xc384, 0x48fd, 0xad, 0x51, 0x90, 0xe5, 0x8c, 0x79, 0xf7, 0xb
  3959. DEFINE_GUIDSTRUCT("19689BF6-C384-48fd-AD51-90E58C79F70B", KSCATEGORY_ENCODER);
  3960. # define KSCATEGORY_ENCODER DEFINE_GUIDNAMED(KSCATEGORY_ENCODER)
  3961. # define STATIC_KSCATEGORY_MULTIPLEXER \
  3962. 0x7a5de1d3, 0x1a1, 0x452c, 0xb4, 0x81, 0x4f, 0xa2, 0xb9, 0x62, 0x71, 0xe8
  3963. DEFINE_GUIDSTRUCT("7A5DE1D3-01A1-452c-B481-4FA2B96271E8", KSCATEGORY_MULTIPLEXER);
  3964. # define KSCATEGORY_MULTIPLEXER DEFINE_GUIDNAMED(KSCATEGORY_MULTIPLEXER)
  3965. # ifndef __ENCODER_API_GUIDS__
  3966. # define __ENCODER_API_GUIDS__
  3967. # define STATIC_ENCAPIPARAM_BITRATE \
  3968. 0x49cc4c43, 0xca83, 0x4ad4, 0xa9, 0xaf, 0xf3, 0x69, 0x6a, 0xf6, 0x66, 0xdf
  3969. DEFINE_GUIDSTRUCT("49CC4C43-CA83-4ad4-A9AF-F3696AF666DF", ENCAPIPARAM_BITRATE);
  3970. # define ENCAPIPARAM_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE)
  3971. # define STATIC_ENCAPIPARAM_PEAK_BITRATE \
  3972. 0x703f16a9, 0x3d48, 0x44a1, 0xb0, 0x77, 0x1, 0x8d, 0xff, 0x91, 0x5d, 0x19
  3973. DEFINE_GUIDSTRUCT("703F16A9-3D48-44a1-B077-018DFF915D19", ENCAPIPARAM_PEAK_BITRATE);
  3974. # define ENCAPIPARAM_PEAK_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_PEAK_BITRATE)
  3975. # define STATIC_ENCAPIPARAM_BITRATE_MODE \
  3976. 0xee5fb25c, 0xc713, 0x40d1, 0x9d, 0x58, 0xc0, 0xd7, 0x24, 0x1e, 0x25, 0xf
  3977. DEFINE_GUIDSTRUCT("EE5FB25C-C713-40d1-9D58-C0D7241E250F", ENCAPIPARAM_BITRATE_MODE);
  3978. # define ENCAPIPARAM_BITRATE_MODE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE_MODE)
  3979. # define STATIC_CODECAPI_CHANGELISTS \
  3980. 0x62b12acf, 0xf6b0, 0x47d9, 0x94, 0x56, 0x96, 0xf2, 0x2c, 0x4e, 0x0b, 0x9d
  3981. DEFINE_GUIDSTRUCT("62B12ACF-F6B0-47D9-9456-96F22C4E0B9D", CODECAPI_CHANGELISTS);
  3982. # define CODECAPI_CHANGELISTS DEFINE_GUIDNAMED(CODECAPI_CHANGELISTS)
  3983. # define STATIC_CODECAPI_VIDEO_ENCODER \
  3984. 0x7112e8e1, 0x3d03, 0x47ef, 0x8e, 0x60, 0x03, 0xf1, 0xcf, 0x53, 0x73, 0x01
  3985. DEFINE_GUIDSTRUCT("7112E8E1-3D03-47EF-8E60-03F1CF537301", CODECAPI_VIDEO_ENCODER);
  3986. # define CODECAPI_VIDEO_ENCODER DEFINE_GUIDNAMED(CODECAPI_VIDEO_ENCODER)
  3987. # define STATIC_CODECAPI_AUDIO_ENCODER \
  3988. 0xb9d19a3e, 0xf897, 0x429c, 0xbc, 0x46, 0x81, 0x38, 0xb7, 0x27, 0x2b, 0x2d
  3989. DEFINE_GUIDSTRUCT("B9D19A3E-F897-429C-BC46-8138B7272B2D", CODECAPI_AUDIO_ENCODER);
  3990. # define CODECAPI_AUDIO_ENCODER DEFINE_GUIDNAMED(CODECAPI_AUDIO_ENCODER)
  3991. # define STATIC_CODECAPI_SETALLDEFAULTS \
  3992. 0x6c5e6a7c, 0xacf8, 0x4f55, 0xa9, 0x99, 0x1a, 0x62, 0x81, 0x09, 0x05, 0x1b
  3993. DEFINE_GUIDSTRUCT("6C5E6A7C-ACF8-4F55-A999-1A628109051B", CODECAPI_SETALLDEFAULTS);
  3994. # define CODECAPI_SETALLDEFAULTS DEFINE_GUIDNAMED(CODECAPI_SETALLDEFAULTS)
  3995. # define STATIC_CODECAPI_ALLSETTINGS \
  3996. 0x6a577e92, 0x83e1, 0x4113, 0xad, 0xc2, 0x4f, 0xce, 0xc3, 0x2f, 0x83, 0xa1
  3997. DEFINE_GUIDSTRUCT("6A577E92-83E1-4113-ADC2-4FCEC32F83A1", CODECAPI_ALLSETTINGS);
  3998. # define CODECAPI_ALLSETTINGS DEFINE_GUIDNAMED(CODECAPI_ALLSETTINGS)
  3999. # define STATIC_CODECAPI_SUPPORTSEVENTS \
  4000. 0x0581af97, 0x7693, 0x4dbd, 0x9d, 0xca, 0x3f, 0x9e, 0xbd, 0x65, 0x85, 0xa1
  4001. DEFINE_GUIDSTRUCT("0581AF97-7693-4DBD-9DCA-3F9EBD6585A1", CODECAPI_SUPPORTSEVENTS);
  4002. # define CODECAPI_SUPPORTSEVENTS DEFINE_GUIDNAMED(CODECAPI_SUPPORTSEVENTS)
  4003. # define STATIC_CODECAPI_CURRENTCHANGELIST \
  4004. 0x1cb14e83, 0x7d72, 0x4657, 0x83, 0xfd, 0x47, 0xa2, 0xc5, 0xb9, 0xd1, 0x3d
  4005. DEFINE_GUIDSTRUCT("1CB14E83-7D72-4657-83FD-47A2C5B9D13D", CODECAPI_CURRENTCHANGELIST);
  4006. # define CODECAPI_CURRENTCHANGELIST DEFINE_GUIDNAMED(CODECAPI_CURRENTCHANGELIST)
  4007. # endif /* __ENCODER_API_GUIDS__ */
  4008. # ifndef __ENCODER_API_DEFINES__
  4009. # define __ENCODER_API_DEFINES__
  4010. typedef enum
  4011. {
  4012. ConstantBitRate = 0,
  4013. VariableBitRateAverage,
  4014. VariableBitRatePeak
  4015. }VIDEOENCODER_BITRATE_MODE;
  4016. # endif /* __ENCODER_API_DEFINES__ */
  4017. # define STATIC_KSPROPSETID_Jack \
  4018. 0x4509f757, 0x2d46, 0x4637, 0x8e, 0x62, 0xce, 0x7d, 0xb9, 0x44, 0xf5, 0x7b
  4019. DEFINE_GUIDSTRUCT("4509F757-2D46-4637-8E62-CE7DB944F57B", KSPROPSETID_Jack);
  4020. # define KSPROPSETID_Jack DEFINE_GUIDNAMED(KSPROPSETID_Jack)
  4021. typedef enum
  4022. {
  4023. KSPROPERTY_JACK_DESCRIPTION = 1,
  4024. KSPROPERTY_JACK_DESCRIPTION2,
  4025. KSPROPERTY_JACK_SINK_INFO
  4026. }KSPROPERTY_JACK;
  4027. typedef enum
  4028. {
  4029. eConnTypeUnknown,
  4030. eConnType3Point5mm,
  4031. eConnTypeQuarter,
  4032. eConnTypeAtapiInternal,
  4033. eConnTypeRCA,
  4034. eConnTypeOptical,
  4035. eConnTypeOtherDigital,
  4036. eConnTypeOtherAnalog,
  4037. eConnTypeMultichannelAnalogDIN,
  4038. eConnTypeXlrProfessional,
  4039. eConnTypeRJ11Modem,
  4040. eConnTypeCombination
  4041. }EPcxConnectionType;
  4042. typedef enum
  4043. {
  4044. eGeoLocRear = 0x1,
  4045. eGeoLocFront,
  4046. eGeoLocLeft,
  4047. eGeoLocRight,
  4048. eGeoLocTop,
  4049. eGeoLocBottom,
  4050. eGeoLocRearPanel,
  4051. eGeoLocRiser,
  4052. eGeoLocInsideMobileLid,
  4053. eGeoLocDrivebay,
  4054. eGeoLocHDMI,
  4055. eGeoLocOutsideMobileLid,
  4056. eGeoLocATAPI,
  4057. eGeoLocReserved5,
  4058. eGeoLocReserved6,
  4059. EPcxGeoLocation_enum_count
  4060. }EPcxGeoLocation;
  4061. typedef enum
  4062. {
  4063. eGenLocPrimaryBox = 0,
  4064. eGenLocInternal,
  4065. eGenLocSeparate,
  4066. eGenLocOther,
  4067. EPcxGenLocation_enum_count
  4068. }EPcxGenLocation;
  4069. typedef enum
  4070. {
  4071. ePortConnJack = 0,
  4072. ePortConnIntegratedDevice,
  4073. ePortConnBothIntegratedAndJack,
  4074. ePortConnUnknown
  4075. }EPxcPortConnection;
  4076. typedef struct
  4077. {
  4078. DWORD ChannelMapping;
  4079. COLORREF Color;
  4080. EPcxConnectionType ConnectionType;
  4081. EPcxGeoLocation GeoLocation;
  4082. EPcxGenLocation GenLocation;
  4083. EPxcPortConnection PortConnection;
  4084. BOOL IsConnected;
  4085. }KSJACK_DESCRIPTION, * PKSJACK_DESCRIPTION;
  4086. typedef enum
  4087. {
  4088. KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,
  4089. KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT,
  4090. }KSJACK_SINK_CONNECTIONTYPE;
  4091. # define MAX_SINK_DESCRIPTION_NAME_LENGTH 32
  4092. typedef struct _tagKSJACK_SINK_INFORMATION
  4093. {
  4094. KSJACK_SINK_CONNECTIONTYPE ConnType;
  4095. WORD ManufacturerId;
  4096. WORD ProductId;
  4097. WORD AudioLatency;
  4098. BOOL HDCPCapable;
  4099. BOOL AICapable;
  4100. UCHAR SinkDescriptionLength;
  4101. WCHAR SinkDescription[MAX_SINK_DESCRIPTION_NAME_LENGTH];
  4102. LUID PortId;
  4103. }KSJACK_SINK_INFORMATION, * PKSJACK_SINK_INFORMATION;
  4104. # define JACKDESC2_PRESENCE_DETECT_CAPABILITY 0x00000001
  4105. # define JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY 0x00000002
  4106. typedef struct _tagKSJACK_DESCRIPTION2
  4107. {
  4108. DWORD DeviceStateInfo;
  4109. DWORD JackCapabilities;
  4110. }KSJACK_DESCRIPTION2, * PKSJACK_DESCRIPTION2;
  4111. #endif /* _KSMEDIA_ */