uvccapture: USB UVC Video Class Snapshot Software

Newest versions always available at http://staticwave.ca/source/uvccapture

This software is based of the package luvcview:
Copyright (C) 2005 2006 Laurent Pinchart &&  Michel Xhaard

Modifications and updates:
Copyright (C) 2006  Gabriel A. Devenyi <ace@staticwave.ca>

This program communicates via the USB UVC Video Class driver for V4L2, available
at http://linux-uvc.berlios.de/.

The purpose of this software is to capture an image from a USB webcam at a
specified interval, and save it to a JPEG file, no other formats are supported,
imagemagick can handle anything else you might need.

Right now this software is really a hack, since still image support is not yet
available in the UVC driver. The program continually polls the UVC driver in
MJPEG mode, and at a specified interval writes a JPEG header and a single frame
to file, creating a JPEG image. Because of this continuous polling, this program
has high CPU usage. Input checking is pretty trusting, so call it with the right
parameters.

In order for this software to work, whatever device you pass to -d you will need
to have read/write rights to, please see appropriate /dev documentation for how
to do this.

This software depends on jpeglib(present on almost all systems)

Source history converted to git from releases available at:
	http://staticwave.ca/source/uvccapture/
uvccapture: USB UVC Video Class Snapshot Software v0.2

This software is based of the package luvcview:
Copyright (C) 2005 2006 Laurent Pinchart &&  Michel Xhaard

Modifications and updates:
Copyright (C) 2006  Gabriel A. Devenyi <ace@staticwave.ca>

This program communicates via the USB UVC Video Class driver for V4L2, available
at http://linux-uvc.berlios.de/.

The purpose of this software is to capture an image from a USB webcam at a
specified interval, and save it to a JPEG file, no other formats are supported,
imagemagick can handle anything else you might need.

Right now this software is really a hack, since still image support is not yet
available in the UVC driver. The program continually polls the UVC driver in
MJPEG mode, and at a specified interval writes a JPEG header and a single frame
to file, creating a JPEG image. Because of this continuous polling, this program
has high CPU usage. Input checking is pretty trusting, so call it with the right
parameters.

In order for this software to work, whatever device you pass to -d you will need
to have read/write rights to, please see appropriate /dev documentation for how
to do this.

For usage information, run uvccapture -h
uvccapture: USB UVC Video Class Snapshot Software v0.3

capture 0.3 19.02.2006 --
Removed the JPEG decoding files (util.*) and the calls to convert-frame during
the capture of images. This decoding was only important for SDL display, which
is already gone. Peak CPU usage has gone from ~30% to 0.6%.

Thanks to Philip Heron <phil@firestorm.cx> for the suggestion.
uvccapture: USB UVC Video Class Snapshot Software v0.4

-- uvccapture 0.4 21.03.2006 --
Lots of changes:
* Added install target in the makefile to install into /usr/local/bin
* Added signal capturing (CTRL-C, etc) to gracefully exit when in wait loop
* Added the ability to specify a command to run after each image capture,
  command is run with the output picture as an argument.  command can be run
  blocking, or non-blocking.
* Added support for multiple verbisity levels (add more -v's)
* Minor output spelling corrections
* Added output of current bright/contrast/saturation/gain on startup.
All these thanks to Salvador Gonzalez <ghostx@optonline.net>
* YVYU Capture Mode - now requires jpeglib, activated for images sizes >960x720
  allows adjustment of JPEG compression quality (-q) or manually activated (-m)
YUYV -> JPEG code thanks to Philip Heron <phil@firestorm.cx>
uvccapture: USB UVC Video Class Snapshot Software v0.5
uvccapture: Merge history and current release

Merge in commit c042d6e2736039197761637dc804019686cdef7d