Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jul 2003 09:55:40 -0700
From:      John-Mark Gurney <gurney_j@efn.org>
To:        Andrew Gordon <arg-bsd@arg1.demon.co.uk>
Cc:        multimedia@freebsd.org
Subject:   Re: AW: BSD video capture emulation question
Message-ID:  <20030714165540.GU35337@funkthat.com>
In-Reply-To: <20030714152113.O81987-100000@server.arg.sj.co.uk>
References:  <20030714064137.GT35337@funkthat.com> <20030714152113.O81987-100000@server.arg.sj.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Gordon wrote this message on Mon, Jul 14, 2003 at 16:29 +0100:
> 
> On Sun, 13 Jul 2003, John-Mark Gurney wrote:
> >
> > If the mbuf code seperated it out, this MIGHT be a possibility, I'm
> > pretty sure we don't want to run into some of the problem with resource
> > contention on mbufs..  Also, the buffer space may need more fine
> > management...  The idea of a sink sending a packet that a source fills
> > also is kinda wierd (necessary for some dma operations)..
> 
> There seems to be some lack of clarity in these discussions about what
> level of API you are trying to create.  There's at least two
> possibilities:
> 
> a) The low-level API for shifting bulk data and timing information
>    between hardware devices and/or processing modules.  Here the
>    device drivers and encoders/decoders are the providers and consumers
>    of the API, and we're inevitably talking about a kernel interface.
> 
> b) A higher level API to control the 'plumbing'.  Here, user-interface
>    programs are the consumer of the API, with the details of the
>    bulk transfer mechanisms being hidden below the API.

[...]

> Then there's your stated aim that things like USB videocams shouldn't have
> to be implemented with all the logic in the kernel (an aim I agree with
> BTW).  So, you end up with several different APIs for the core data
> transfer, with scope for a unifying higher-layer API on top.  But it's a
> lot of work....

Thank you for clarifing this for everyone.  Yes, I plan to try to address
both a and b of above.  Right now my priority is a since that will get
most hardware available, but b is necessary in order to properly and fully
support userland devices.  B is also necessary because I plan to implement
a in such a way that programmers will kill me if b doesn't come around.

The reason I say this is that the hardware interface will probably have
five different fd's for a card like an MJPEG card.  Remebering what
ioctl's for what fd is to be simplifed by b.  I have recently changed
the verbage of: http://people.freebsd.org/~jmg/videobsd.html
to make this more clear.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



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