Yesterday I committed the v4l support into the linuxulator (in 9‑current). Part of this was the import of the v4l header from linux. We have the permission to use it, it is not licensed via GPL. This means we can use it in FreeBSD native drivers, and they are even allowed to be compiled into GENERIC (but I doubt we have a driver which could provide the v4l interface in GENERIC).
The code I committed is “just” the glue-code which allows to use FreeBSD native devices which provide a v4l interface (e.g. multimedia/pwcbsd) from linux programs.
If someone is willing to write the glue-code for the v4l2 interface please contact me. We have the permission to use the v4l2 header too, we just need someone doing the coding.
In a similar way, if someone is willing to add v4l2 interface support to FreeBSD native drivers (I do not know any FreeBSD driver which provides a v4l2 interface) , just tell me and I import the v4l2 header into FreeBSD.
And if someone wants to add v4l support to FreeBSD native drivers but does not know where to start, feel free to contact me too.
Regarding the code which is in FreeBSD ATM: it is not completely finished yet (some clipping related stuff is being worked on), but the not finished part can not even be tested, as we do not know about a FreeBSD device which provides this functionality.
There is no MFC planned yet, but the more success stories and test scenarios are being told about on the emulation or multimedia mailinglists, the more likely I will do a MFC sooner than later.
Heyy Alexander, there’s something already working with v4l2??? I’m decided to port my app to FreeBSD using v4l compatibility layer or using native layer, what do you think better?
Cheers!
If your application is a native FreeBSD application, it can not use the v4l-linuxulator stuff. If your application is a linux application, it will use the v4l-linuxulator stuff and can not use the FreeBSD v4l interface directly. All you have to do is to get your application working, you do not have to care about which v4l interface (FreeBSD or Linux) you are using, this will happen automatically.