[Gridflow-dev] missing include linux/videodev.h in src/videodev.cxx
Mathieu Bouchard
matju at artengine.ca
Fri Dec 30 16:40:58 EST 2011
Le 2011-12-30 à 15:52:00, Claude Heiland-Allen a écrit :
>
> libv4l2 makes it really easy to capture frames with a blocking read
> interface whether the underlying driver supports it or not, also
> performing some colour space conversions if needed/desired.
I didn't realise that. Indeed, it would be one less source of bugs,
especially as a separate thread is another source of bugs, and at the same
time, it allows the read-interface to get all the advantages of a
mmap-interface, afaik. (Right ?)
> Enumerating controls (possible use cases: knowing which #io.v4l2 methods to
> register, or even generating a Pd controller GUI patch for that particular
> device)
[#camera] already colours all widgets according to which attributes are
returned when calling the «get» method on [#in].
> is somewhat tricky but certainly possible (something like calling an
> ioctl() incrementing an id until it fails, do this twice for two
> different control id ranges):
If that depends completely on the driver and not on the device, does this
means that it is a very fast operation to perform ?
> I do have a BTTV PCI card somewhere in a cupboard, maybe I should dig it
> out for experimentation before analogue TV broadcast end here...).
If you still have a PCI port... ;) I don't even have that. But I do keep a
bit of PCI hardware just in case. (Actually, I do have some PCI ports, but
only on computers that I don't use anymore.)
> It should be easiesst to use blocking interfaces (eg "v4l2_read()") in
> another thread, the tricky part (as always..) is the communication
> between threads (what about frame dropping if the camera captures faster
> than the pd/gridflow processing can support?).
Yes, of course. This is what is already done in [#io.quicktimecamera]
(but it's a default behaviour of that API).
And I wouldn't be against the same thing for movies, but I'd rather have
it set to off by default.
There's a class named Format (C++-level only) that is the base class of
all [#io.$1] classes. The threading could be implemented once, in there,
for use by all other Format subclasses at once. Same goes for any feature
that could be used by enough Format subclasses at once.
______________________________________________________________________
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC
More information about the Gridflow-dev
mailing list