Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Apr 2006 22:34:37 -0700
From:      Jacob Meuser <jakemsr@jakemsr.com>
To:        freebsd-multimedia@freebsd.org
Subject:   Re: FreeBSD Multimedia API and Google SOC2006
Message-ID:  <20060501053437.GA20289@puff.jakemsr.gom>
In-Reply-To: <20060501044835.GQ728@funkthat.com>
References:  <20060427182528.35070.qmail@exxodus.fedaykin.here> <20060427205905.9ab1500f.torfinn.ingolfsen@broadpark.no> <20060427201316.GJ728@funkthat.com> <20060430213424.GA19859@puff.jakemsr.gom> <20060501044835.GQ728@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 30, 2006 at 09:48:35PM -0700, John-Mark Gurney wrote:
> Jacob Meuser wrote this message on Sun, Apr 30, 2006 at 14:34 -0700:
> > On Thu, Apr 27, 2006 at 01:13:16PM -0700, John-Mark Gurney wrote:
> > > Torfinn Ingolfsen wrote this message on Thu, Apr 27, 2006 at 20:59 +0200:
> > > > On Thu, 27 Apr 2006 15:25:05 -0300
> > > > Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org> wrote:
> > > > 
> > > > > 	I was wondering if someone could propose a
> > > > > project for a basic multimedia API for FreeBSD.
> > > > 
> > > > Video4bsd (V4B) perhaps?
> > > > Here is one candidate: http://people.freebsd.org/~jmg/videobsd.html
> > > 
> > > Yeh, I think I'll mentor someone if someone is interested....
> > > 
> > > > Also, the USB Video class (example at http://linux-uvc.berlios.de/)
> > > > looks interesting, I think it should be included in a multimedia API
> > > > for BSD.
> > > > 
> > > > > 	I am not proposing V4Linux but some sort of common
> > > > > API abstraction.
> > > > 
> > > > IMHO, if we create our own multimedia API, it should have V4L2
> > > > and V4L1 "faces" or "shims" that allows devices to be operated through
> > > > these APIs. At least V4L2, only V4L1 if it is really needed.
> > > > The reason for this is that it will ease porting of programs that uses
> > > > the V4L API's. And there are a lot of those.
> > > > Note: I am very much out of my waters here, I can't really tell if this
> > > > is feasible / practical at all.
> > > 
> > > Personally the V4Lx API's are at the wrong level for how far computers
> > > have advanaced...  Any video api should be a userland library, that
> > > provides access to it...  and not a kernel interface that is of
> > > limited use...  This has the advantage that updates for new tuners and
> > > other stuff can happen easier and quicker... and more people are willing
> > > to touch the code...
> > > 
> > > My bktrau driver for the DViCO FusionHDTV5 Lite has a minimal kernel
> > > presence... the userland capture program uses the GPIO defines in bktr,
> > > the iic device driver for controlling the tuner and demodulator to
> > > control the capture..  This means my driver is under 1k lines of code..
> > 
> > is the bktrau code available?
> 
> It's in perforce:
> http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/jmg/bktrau

thanks

> > > > If there is need for a mechanism (sp?) to distinguish which API a
> > > > certain device can be operated with, an easy way would be to use a
> > > > naming convention. Example: /dev/video0 - use the V4L
> > > > API, /dev/bsdvideo0 - use the V4B API. Most likely, somebody else has a
> > > > better suggestion.
> > > 
> > > I'd suggest NOT to use a kernel interface.. they are expensive to
> > > maintain, and harder to shoehorn things like USB web cams into...
> > 
> > I tried making a userland A/V library ...
> > 
> > http://www.jakemsr.com/bsdav/
> > 
> > not the greatest, only supports bktr video, but maybe some kind of
> > starting point?
> 
> Hmmm...  This seems to be more of a stream format than a AV device
> library...  There are a few things to interact w/ bktr, but my goal
> for a library, is that you'd never know what the frame (or stream)
> grabber underneath is..  that you'd just say, give me a frame in x
> format.. and the userland would find the best common format and handle
> the translation...

yeah, it was just a "first go".  I would like to make it more usable.

I think I see what you're saying though ... something like:

bsdav.vid->init(YV12, 640, 480, 30);
while (...) {
    buf = bsdav.vid->get_frame();
    (modify/write/display buf) 
}
bsdav.vid->stop();

-- 
<jakemsr@jakemsr.com>





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060501053437.GA20289>