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.
I am in the process of preparing the import of code which makes v4l devices usable in the linuxulator. Basically this means you can use your webcam in skype (tested by the submitter of the patch on amd64).
This is not a “apply patch and commit” thing, because the original videodev.h (with some modifications) is used. I was seeking the OK from core@ for this. As there is no license in the header, and the original author (Alan Cox, the linux one, not our FreeBSD one) gave permissions to use it, core@ is OK with the import.
I intent to do a vendor import of the linux header (prepared today, together with some readme which explains where it comes from and some stuff to show that we are on the safe side regarding legal stuff), and then I want to copy this over to the linuxulator as linux_videodev.h and commit the patch (probably a little bit modified in a few places). My plan is to commit it this week. People which already want to play around with it now can have a look at the emulation mailinglist, a link to the patch is posted there.
With the header being in a vendor branch, interested people could then start to submit new BSD licensed drivers or modify existing drivers which make use of the v4l interface, but I let the import of the header into the FreeBSD include directory up to the person which wants to commit the first native FreeBSD-v4l support.
When such native FreeBSD-v4l support is committed, the linuxulator code needs to be revised.
Today I fixed 3 linux ports (converting to the “new” world order) to not use RPM directly (the right thing is to use rpm2cpio, and bsd.linux-rpm.mk provides some nice stuff to handle this).
In the last week I fixed some stuff in the linuxulator–MFC patch. It should now compile on amd64 and i386 without problems (at least the code which I have locally). There’s one (strange) panic report which I want to analyze and fix (if it is linuxulator related) with Roman before I update the patch on my site.