Subject: Webcam support - where to go from here?
To: None <current-users@netbsd.org>
From: Martijn van Buul <martijnb@atlas.ipv6.stack.nl>
List: current-users
Date: 02/26/2005 12:02:49
As we're hopefully all painfully aware, webcam support for NetBSD has been
rather minimal - although all *BSD systems seem to suffer from this. While
Linux has Video4Linux - a more or less hardware independant interface -, all
we have is a rather wild collection of tools in pkgsrc (None of them even
remotely interchangeable) to address individual webcams using the ugen
device driver. Not a really good selling point, if you ask me.
So, where do we go from here? In my humble opinion, we've got a couple of
possibilities:
1) Keep the current situation, maybe trying to make the aforementioned
userland programs have a compareable calling convention, so that the
amount of chaos is slightly reduced. Shouldn't take a lot of work.
2) Shoehorn these devices into being compatible with the bktr. This would
make these devices accessible to everything using the bktr API. However,
I'm not sure if this is actually doable without extending the bktr API,
and I'm not really sure it's a clever idea to begin with. Certainly not
my favourite option, but it's one to consider.
3) Assimilate v4l. While v4l is far from free from design errors - like many
linux interfaces, really - there is a modest amount of software which would
readily support this. And while v4l is slightly biased towards video
capture cards and TV tuners, it has proven to be working for webcams as
well. There's a newer version of this standard in the works (v4l2) which
gets rid of some of the design flaws of v4l, but there's not a lot of
support for that.
4) Invent our own hardware independant video driver layer, avoiding the
pitfalls from v4l. Some basic v4l compatibility would still be possible,
using a compatibility layer (much like the OSS emulation for audio)
5) The brilliant, very obvious, and mindboggingly simple plan that takes no
time at all to implement - but which I failed to see...
Any ideas? I'd be more than willing to invest time in this.
Kind regards,
Martijn