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

<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'>&quot;To install hardware which is not Plug and Play
compatible, click Next.&quot; <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'>&quot;No, I want to select the hardware from a
list.&quot; <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'>&quot;What type of hardware do you want to
install&quot; <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'>&quot;Have Disk…&quot; <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 &quot;Testcap.inf&quot; <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 &quot;Testcap.sys&quot; 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'>&nbsp;<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-&gt;StreamObject-&gt;ReceiveControlPacket) and for streaming data
(Srb-&gt;StreamObject-&gt;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]>&nbsp;<![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>