needed: libv4l and associated application patches (or "gspca stopped working in 2.6.27")
Bug #260918 reported by
Erik Andrén
This bug affects 83 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Adobe Flash Plugin Tools |
Won't Fix
|
Undecided
|
Unassigned | ||
Cheese |
Unknown
|
Critical
|
|||
Ekiga |
Fix Released
|
Medium
|
|||
GStreamer |
Fix Released
|
Medium
|
|||
Kdenlive |
Fix Released
|
Unknown
|
|||
Kopete |
Fix Released
|
Medium
|
|||
Medibuntu |
Fix Released
|
Medium
|
Lionel Le Folgoc | ||
Mozilla Firefox |
Invalid
|
Medium
|
|||
OpenCV |
Unknown
|
Unknown
|
|||
VLC media player |
Fix Released
|
Unknown
|
|||
Wine |
Confirmed
|
Medium
|
|||
gst-plugins-good |
Fix Released
|
Medium
|
|||
amsn (Ubuntu) |
Fix Released
|
Undecided
|
mbaho10 | ||
Intrepid |
Fix Released
|
Undecided
|
Devid Antonio Filoni | ||
came (Ubuntu) |
Fix Released
|
High
|
dimpler18 | ||
Intrepid |
Fix Released
|
High
|
Unassigned | ||
camorama (Debian) |
Fix Released
|
Unknown
|
|||
camorama (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Intrepid |
Invalid
|
Undecided
|
Unassigned | ||
camstream (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Intrepid |
Invalid
|
Undecided
|
Unassigned | ||
cheese (Ubuntu) |
Invalid
|
High
|
Unassigned | ||
Intrepid |
Invalid
|
Undecided
|
Unassigned | ||
Lucid |
Invalid
|
Undecided
|
Unassigned | ||
ekiga (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Intrepid |
Invalid
|
Undecided
|
Unassigned | ||
gst-plugins-good0.10 (Fedora) |
Fix Released
|
Low
|
|||
gst-plugins-good0.10 (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Intrepid |
Fix Released
|
High
|
Unassigned | ||
libv4l (Ubuntu) |
Fix Released
|
High
|
Bahar Ali | ||
Intrepid |
Fix Released
|
High
|
Bahar Ali | ||
mplayer (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Intrepid |
Won't Fix
|
Undecided
|
Unassigned | ||
pwlib (Fedora) |
Fix Released
|
Low
|
|||
pwlib (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Intrepid |
Fix Released
|
High
|
Unassigned | ||
vlc (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Intrepid |
Won't Fix
|
Undecided
|
Unassigned | ||
xawtv (Fedora) |
Fix Released
|
Medium
|
|||
xawtv (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Intrepid |
Fix Released
|
High
|
Unassigned |
Bug Description
libv4l is a user-space library used by several applications in order to convert webcam streams in user-space instead of kernel-space. As gspca is included in 2.6.27 this is needed in order to (re)support a multitude of webcams supported with ordinary applications.
See http://
The latest version is 0.4.0 and is available from http://
description: | updated |
Changed in gst-plugins-good0.10: | |
status: | Unknown → Fix Released |
Changed in pwlib: | |
status: | Unknown → Fix Released |
Changed in xawtv: | |
status: | Unknown → Fix Released |
Changed in gst-plugins-good0.10: | |
assignee: | nobody → kees |
importance: | Undecided → High |
Changed in libv4l: | |
assignee: | nobody → lool |
Changed in xawtv: | |
assignee: | nobody → kees |
importance: | Undecided → High |
Changed in pwlib: | |
assignee: | nobody → kees |
importance: | Undecided → High |
status: | New → In Progress |
Changed in came: | |
assignee: | nobody → kees |
importance: | Undecided → High |
description: | updated |
Changed in ekiga: | |
status: | Unknown → Fix Released |
Changed in gst-plugins-good: | |
status: | Unknown → Confirmed |
Changed in vlc: | |
status: | Unknown → New |
Changed in medibuntu: | |
assignee: | nobody → mrpouit |
importance: | Undecided → Medium |
status: | New → Triaged |
milestone: | none → intrepid |
Changed in medibuntu: | |
status: | Triaged → Fix Committed |
Changed in vlc: | |
status: | New → Won't Fix |
Changed in mplayer: | |
status: | New → Won't Fix |
Changed in amsn: | |
status: | New → Won't Fix |
Changed in medibuntu: | |
status: | Fix Committed → Fix Released |
Changed in came: | |
assignee: | kees → nobody |
assignee: | kees → nobody |
Changed in gst-plugins-good0.10: | |
assignee: | kees → nobody |
assignee: | kees → nobody |
Changed in pwlib: | |
assignee: | kees → nobody |
assignee: | kees → nobody |
Changed in xawtv: | |
assignee: | kees → nobody |
assignee: | kees → nobody |
Changed in amsn: | |
assignee: | nobody → d.filoni |
status: | New → In Progress |
Changed in amsn: | |
status: | In Progress → Fix Released |
Changed in amsn: | |
status: | Fix Released → In Progress |
status: | Won't Fix → In Progress |
Changed in cheese: | |
status: | New → Confirmed |
Changed in gst-plugins-good: | |
status: | Confirmed → Fix Released |
Changed in gstreamer: | |
status: | Unknown → Fix Released |
Changed in wine: | |
status: | Unknown → New |
Changed in wine: | |
status: | New → Confirmed |
Changed in amsn: | |
status: | In Progress → Fix Released |
Changed in amsn: | |
assignee: | nobody → d.filoni |
Changed in vlc: | |
status: | New → Fix Released |
Changed in libv4l: | |
assignee: | lool → nobody |
assignee: | lool → nobody |
Changed in kdenlive: | |
status: | Unknown → New |
Changed in kdenlive: | |
status: | New → Unknown |
Changed in vlc (Ubuntu): | |
status: | New → Fix Released |
Changed in mplayer (Ubuntu): | |
status: | New → Fix Released |
Changed in kopete: | |
importance: | Undecided → Unknown |
status: | New → Unknown |
Changed in kopete: | |
status: | Unknown → Fix Released |
Changed in cheese: | |
importance: | Undecided → Unknown |
status: | Confirmed → Unknown |
Changed in cheese (Ubuntu): | |
importance: | Undecided → High |
status: | New → Confirmed |
Changed in libv4l (Ubuntu): | |
status: | Fix Released → New |
status: | New → Fix Committed |
Changed in came (Ubuntu): | |
assignee: | nobody → dimpler18 (dimpler18) |
Changed in amsn (Ubuntu Intrepid): | |
status: | In Progress → Fix Released |
Changed in libv4l (Ubuntu): | |
assignee: | nobody → Bahar Ali (baharali) |
Changed in came (Ubuntu Intrepid): | |
assignee: | nobody → dimpler18 (dimpler18) |
Changed in libv4l (Ubuntu Intrepid): | |
assignee: | nobody → Bahar Ali (baharali) |
Changed in camorama (Ubuntu): | |
assignee: | nobody → Ubuntu Security Team (ubuntu-security) |
security vulnerability: | no → yes |
Changed in camstream (Ubuntu): | |
assignee: | nobody → Ubuntu Security Team (ubuntu-security) |
Changed in cheese (Ubuntu): | |
assignee: | nobody → Ubuntu Security Team (ubuntu-security) |
Changed in came (Ubuntu Intrepid): | |
assignee: | dimpler18 (dimpler18) → nobody |
security vulnerability: | yes → no |
Changed in camorama (Ubuntu): | |
assignee: | Ubuntu Security Team (ubuntu-security) → nobody |
Changed in camstream (Ubuntu): | |
assignee: | Ubuntu Security Team (ubuntu-security) → nobody |
Changed in cheese (Ubuntu): | |
assignee: | Ubuntu Security Team (ubuntu-security) → nobody |
Changed in camstream (Ubuntu): | |
status: | New → Fix Released |
Changed in amsn (Ubuntu): | |
assignee: | Devid Antonio Filoni (d.filoni) → mbaho10 (mbaho10) |
Changed in camstream (Ubuntu Intrepid): | |
status: | New → Invalid |
Changed in cheese (Ubuntu Intrepid): | |
status: | New → Invalid |
Changed in camorama (Ubuntu Intrepid): | |
status: | New → Invalid |
Changed in camorama (Ubuntu): | |
status: | New → Incomplete |
Changed in camorama (Ubuntu): | |
status: | Incomplete → Confirmed |
affects: | debian → camorama (Debian) |
Changed in camorama (Debian): | |
status: | Fix Released → Unknown |
Changed in camorama (Debian): | |
status: | Unknown → Confirmed |
Changed in camorama (Debian): | |
status: | Confirmed → Fix Released |
Changed in cheese (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in cheese (Ubuntu Lucid): | |
status: | New → Invalid |
Changed in wine: | |
importance: | Unknown → Medium |
Changed in cheese: | |
importance: | Unknown → Critical |
Changed in ekiga: | |
importance: | Unknown → Medium |
Changed in gst-plugins-good: | |
importance: | Unknown → Medium |
Changed in gstreamer: | |
importance: | Unknown → Medium |
Changed in kdenlive: | |
status: | Unknown → Fix Released |
Changed in adobe-flash-plugin-tools: | |
status: | New → Won't Fix |
Changed in firefox: | |
importance: | Unknown → Medium |
status: | Unknown → Invalid |
Changed in kopete: | |
importance: | Unknown → Medium |
no longer affects: | amsn (Ubuntu Lucid) |
no longer affects: | came (Ubuntu Lucid) |
no longer affects: | camorama (Ubuntu Lucid) |
Changed in camorama (Ubuntu): | |
status: | Confirmed → Invalid |
no longer affects: | camstream (Ubuntu Lucid) |
no longer affects: | ekiga (Ubuntu Lucid) |
no longer affects: | gst-plugins-good0.10 (Ubuntu Lucid) |
no longer affects: | libv4l (Ubuntu Lucid) |
no longer affects: | mplayer (Ubuntu Lucid) |
no longer affects: | pwlib (Ubuntu Lucid) |
no longer affects: | vlc (Ubuntu Lucid) |
no longer affects: | xawtv (Ubuntu Lucid) |
Changed in libv4l (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in pwlib (Fedora): | |
importance: | Unknown → Low |
Changed in gst-plugins-good0.10 (Fedora): | |
importance: | Unknown → Low |
Changed in xawtv (Fedora): | |
importance: | Unknown → Medium |
As you probably know 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 userspace.
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 FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG
compressed bayer
#define V4L2_PIX_
#define V4L2_PIX_
#define V4L2_PIX_
#define V4L2_PIX_
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) hansdegoede. livejournal. com/3636. html
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:
http://
The attached patch adds support to the gstreamer v4l2 plugin to use this library bugzilla. gnome.org/ show_bug. cgi?id= 545033
if available on the system, it has also been submitted upstream:
http://
libv4l will show up in rawhide as soon as a cvsadmin gets around to creating a
cvs module for it, see libv4l'2 review request: bug 456772
Getting this patch into Fedora is important for the F-10 better webcam support /fedoraproject. org/wiki/ Features/ BetterWebcamSup port
feature:
https:/
###
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 unmodified).
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.
The only special thing about the patch is that it passes the ENUM_FMT_ EMULATION flag to libv4l2 on open, this patch tells libv4l2
V4L2_ENABLE_
to report the "emulated" formats in the ENUM_FMT ioctl results. Which libv4l2
does not do be default so that ENUM_FMT only reports the really supported
formats (a TRY_FMT with one of the 2 supported emulated formats can then be done
to see if conversion is supported for the specific device). Given the working of
the v4l2 plugin, enabling the ENUM_FMT emulation is needed.
I've successfully tested this patch with cheese 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 without this patch, as gstrea...