|
|
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 9"> <meta name=Originator content="Microsoft Word 9"> <link rel=File-List href="./testcap_files/filelist.xml"> <title>testcap</title> <style> <!--
/* Font Definitions */ @font-face {font-family:Courier; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-charset:0; mso-generic-font-family:modern; mso-font-format:other; mso-font-pitch:fixed; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:"MS Sans Serif"; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; color:black;} h2 {margin-right:0in; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; mso-outline-level:2; font-size:18.0pt; font-family:"Times New Roman"; color:black; font-weight:bold;} h3 {margin-right:0in; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; mso-outline-level:3; font-size:13.5pt; font-family:"Times New Roman"; color:black; font-weight:bold;} h4 {margin-right:0in; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; mso-outline-level:4; font-size:12.0pt; font-family:"Times New Roman"; color:black; font-weight:bold;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} p {margin-right:0in; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; color:black;} pre {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; 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; font-size:10.0pt; font-family:"Courier New"; mso-fareast-font-family:"Courier New"; color:black;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:924532628; mso-list-type:hybrid; mso-list-template-ids:-1268368472 232533878 1312067608 1697283478 1631208008 1074174520 -64466156 2111333230 62154458 1505112768;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l1 {mso-list-id:945890961; mso-list-type:hybrid; mso-list-template-ids:-1818564880 133169900 -1934483494 860639428 -1044491662 963704892 -1481451322 -878685914 -2144946752 292576536;} @list l2 {mso-list-id:1180855697; mso-list-type:hybrid; mso-list-template-ids:1484430786 -1503733484 1586265716 -1426946234 -168154914 1118730238 -1341765170 -347022698 1458317740 219425118;} @list l2:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-size:10.0pt; font-family:Symbol;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --> </style> <!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1027"/> </xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> <meta name=Template content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot"> </head>
<body bgcolor=white lang=EN-US link=blue vlink=purple style='tab-interval:.5in' leftmargin=8>
<div class=Section1>
<h2><a name=MYSAMPLE><span style='font-family:Verdana'>Testcap �</span></a><span style='font-family:Verdana'> A WDM Streaming Video Capture Driver which requires no Hardware<o:p></o:p></span></h2>
<h3><span style='font-family:Verdana'>SUMMARY<o:p></o:p></span></h3>
<p><span style='font-size:10.0pt;font-family:Verdana'>Testcap is a prototypical sample WDM stream class video capture driver which does not require any hardware for operation. The driver simulates the front-end components of a PC/TV, including input selection, TvTuning, TvAudio control, and finally, digital video streaming. <o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>The TvTuner component supports tuning modes of Analog TV (NTSC/PAL/SECAM), AM/FM Radio, as well as ATSC (American Broadcast Digital Television).<o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>Testcap manifests itself in a DirectShow graph as four separate filters:<o:p></o:p></span></p>
<ul type=disc> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Testcap Capture <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Testcap TvTuner <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Testcap TVAudio <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l2 level1 lfo3;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Testcap Crossbar<o:p></o:p></span></li> </ul>
<p><span style='font-size:10.0pt;font-family:Verdana'>The capture portion produces five output streams, two of which are Capture and Preview which produce a variety of colorbars and grayscale patterns depending on the video input selected on the crossbar. The capture and preview streams contain video samples in either RGB24 or YUV422 color spaces and offer a large number of different image dimensions.<span style="mso-spacerun: yes">� </span>The other three capture streams are VBI, HWCC, and HWNABTS.<span style="mso-spacerun: yes">� </span>These three are VBI streams, and offer simulated CC and NABTS waveforms for decoding, and simulated hardware decoded CC and NABTS.<o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>This driver contains sample implementations for almost all of the property sets involved in WDM video capture. Since Testcap doesn't control actual hardware, most of the property set implementations are useful only as prototypes which you can borrow for your own implementations. This driver represents one extreme of combining all functionality representing the front end of a PC/TV into a single driver. The other extreme is to create a separate driver each element: TvTuner, TvAudio, Crossbar, and Capture. <o:p></o:p></span></p>
<p><b><span style='font-size:10.0pt;font-family:Verdana'>Keywords</span></b><span style='font-size:10.0pt;font-family:Verdana'>: Video capture, WDM, stream class, TvTuner, driver, VBI.<o:p></o:p></span></p>
<h3><span style='font-family:Verdana'>BUILDING THE SAMPLE<o:p></o:p></span></h3>
<p><! ---------------- Snip Snip ---------------- ><span style='font-size:10.0pt; font-family:Verdana'>The sample is built with the standard DDK BUILD utility in the standard checked or free DDK build environment. Testcap is completely contained in one directory. The resulting binary from the build process is Testcap.sys, which is compatible on x86 and Alpha platforms.<o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>Testcap is not a PnP driver, since no hardware is involved, and it must be installed manually:<o:p></o:p></span></p>
<ul type=disc> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>My Computer.Properties.Hardware.Hardware Wizard.Add new hardware. <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>"To install hardware which is not Plug and Play compatible, click Next." <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>"No, I want to select the hardware from a list." <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>"What type of hardware do you want to install" <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Sound, Video, and Game Controllers <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>"Have Disk�" <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Browse to find "Testcap.inf" <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l0 level1 lfo6;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>Browse to find "Testcap.sys" when requested<o:p></o:p></span></li> </ul>
<h3><span style='font-family:Verdana'><! ---------------- Snip Snip ---------------- >RESOURCES<o:p></o:p></span></h3>
<p><span style='font-size:10.0pt;font-family:Verdana'>This driver has been tested with the following applicatons: Graphedt.exe, AMCap.exe, WebTV for Windows.<o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>This website contains general information on driver and hardware development:<o:p></o:p></span></p>
<p style='margin-left:1.0in'><a href="http://www.microsoft.com/hwdev">http://www.microsoft.com/hwdev</a><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>This website contains information on DirectShow:<o:p></o:p></span></p>
<p style='margin-left:1.0in'><a href="http://www.microsoft.com/directx">http://www.microsoft.com/directx</a> </p>
<h3 style='margin-left:1.0in'><span style='font-family:Verdana'> <o:p></o:p></span></h3>
<h3><span style='font-family:Verdana'>CODE TOUR<o:p></o:p></span></h3>
<h4><span style='font-family:Verdana'>File Manifest<o:p></o:p></span></h4>
<table border=0 cellspacing=0 cellpadding=0 width="100%" style='width:100.0%; border-collapse:collapse;mso-padding-alt:0in 5.4pt 0in 5.4pt'> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><b><u>File<o:p></o:p></u></b></pre></td> <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> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre>Testcap.htm</pre></td> <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> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>SOURCES<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>The generic file for building the code sample.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Testcap.inf<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>A sample installation file.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapStrm.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Declarations of streams and formats supported by the driver.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapMain.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>DriverEntry(), initialize, un-initialize, and adapter SRB processing.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapMain.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapVideo.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Stream SRB processing.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapVideo.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapXfer.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Synthesizes images.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapXfer.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapIRQ.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Sample IRQ routines. <o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapProp.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Process all adapter property sets including TvTuner, Crossbar, VideoProcAmp, and CameraControl properties.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapProp.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapVBI.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Stream SRB processing for VBI pins<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>CapVBI.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>DDraw.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span 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> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Mediums.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Describes topological connections for the streams.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Testcap.rc<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Resource file mainly for version<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>VBIdata.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Contains typical VBI waveforms.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>VBIdata.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>VBIXfer.c<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Synthesizes VBI data.<o:p></o:p></span></pre></td> </tr> <tr> <td valign=top style='padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>VBIXfer.h<o:p></o:p></span></pre></td> <td width="85%" valign=top style='width:85.0%;padding:0in 5.4pt 0in 5.4pt'><pre><span style='font-family:Courier'>Header file for above.<o:p></o:p></span></pre></td> </tr> </table>
<pre><span style='font-family:Verdana'><span style="mso-spacerun: yes">�</span><o:p></o:p></span></pre>
<h4>Programming Tour</h4>
<p><span style='font-size:10.0pt;font-family:Verdana'>DriverEntry() is the initial point of entry for the driver. It initializes the hardware initialization structure and registers the secondary entry point functions. <o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>HwReceivePacket field describes the entry point for receiving SRBs (Stream Request Packet) from stream class driver. Here is a possible sequence of SRBs that this driver may receive.<o:p></o:p></span></p>
<ol start=1 type=1> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>SRB_INITIALIZE_DEVICE to initialize the device, and called after DriverEntry().<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>SRB_GET_STREAM_INFO to get supported stream format.<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>SRB_GET_DATA_INTERSECTION to query a supported format given some key fields.<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>SRB_OPEN_STREAM to open a stream with supply format from SRB_GET_DATA_INTERSECTION. Two additional entry point functions are register for this stream for controlling the streaming state (Srb->StreamObject->ReceiveControlPacket) and for streaming data (Srb->StreamObject->ReceiveDataPacket). <o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>SRB_CLOSE_STREAM to close the open stream.<o:p></o:p></span></li> <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; mso-list:l1 level1 lfo9;tab-stops:list .5in'><span style='font-size:10.0pt; font-family:Verdana'>SRB_UNINITIALIZE_DEVICE to indicate that a device has been unloaded or removed.<o:p></o:p></span></li> </ol>
<p><span style='font-size:10.0pt;font-family:Verdana'>This driver also register entry points for canceling packets (HwCancelPacket) and for notifying if a packet has timeout (HwRequestTimeoutHandler). <o:p></o:p></span></p>
<p><b><span style='font-size:10.0pt;font-family:Verdana'>Clocks<o:p></o:p></span></b></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>Testcap, like most video capture drivers, does not act as clock source for a filter graph. <o:p></o:p></span></p>
<p><b><span style='font-size:10.0pt;font-family:Verdana'>Frame rate and dropped frames<o:p></o:p></span></b></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>Digital cameras support discrete frame rates; however, a client application can request to stream at any rate. It is required by WDM video capture driver to either match or select the next lower frame rate available. Over sampling can cause synchronization problems. <o:p></o:p></span></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>The dropped frame information is calculated instead of actual count, and it is based on the capture rate and the actual counts of frames captured. <o:p></o:p></span></p>
<p><b><span style='font-size:10.0pt;font-family:Verdana'>Work items<o:p></o:p></span></b></p>
<p><span style='font-size:10.0pt;font-family:Verdana'>Testcap is not persisting TvTuner, Crossbar, VideoProcAmp and CameraControl property settings between reboots. For an example of how this should be handled, look at the 1394 digital video conferencing camera driver (1394dcam, capprop.c), also in this DDK.<o:p></o:p></span></p>
<p align=center style='text-align:center'><a href="#top"><span style='font-size:10.0pt;font-family:Verdana'>Top of page</span></a><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
<table border=0 cellspacing=0 cellpadding=0 width=624 style='width:6.5in; mso-cellspacing:0in;mso-padding-alt:0in 0in 0in 0in'> <tr style='height:1.5pt'> <td style='background:aqua;padding:.75pt .75pt .75pt .75pt;height:1.5pt'> <p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p> </td> </tr> </table>
<p><span style='font-size:7.5pt;font-family:"MS Sans Serif"'>� 1998 Microsoft Corporation</span><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
</div>
</body>
</html>
|