BSD video capture emulation question
gurney_j at efn.org
Thu Jul 10 12:13:29 PDT 2003
Sean Welch wrote this message on Thu, Jul 10, 2003 at 08:29 -0500:
> Linux accomplishes this with the video4linux API and
> thus has access to a wide range of usb webcams for use
> with programs like gnomemeeting. FreeBSD has no such
> API though it does have programs like cqcam, camserv,
> and bktr2jpeg (not in ports)... for obsolete cameras.
> It seems Linux achieves its success with devices
> represented as a generic video device handled directly
> by the kernel. The programs I mentioned above are
> userland programs (of course) and so don't (apparently)
> have the same utility.
Yes, video capture in FreeBSD is sorely lacking. I recently did a
Zoran driver and found that the bktr interface is horrid.
> Asking around it seems that porting the video4linux
> API would be tedious and exceedingly painful (my
> paraphrasing). It also has the possible disadvantage
> of being GPL'd -- personally I think BSD (Free, Net,
> and Open) would benefit more from a BSD licensed
> solution. It seems writing a video4bsd API from
> scratch that is compatible with video4linux would also
> be rather daunting.
Not only that, but the v4l interface isn't that great. It also doesn't
mesh with FreeBSD's newbus frame work.
> It occurred to me however that there does exist one
> kernel video device -- the bktr device family. It is
> well established and works well (that is what I read,
> at any rate). In addition, the firewire video capture
> program is not GPL'd (to the best of my knowledge) and
> seems a good candidate. My impression is that capture
> from firewire is a bit more straight-forward than
> capture from usb. Apple is now stirring up the
> industry with iSight and I expect it will increase the
> availability of firewire webcams at lower prices.
> So, would it be possible to emulate a bktr device
> front end for a firewire cam (of some sort) in the
> same manner as is currently done with atapicam for
> scsi emulation on top of atapi?
This may be possible. It shouldn't be too hard to write a bunch
of shims to convert it. I would rather see work be done on
creating a better interface. Also, just doing a kernel interface like
v4l is not good for future. I would like to see a combination of
kernel and userland library. That way for usb web cams, we can keep
the driver in userland w/o expecting the user to load a kernel module.
> FreeBSD keeps up so well in all the other categories
> relevant to a desktop media system that it would be
> really nice to have it also encompass this ability.
> Not to mention it would allow me to video conference
> with the rest of my family located 1100 miles away
> without resorting to another operating system.
> I'm not competent enough to attempt this myself (yet!)
> but I'm more than willing to help as much as I can
> with coding and testing (assuming this proposition is
> even feasible).
I'm definately interested in this too.
Also, a better list for this would be -multimedia. I have cc'd the
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the freebsd-current