Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 98e91bc877e03cf3582cd163550eb7e3 > files > 1059

kernel-doc-html-2.4.19-16mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Video Capture Devices</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Video4Linux Programming"
HREF="book1.html"><LINK
REL="PREVIOUS"
TITLE="Module Wrapper"
HREF="x254.html"><LINK
REL="NEXT"
TITLE="Registering Video Capture Devices"
HREF="x271.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Video4Linux Programming</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x254.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x271.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="AEN261"
></A
>Video Capture Devices</H1
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="INTROVID"
></A
>Video Capture Device Types</H1
><P
>        The video capture devices share the same interfaces as radio devices. In
        order to explain the video capture interface I will use the example of a
        camera that has no tuners or audio input. This keeps the example relatively
        clean. To get both combine the two driver examples.
  </P
><P
>        Video capture devices divide into four categories. A little technology
        backgrounder. Full motion video even at television resolution (which is
        actually fairly low) is pretty resource-intensive. You are continually
        passing megabytes of data every second from the capture card to the display. 
        several alternative approaches have emerged because copying this through the 
        processor and the user program is a particularly bad idea .
  </P
><P
>        The first is to add the television image onto the video output directly.
        This is also how some 3D cards work. These basic cards can generally drop the
        video into any chosen rectangle of the display. Cards like this, which
        include most mpeg1 cards that used the feature connector,  aren't very
        friendly in a windowing environment. They don't understand windows or
        clipping. The video window is always on the top of the display.
  </P
><P
>        Chroma keying is a technique used by cards to get around this. It is an old
        television mixing trick where you mark all the areas you wish to replace
        with a single clear colour that isn't used in the image - TV people use an
        incredibly bright blue while computing people often use a particularly
        virulent purple. Bright blue occurs on the desktop. Anyone with virulent
        purple windows has another problem besides their TV overlay.
  </P
><P
>        The third approach is to copy the data from the capture card to the video
        card, but to do it directly across the PCI bus. This relieves the processor
        from doing the work but does require some smartness on the part of the video
        capture chip, as well as a suitable video card. Programming this kind of
        card and more so debugging it can be extremely tricky. There are some quite
        complicated interactions with the display and you may also have to cope with
        various chipset bugs that show up when PCI cards start talking to each
        other. 
  </P
><P
>        To keep our example fairly simple we will assume a card that supports
        overlaying a flat rectangular image onto the frame buffer output, and which
        can also capture stuff into processor memory.
  </P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x254.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x271.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Module Wrapper</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Registering Video Capture Devices</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>