> I've done what you're discussing before, and to do it right alot of what
> you think of as per-device state becomes per-open state, including
> capture format, input mux selection and more. When an app requests a
> frame, the whole device state for that open has to be essentially
> context-switched onto the device and the frame captured. You are
> creating multiple virtual devices and task switching. Would everybody
> understand that? Would they get it right?
I don't want virtual devices. Whenever the capture format / input mux is
per device or per open depends on the hardware capabilities. If the card
can capture at the same time from multiple inputs it would be per-open.
If not, the capture can still be per-device. If one application asked
for capture buffers with REQBUFS others are simply locked out (REQBUFS
returns -EBUSY) until the application is done and frees the buffers.
Ok, you probably still have to keep track of the capture format per open,
but there are no context switches on the grabber hardware. I don't think
it is very useful do to this. If some application captures frames, it
should be able to get the full framerate, which means in needs exclusive
access between the STREAMON and STREAMOFF ioctls as minimum (on hardware
which can't do multiple captures in parallel).
> Anyway, that's why V4L2 is the way it is. Still want to change it?
Yes.
Gerd
--
Protecting the children is a good way to get a lot of adults who cant
stand up for themselves. -- seen in some sig on /.
--
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject.