Bug 456868 - PATCH: use libv4l in v4l2 plugin, adding support for many cam specific formats
Summary: PATCH: use libv4l in v4l2 plugin, adding support for many cam specific formats
Alias: None
Product: Fedora
Classification: Fedora
Component: pwlib
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Daniel Veillard
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2008-07-28 09:28 UTC by Hans de Goede
Modified: 2013-01-10 04:45 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Last Closed: 2008-09-20 17:19:12 UTC
Type: ---

Attachments (Terms of Use)
PATCH: use libv4l in v4l2 plugin, adding support for many cam specific formats (13.71 KB, patch)
2008-07-28 09:28 UTC, Hans de Goede
no flags Details | Diff

Description Hans de Goede 2008-07-28 09:28:08 UTC
Short intro: I'm a long time Linux developer currently working on improving
webcam support in Linux, see:

I'm one of the authors of the v4l2 rewrite of the gspca usb webcam driver
framework (which supports more then 100 different cams), this v4l2 rewrite has
been merged into the 2.6.27 kernel and thus will become available in the
official Linux kernel soon.

One of the parts of the v4l2 rewrite has been removing conversion from various
manufacturer cam specific video formats to more normal videoformats from the
drivers, as this really does not belong in kernel space.

As a result of this the gspca subdrivers can generate raw video frames in the
following formats:

#define V4L2_PIX_FMT_SN9C10X  v4l2_fourcc('S', '9', '1', '0') /* SN9C10x
compressed bayer
#define V4L2_PIX_FMT_SPCA501  v4l2_fourcc('S', '5', '0', '1') /* YUYV per line 
#define V4L2_PIX_FMT_SPCA505  v4l2_fourcc('S', '5', '0', '5') /* YYUV per line 
#define V4L2_PIX_FMT_SPCA508  v4l2_fourcc('S', '5', '0', '8') /* YUVY per line 
#define V4L2_PIX_FMT_SPCA561  v4l2_fourcc('S', '5', '6', '1') /* compressed
GBRG bayer
#define V4L2_PIX_FMT_PAC207   v4l2_fourcc('P', '2', '0', '7') /* compressed
BGGR bayer

As we do not want to see each application implement (nor having to implement)
support for these various formats, as we like to have one code base and only
one code base for these formats. A library has been written (with me as the
main author) to convert from these formats to BGR24 or YUV420. For more on this
library see:

The attached patch adds support to the pwlib v4l2 plugin to use this
library if available on the system.

It has also been submitted upstream:

libv4l has just been build for rawhide, and should show up in the next rawhide
push, in the mean time you can get it from koji:


A note about the patch, the patch is actually quite simple, as libv4l has been
designed for quick porting of existing apps to libv4l, for this reason libv4l
fully mimicks the raw /dev/video interface (and if no conversion is needed and
for non relevant calls like setting ctrl's, passes through all calls

All that the patch does and all that needs to be changed to use libv4l is
replace the relevant xxx calls on /dev/video with v4l2_xxx calls.

I've successfully tested this patch with ekiga and 2 spca561 cams (quite
popular IC, used by both logitech and creative), 2 pac207 cams (another quite
popular IC), 3 SN9C10X cams (also very popular) and 1 spca501 cam. All of which
do not work (unless using gspca version 1) without this patch, as pwlib does
not support their proprietary video formats (and rightfully so).

Comment 1 Hans de Goede 2008-07-28 09:28:08 UTC
Created attachment 312759 [details]
PATCH: use libv4l in v4l2 plugin, adding support for many cam specific formats

Comment 2 Hans de Goede 2008-07-29 19:08:36 UTC
Note that this patch has just been accepted upstream, see:

If you want and the CVS ACL's allow it I can push this to rawhide myself.

Comment 3 Hans de Goede 2008-08-23 07:40:11 UTC

I really want to see this hit rawhide before we go into a beta freeze, and as the patch has been accepted upstream I so no reasons for not putting this in rawhide. If I get no response soon I'll commit it to rawhide myself (assuming the ACL's will let me).

Comment 4 Jesse Keating 2008-09-19 21:08:37 UTC
Seems it's a bit late for that.  Punting to F10Target.

Comment 5 Hans de Goede 2008-09-20 17:19:12 UTC
(In reply to comment #4)
> Seems it's a bit late for that.  Punting to F10Target.

Actually this is long fixed, byt I forgot to close the bug (woopsie) closing and removing from trackers.

Note You need to log in before you can comment on or make changes to this bug.