518 lines
24 KiB
HTML
518 lines
24 KiB
HTML
<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 <20></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"><EFBFBD> </span>The other
|
||
three capture streams are VBI, HWCC, and HWNABTS.<span style="mso-spacerun:
|
||
yes"><EFBFBD> </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<73>" <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"><EFBFBD> </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"><EFBFBD></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"'><EFBFBD> 1998 Microsoft
|
||
Corporation</span><span style='font-size:10.0pt;font-family:Verdana'> <o:p></o:p></span></p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|