BSD video capture emulation question

John-Mark Gurney gurney_j at
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

(originally meteor)

> 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 mailing list