From owner-freebsd-current@FreeBSD.ORG Thu Jul 10 08:29:37 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A2E537B401 for ; Thu, 10 Jul 2003 08:29:36 -0700 (PDT) Received: from flamingo.mail.pas.earthlink.net (flamingo.mail.pas.earthlink.net [207.217.120.232]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7B2A943F85 for ; Thu, 10 Jul 2003 08:29:36 -0700 (PDT) (envelope-from welchsm@earthlink.net) Received: from kermit.psp.pas.earthlink.net ([207.217.78.241]) by flamingo.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 19adMW-0001he-00; Thu, 10 Jul 2003 08:29:36 -0700 Received: from [207.217.78.201] by EarthlinkWAM via HTTP; Thu Jul 10 08:29:35 PDT 2003 Message-ID: <7192223.1057850975979.JavaMail.nobody@kermit.psp.pas.earthlink.net> Date: Thu, 10 Jul 2003 08:29:34 -0500 (GMT) From: Sean Welch To: freebsd-current@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Earthlink Web Access Mail version 3.0 Subject: BSD video capture emulation question X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Sean_Welch@alum.wofford.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 15:29:37 -0000 First the question, then the motivation and reasoning. Is it feasible to create an emulation interface for firewire video capture such that it appears as a bktr device? I've recently begun playing with gnomemeeting and had some success with the audio conferencing end of it. I'm able to receive video feeds, but unable to send them. This is because 2.5 years ago I made the transition to a laptop as my main workstation. I no longer even maintain a desktop system. I use this laptop for everything -- including a media center (of sorts). I don't need Windows or Linux for this and I'm quite a bit more productive under FreeBSD than I would be under either of the other two (and the performance happens to be better as well). FreeBSD is well equiped to handle everything you might normally run across (ogle, wavrec, mplayer, mozilla, flashplugin-wrapper, mplayerplug-in, DRI, s10sh, gimp, gaim, gnomemeeting, TeX, OpenOffice, VMWare, realplay, xmms, apache, samba, etc) EXCEPT video capture. 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. 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. 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? 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). Sean