[vlc-devel] Video4Linux spat
remi at remlab.net
Thu Apr 5 17:48:41 CEST 2012
A number of people noticed that the compilation of V4L2 plug-in fails on with
kernel headers from Linux version 3.0 or older. Obviously, I pushed the
changes because I am insanely evil, want to make your life miserable and force
people to upgrade to the most bleeding-edge and unstable kernel versions. That
is all part of my ongoing plan to take over the known universe, who details
are on a need-to-know basis.
There are some unclassified details though:
1) Ideally(?), we would use the V4L API version numbers, like we do with Linux
DVB. Great idea, but V4L does not have API version numbers.
2) So we tried to use the Linux kernel version numbers. Afterall, the V4L2
specification uses them too. Unfortunately, that breaks BSD support.
3) So people tried to use #ifdef's. Earlier, the plugin neede that to compile
on antique kernel versions 2.6.16 (sic!) and earlier. Obvious idea, but some
of the new/missing symbols are defined in enumerations, not as preprocessor
constants, so #ifdef fails.
4) So we could use some heavy weight configure.ac hackery. I must say, I am
*not* too thrilled.
5) Or we just require recent versions. Again this require configure.ac
hackery. As an added bonus, it will piss off lots of users of "mature"
In any case, the device controls configuration items would vary depending on
the version of kernel headers. So conditional compilation sucks a bit no
6) I posted a patch to carry a private copy of a recent videodev2.h headers,
but it was moderated or lost. That was probably a bad idea as well. First, I
do not know if defines are identical on all platforms. Second, the V4L2 ABI is
not completely backward-compatible. In the future, subtle incompatibilities
may occur if a version of VLC is compiled against a more recent version of
kernel headers, than the private copy.
Before you complain to me again, you get to find a solution...
More information about the vlc-devel