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

517 lines
24 KiB

  1. <html xmlns:v="urn:schemas-microsoft-com:vml"
  2. xmlns:o="urn:schemas-microsoft-com:office:office"
  3. xmlns:w="urn:schemas-microsoft-com:office:word"
  4. xmlns="http://www.w3.org/TR/REC-html40">
  5. <head>
  6. <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  7. <meta name=ProgId content=Word.Document>
  8. <meta name=Generator content="Microsoft Word 9">
  9. <meta name=Originator content="Microsoft Word 9">
  10. <link rel=File-List href="./testcap_files/filelist.xml">
  11. <title>testcap</title>
  12. <style>
  13. <!--
  14. /* Font Definitions */
  15. @font-face
  16. {font-family:Courier;
  17. panose-1:0 0 0 0 0 0 0 0 0 0;
  18. mso-font-charset:0;
  19. mso-generic-font-family:modern;
  20. mso-font-format:other;
  21. mso-font-pitch:fixed;
  22. mso-font-signature:3 0 0 0 1 0;}
  23. @font-face
  24. {font-family:"MS Sans Serif";
  25. panose-1:0 0 0 0 0 0 0 0 0 0;
  26. mso-font-charset:0;
  27. mso-generic-font-family:swiss;
  28. mso-font-format:other;
  29. mso-font-pitch:variable;
  30. mso-font-signature:3 0 0 0 1 0;}
  31. @font-face
  32. {font-family:Verdana;
  33. panose-1:2 11 6 4 3 5 4 4 2 4;
  34. mso-font-charset:0;
  35. mso-generic-font-family:swiss;
  36. mso-font-pitch:variable;
  37. mso-font-signature:536871559 0 0 0 415 0;}
  38. /* Style Definitions */
  39. p.MsoNormal, li.MsoNormal, div.MsoNormal
  40. {mso-style-parent:"";
  41. margin:0in;
  42. margin-bottom:.0001pt;
  43. mso-pagination:widow-orphan;
  44. font-size:12.0pt;
  45. font-family:"Times New Roman";
  46. mso-fareast-font-family:"Times New Roman";
  47. color:black;}
  48. h2
  49. {margin-right:0in;
  50. mso-margin-top-alt:auto;
  51. mso-margin-bottom-alt:auto;
  52. margin-left:0in;
  53. mso-pagination:widow-orphan;
  54. mso-outline-level:2;
  55. font-size:18.0pt;
  56. font-family:"Times New Roman";
  57. color:black;
  58. font-weight:bold;}
  59. h3
  60. {margin-right:0in;
  61. mso-margin-top-alt:auto;
  62. mso-margin-bottom-alt:auto;
  63. margin-left:0in;
  64. mso-pagination:widow-orphan;
  65. mso-outline-level:3;
  66. font-size:13.5pt;
  67. font-family:"Times New Roman";
  68. color:black;
  69. font-weight:bold;}
  70. h4
  71. {margin-right:0in;
  72. mso-margin-top-alt:auto;
  73. mso-margin-bottom-alt:auto;
  74. margin-left:0in;
  75. mso-pagination:widow-orphan;
  76. mso-outline-level:4;
  77. font-size:12.0pt;
  78. font-family:"Times New Roman";
  79. color:black;
  80. font-weight:bold;}
  81. a:link, span.MsoHyperlink
  82. {color:blue;
  83. text-decoration:underline;
  84. text-underline:single;}
  85. a:visited, span.MsoHyperlinkFollowed
  86. {color:purple;
  87. text-decoration:underline;
  88. text-underline:single;}
  89. p
  90. {margin-right:0in;
  91. mso-margin-top-alt:auto;
  92. mso-margin-bottom-alt:auto;
  93. margin-left:0in;
  94. mso-pagination:widow-orphan;
  95. font-size:12.0pt;
  96. font-family:"Times New Roman";
  97. mso-fareast-font-family:"Times New Roman";
  98. color:black;}
  99. pre
  100. {margin:0in;
  101. margin-bottom:.0001pt;
  102. mso-pagination:widow-orphan;
  103. tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
  104. font-size:10.0pt;
  105. font-family:"Courier New";
  106. mso-fareast-font-family:"Courier New";
  107. color:black;}
  108. @page Section1
  109. {size:8.5in 11.0in;
  110. margin:1.0in 1.25in 1.0in 1.25in;
  111. mso-header-margin:.5in;
  112. mso-footer-margin:.5in;
  113. mso-paper-source:0;}
  114. div.Section1
  115. {page:Section1;}
  116. /* List Definitions */
  117. @list l0
  118. {mso-list-id:924532628;
  119. mso-list-type:hybrid;
  120. mso-list-template-ids:-1268368472 232533878 1312067608 1697283478 1631208008 1074174520 -64466156 2111333230 62154458 1505112768;}
  121. @list l0:level1
  122. {mso-level-number-format:bullet;
  123. mso-level-text:\F0B7;
  124. mso-level-tab-stop:.5in;
  125. mso-level-number-position:left;
  126. text-indent:-.25in;
  127. mso-ansi-font-size:10.0pt;
  128. font-family:Symbol;}
  129. @list l1
  130. {mso-list-id:945890961;
  131. mso-list-type:hybrid;
  132. mso-list-template-ids:-1818564880 133169900 -1934483494 860639428 -1044491662 963704892 -1481451322 -878685914 -2144946752 292576536;}
  133. @list l2
  134. {mso-list-id:1180855697;
  135. mso-list-type:hybrid;
  136. mso-list-template-ids:1484430786 -1503733484 1586265716 -1426946234 -168154914 1118730238 -1341765170 -347022698 1458317740 219425118;}
  137. @list l2:level1
  138. {mso-level-number-format:bullet;
  139. mso-level-text:\F0B7;
  140. mso-level-tab-stop:.5in;
  141. mso-level-number-position:left;
  142. text-indent:-.25in;
  143. mso-ansi-font-size:10.0pt;
  144. font-family:Symbol;}
  145. ol
  146. {margin-bottom:0in;}
  147. ul
  148. {margin-bottom:0in;}
  149. -->
  150. </style>
  151. <!--[if gte mso 9]><xml>
  152. <o:shapedefaults v:ext="edit" spidmax="1027"/>
  153. </xml><![endif]--><!--[if gte mso 9]><xml>
  154. <o:shapelayout v:ext="edit">
  155. <o:idmap v:ext="edit" data="1"/>
  156. </o:shapelayout></xml><![endif]-->
  157. <meta name=Template content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
  158. </head>
  159. <body bgcolor=white lang=EN-US link=blue vlink=purple style='tab-interval:.5in'
  160. leftmargin=8>
  161. <div class=Section1>
  162. <h2><a name=MYSAMPLE><span style='font-family:Verdana'>Testcap �</span></a><span
  163. style='font-family:Verdana'> A WDM Streaming Video Capture Driver which
  164. requires no Hardware<o:p></o:p></span></h2>
  165. <h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>
  166. <p><span style='font-size:10.0pt;font-family:Verdana'>Testcap is a prototypical
  167. sample WDM stream class video capture driver which does not require any
  168. hardware for operation. The driver simulates the front-end components of a PC/TV,
  169. including input selection, TvTuning, TvAudio control, and finally, digital
  170. video streaming. <o:p></o:p></span></p>
  171. <p><span style='font-size:10.0pt;font-family:Verdana'>The TvTuner component
  172. supports tuning modes of Analog TV (NTSC/PAL/SECAM), AM/FM Radio, as well as
  173. ATSC (American Broadcast Digital Television).<o:p></o:p></span></p>
  174. <p><span style='font-size:10.0pt;font-family:Verdana'>Testcap manifests itself
  175. in a DirectShow graph as four separate filters:<o:p></o:p></span></p>
  176. <ul type=disc>
  177. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  178. mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt;
  179. font-family:Verdana'>Testcap Capture <o:p></o:p></span></li>
  180. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  181. mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt;
  182. font-family:Verdana'>Testcap TvTuner <o:p></o:p></span></li>
  183. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  184. mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt;
  185. font-family:Verdana'>Testcap TVAudio <o:p></o:p></span></li>
  186. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  187. mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt;
  188. font-family:Verdana'>Testcap Crossbar<o:p></o:p></span></li>
  189. </ul>
  190. <p><span style='font-size:10.0pt;font-family:Verdana'>The capture portion
  191. produces five output streams, two of which are Capture and Preview which
  192. produce a variety of colorbars and grayscale patterns depending on the video
  193. input selected on the crossbar. The capture and preview streams contain video
  194. samples in either RGB24 or YUV422 color spaces and offer a large number of
  195. different image dimensions.<span style="mso-spacerun: yes"></span>The other
  196. three capture streams are VBI, HWCC, and HWNABTS.<span style="mso-spacerun:
  197. yes">� </span>These three are VBI streams, and offer simulated CC and NABTS
  198. waveforms for decoding, and simulated hardware decoded CC and NABTS.<o:p></o:p></span></p>
  199. <p><span style='font-size:10.0pt;font-family:Verdana'>This driver contains
  200. sample implementations for almost all of the property sets involved in WDM
  201. video capture. Since Testcap doesn't control actual hardware, most of the
  202. property set implementations are useful only as prototypes which you can borrow
  203. for your own implementations. This driver represents one extreme of combining
  204. all functionality representing the front end of a PC/TV into a single driver.
  205. The other extreme is to create a separate driver each element: TvTuner,
  206. TvAudio, Crossbar, and Capture. <o:p></o:p></span></p>
  207. <p><b><span style='font-size:10.0pt;font-family:Verdana'>Keywords</span></b><span
  208. style='font-size:10.0pt;font-family:Verdana'>: Video capture, WDM, stream
  209. class, TvTuner, driver, VBI.<o:p></o:p></span></p>
  210. <h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>
  211. <p><! ---------------- Snip Snip ---------------- ><span style='font-size:10.0pt;
  212. font-family:Verdana'>The sample is built with the standard DDK BUILD utility in
  213. the standard checked or free DDK build environment. Testcap is completely
  214. contained in one directory. The resulting binary from the build process is
  215. Testcap.sys, which is compatible on x86 and Alpha platforms.<o:p></o:p></span></p>
  216. <p><span style='font-size:10.0pt;font-family:Verdana'>Testcap is not a PnP
  217. driver, since no hardware is involved, and it must be installed manually:<o:p></o:p></span></p>
  218. <ul type=disc>
  219. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  220. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  221. font-family:Verdana'>My Computer.Properties.Hardware.Hardware Wizard.Add
  222. new hardware. <o:p></o:p></span></li>
  223. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  224. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  225. font-family:Verdana'>&quot;To install hardware which is not Plug and Play
  226. compatible, click Next.&quot; <o:p></o:p></span></li>
  227. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  228. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  229. font-family:Verdana'>&quot;No, I want to select the hardware from a
  230. list.&quot; <o:p></o:p></span></li>
  231. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  232. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  233. font-family:Verdana'>&quot;What type of hardware do you want to
  234. install&quot; <o:p></o:p></span></li>
  235. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  236. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  237. font-family:Verdana'>Sound, Video, and Game Controllers <o:p></o:p></span></li>
  238. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  239. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  240. font-family:Verdana'>&quot;Have Disk�&quot; <o:p></o:p></span></li>
  241. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  242. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  243. font-family:Verdana'>Browse to find &quot;Testcap.inf&quot; <o:p></o:p></span></li>
  244. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  245. mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt;
  246. font-family:Verdana'>Browse to find &quot;Testcap.sys&quot; when requested<o:p></o:p></span></li>
  247. </ul>
  248. <h3><span style='font-family:Verdana'><! ---------------- Snip Snip ---------------- >RESOURCES<o:p></o:p></span></h3>
  249. <p><span style='font-size:10.0pt;font-family:Verdana'>This driver has been
  250. tested with the following applicatons: Graphedt.exe, AMCap.exe, WebTV for
  251. Windows.<o:p></o:p></span></p>
  252. <p><span style='font-size:10.0pt;font-family:Verdana'>This website contains
  253. general information on driver and hardware development:<o:p></o:p></span></p>
  254. <p style='margin-left:1.0in'><a href="http://www.microsoft.com/hwdev">http://www.microsoft.com/hwdev</a><span
  255. style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
  256. <p><span style='font-size:10.0pt;font-family:Verdana'>This website contains information
  257. on DirectShow:<o:p></o:p></span></p>
  258. <p style='margin-left:1.0in'><a href="http://www.microsoft.com/directx">http://www.microsoft.com/directx</a>
  259. </p>
  260. <h3 style='margin-left:1.0in'><span style='font-family:Verdana'>&nbsp;<o:p></o:p></span></h3>
  261. <h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3>
  262. <h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4>
  263. <table border=0 cellspacing=0 cellpadding=0 width="100%" style='width:100.0%;
  264. border-collapse:collapse;mso-padding-alt:0in 5.4pt 0in 5.4pt'>
  265. <tr>
  266. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><b><u>File<o:p></o:p></u></b></pre></td>
  267. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><b><u>Description<o:p></o:p></u></b></pre></td>
  268. </tr>
  269. <tr>
  270. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre>Testcap.htm</pre></td>
  271. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre>The Sample Tour documentation for this sample (this file).</pre></td>
  272. </tr>
  273. <tr>
  274. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  275. style='font-family:Courier'>SOURCES<o:p></o:p></span></pre></td>
  276. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  277. style='font-family:Courier'>The generic file for building the code sample.<o:p></o:p></span></pre></td>
  278. </tr>
  279. <tr>
  280. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  281. style='font-family:Courier'>Testcap.inf<o:p></o:p></span></pre></td>
  282. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  283. style='font-family:Courier'>A sample installation file.<o:p></o:p></span></pre></td>
  284. </tr>
  285. <tr>
  286. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  287. style='font-family:Courier'>CapStrm.h<o:p></o:p></span></pre></td>
  288. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  289. style='font-family:Courier'>Declarations of streams and formats supported by the driver.<o:p></o:p></span></pre></td>
  290. </tr>
  291. <tr>
  292. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  293. style='font-family:Courier'>CapMain.c<o:p></o:p></span></pre></td>
  294. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  295. style='font-family:Courier'>DriverEntry(), initialize, un-initialize, and adapter SRB processing.<o:p></o:p></span></pre></td>
  296. </tr>
  297. <tr>
  298. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  299. style='font-family:Courier'>CapMain.h<o:p></o:p></span></pre></td>
  300. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  301. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  302. </tr>
  303. <tr>
  304. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  305. style='font-family:Courier'>CapVideo.c<o:p></o:p></span></pre></td>
  306. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  307. style='font-family:Courier'>Stream SRB processing.<o:p></o:p></span></pre></td>
  308. </tr>
  309. <tr>
  310. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  311. style='font-family:Courier'>CapVideo.h<o:p></o:p></span></pre></td>
  312. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  313. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  314. </tr>
  315. <tr>
  316. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  317. style='font-family:Courier'>CapXfer.c<o:p></o:p></span></pre></td>
  318. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  319. style='font-family:Courier'>Synthesizes images.<o:p></o:p></span></pre></td>
  320. </tr>
  321. <tr>
  322. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  323. style='font-family:Courier'>CapXfer.h<o:p></o:p></span></pre></td>
  324. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  325. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  326. </tr>
  327. <tr>
  328. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  329. style='font-family:Courier'>CapIRQ.c<o:p></o:p></span></pre></td>
  330. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  331. style='font-family:Courier'>Sample IRQ routines. <o:p></o:p></span></pre></td>
  332. </tr>
  333. <tr>
  334. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  335. style='font-family:Courier'>CapProp.c<o:p></o:p></span></pre></td>
  336. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  337. style='font-family:Courier'>Process all adapter property sets including TvTuner, Crossbar, VideoProcAmp, and CameraControl properties.<o:p></o:p></span></pre></td>
  338. </tr>
  339. <tr>
  340. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  341. style='font-family:Courier'>CapProp.h<o:p></o:p></span></pre></td>
  342. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  343. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  344. </tr>
  345. <tr>
  346. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  347. style='font-family:Courier'>CapVBI.c<o:p></o:p></span></pre></td>
  348. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  349. style='font-family:Courier'>Stream SRB processing for VBI pins<o:p></o:p></span></pre></td>
  350. </tr>
  351. <tr>
  352. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  353. style='font-family:Courier'>CapVBI.h<o:p></o:p></span></pre></td>
  354. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  355. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  356. </tr>
  357. <tr>
  358. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  359. style='font-family:Courier'>DDraw.c<o:p></o:p></span></pre></td>
  360. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  361. style='font-family:Courier'>Sample functions for handling kernel DDraw interfaces.<span style="mso-spacerun: yes"></span>Not actually used by this driver at present.<o:p></o:p></span></pre></td>
  362. </tr>
  363. <tr>
  364. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  365. style='font-family:Courier'>Mediums.h<o:p></o:p></span></pre></td>
  366. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  367. style='font-family:Courier'>Describes topological connections for the streams.<o:p></o:p></span></pre></td>
  368. </tr>
  369. <tr>
  370. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  371. style='font-family:Courier'>Testcap.rc<o:p></o:p></span></pre></td>
  372. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  373. style='font-family:Courier'>Resource file mainly for version<o:p></o:p></span></pre></td>
  374. </tr>
  375. <tr>
  376. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  377. style='font-family:Courier'>VBIdata.c<o:p></o:p></span></pre></td>
  378. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  379. style='font-family:Courier'>Contains typical VBI waveforms.<o:p></o:p></span></pre></td>
  380. </tr>
  381. <tr>
  382. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  383. style='font-family:Courier'>VBIdata.h<o:p></o:p></span></pre></td>
  384. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  385. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  386. </tr>
  387. <tr>
  388. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  389. style='font-family:Courier'>VBIXfer.c<o:p></o:p></span></pre></td>
  390. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  391. style='font-family:Courier'>Synthesizes VBI data.<o:p></o:p></span></pre></td>
  392. </tr>
  393. <tr>
  394. <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span
  395. style='font-family:Courier'>VBIXfer.h<o:p></o:p></span></pre></td>
  396. <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span
  397. style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td>
  398. </tr>
  399. </table>
  400. <pre><span style='font-family:Verdana'><span style="mso-spacerun: yes"></span><o:p></o:p></span></pre>
  401. <h4>Programming Tour</h4>
  402. <p><span style='font-size:10.0pt;font-family:Verdana'>DriverEntry() is the
  403. initial point of entry for the driver. It initializes the hardware initialization
  404. structure and registers the secondary entry point functions. <o:p></o:p></span></p>
  405. <p><span style='font-size:10.0pt;font-family:Verdana'>HwReceivePacket field
  406. describes the entry point for receiving SRBs (Stream Request Packet) from
  407. stream class driver. Here is a possible sequence of SRBs that this driver may
  408. receive.<o:p></o:p></span></p>
  409. <ol start=1 type=1>
  410. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  411. mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt;
  412. font-family:Verdana'>SRB_INITIALIZE_DEVICE to initialize the device, and
  413. called after DriverEntry().<o:p></o:p></span></li>
  414. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  415. mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt;
  416. font-family:Verdana'>SRB_GET_STREAM_INFO to get supported stream format.<o:p></o:p></span></li>
  417. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  418. mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt;
  419. font-family:Verdana'>SRB_GET_DATA_INTERSECTION to query a supported format
  420. given some key fields.<o:p></o:p></span></li>
  421. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  422. mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt;
  423. font-family:Verdana'>SRB_OPEN_STREAM to open a stream with supply format
  424. from SRB_GET_DATA_INTERSECTION. Two additional entry point functions are
  425. register for this stream for controlling the streaming state
  426. (Srb-&gt;StreamObject-&gt;ReceiveControlPacket) and for streaming data
  427. (Srb-&gt;StreamObject-&gt;ReceiveDataPacket). <o:p></o:p></span></li>
  428. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  429. mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt;
  430. font-family:Verdana'>SRB_CLOSE_STREAM to close the open stream.<o:p></o:p></span></li>
  431. <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
  432. mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt;
  433. font-family:Verdana'>SRB_UNINITIALIZE_DEVICE to indicate that a device has
  434. been unloaded or removed.<o:p></o:p></span></li>
  435. </ol>
  436. <p><span style='font-size:10.0pt;font-family:Verdana'>This driver also register
  437. entry points for canceling packets (HwCancelPacket) and for notifying if a
  438. packet has timeout (HwRequestTimeoutHandler). <o:p></o:p></span></p>
  439. <p><b><span style='font-size:10.0pt;font-family:Verdana'>Clocks<o:p></o:p></span></b></p>
  440. <p><span style='font-size:10.0pt;font-family:Verdana'>Testcap, like most video
  441. capture drivers, does not act as clock source for a filter graph. <o:p></o:p></span></p>
  442. <p><b><span style='font-size:10.0pt;font-family:Verdana'>Frame rate and dropped
  443. frames<o:p></o:p></span></b></p>
  444. <p><span style='font-size:10.0pt;font-family:Verdana'>Digital cameras support
  445. discrete frame rates; however, a client application can request to stream at any
  446. rate. It is required by WDM video capture driver to either match or select the
  447. next lower frame rate available. Over sampling can cause synchronization
  448. problems. <o:p></o:p></span></p>
  449. <p><span style='font-size:10.0pt;font-family:Verdana'>The dropped frame
  450. information is calculated instead of actual count, and it is based on the
  451. capture rate and the actual counts of frames captured. <o:p></o:p></span></p>
  452. <p><b><span style='font-size:10.0pt;font-family:Verdana'>Work items<o:p></o:p></span></b></p>
  453. <p><span style='font-size:10.0pt;font-family:Verdana'>Testcap is not persisting
  454. TvTuner, Crossbar, VideoProcAmp and CameraControl property settings between
  455. reboots. For an example of how this should be handled, look at the 1394 digital
  456. video conferencing camera driver (1394dcam, capprop.c), also in this DDK.<o:p></o:p></span></p>
  457. <p align=center style='text-align:center'><a href="#top"><span
  458. style='font-size:10.0pt;font-family:Verdana'>Top of page</span></a><span
  459. style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
  460. <table border=0 cellspacing=0 cellpadding=0 width=624 style='width:6.5in;
  461. mso-cellspacing:0in;mso-padding-alt:0in 0in 0in 0in'>
  462. <tr style='height:1.5pt'>
  463. <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'>
  464. <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  465. </td>
  466. </tr>
  467. </table>
  468. <p><span style='font-size:7.5pt;font-family:"MS Sans Serif"'>� 1998 Microsoft
  469. Corporation</span><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
  470. </div>
  471. </body>
  472. </html>