Perl isn't very good at low-level hardware access, even if it is possible. Typically, you need some C clue code packed in an XS. All current desktop operating systems prevent you from messing directly with the hardware, and they have good reasons to do so. Typically, you communicate with a OS specific and hardware specific driver that wraps the hardware access. Most of the times, the driver (or set of drivers) abstracts the differences between different hardware and give you a generic interface.

Think about soundcards. When was the last time that you had to mess with hardware registers? Last century, I would bet. Today, you connect to a generic sound device driver and tell it to play your sound data.

Exactly the same happens with web cams. They typically are USB devices. To access their hardware registers, you have to communicate with the USB controllers and ask them to mess with the cam's hardware registers. USB controllers have different standards and different vendors, and the OS abstract that for you. So you get a stack of hardware and drivers: Web cam - USB controller - PCI bus - PCI driver - USB driver - Web cam low level driver - video API driver.

Unless you really want to get mad fiddling with the hardware, your best bet is the video API (e.g. V4L on Linux, VfW or some DirectX stuff on Windows).

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

In reply to Re: Windows Webcam access. by afoken
in thread Windows Webcam access. by Steve_BZ

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.