[vlc-devel] Video4Linux spat

Rémi Denis-Courmont remi at remlab.net
Thu Apr 5 17:48:41 CEST 2012


	Hello,

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" 
distributions.

In any case, the device controls configuration items would vary depending on 
the version of kernel headers. So conditional compilation sucks a bit no 
matter what.

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...

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis



More information about the vlc-devel mailing list