Le jeudi 2 août 2012 09:35:58 Hans Verkuil, vous avez écrit :
On Wed August 1 2012 22:49:57 Rémi Denis-Courmont wrote:
What about using the CREATE_BUFS ioctl to add new MMAP buffers at runtime ?
Does CREATE_BUFS always work while already streaming has already started? If it depends on the driver, it's kinda helpless.
Yes, it does. It's one of the reasons it exists in the first place. But there are currently only a handful of drivers that implement it. I hope that as more and more drivers are converted to vb2 that the availability of create_bufs will increase.
That's contradictory. If most drivers do not support it, then it won't work during streaming.
What's the guaranteed minimum buffer count? It seems in any case, MMAP has a hard limit of 32 buffers (at least videobuf2 has), though one might argue this should be more than enough.
Minimum or maximum? The maximum is 32, that's hardcoded in the V4L2 core. Although drivers may force a lower maximum if they want. I have no idea whether there are drivers that do that. There probably are.
The smallest of the maxima of all drivers.
The minimum is usually between 1 and 3, depending on hardware limitations.
And that's clearly insufficient without memory copy to userspace buffers.
It does not seem to me that CREATE_BUFS+MMAP is a useful replacement for REQBUFS+USERBUF then.