Re: questions about v4l2 spec

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hi Franz,

I'm not *the* v4l2 guru, but I can tell what my driver does and what I
think drivers are supposed to do.

On Fri, 2003-05-16 at 08:57, Franz Reinhardt wrote:
> Q: What if no buffers are enqued by the app ?

Then nothing happens. The driver will - at best - set a flag that locks
capture to that session. However, you will still have to queue buffers.

The advantage of first queue - then start is, that at the point that you
start, all buffers are already there and enqueued, which means better
buffering and performance. If the buffers are enqueued later, the driver
has to initialize its internal capture system, which degrades
performance a bit.

> Q1: Does DQBUF block, when the hardware is just capturing in this 
> buffer, until capturing has finished ?

Depends on whether O_NONBLOCK is given in the open() flags (second
argument). I'm not sure whether O_NONBLOCK is part of the v4l2 specs or
whether *all* drivers implement support for it.

> Q2: Is there any way to get the last captured buffer (and skip the other 
> buffers)?

No.

> Q3: What should the driver do, if the application wants to deque the 
> last buffer ? If streaming is going on, the hardware need at least one 
> buffer, or the streaming has to be stopped.

The same as when VIDEO_STREAMON is called without any buffers queued.
Capturing in the driver is stopped, but the capture lock is still being
held by that session.

> Q: To restart capturing, do I have to start @ VIDIOC_REQBUFS again ?

Yes.

Ronald




[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux