Hello Gerd,
enum v4l2_memory { V4L2_MEMORY_MMAP = 1, V4L2_MEMORY_USERPTR = 2, V4L2_MEMORY_OVERLAY = 3, };
- V4L2_MEMORY_MMAP is the "classic" mmaping (offset+length returned by the QUERYBUF and passed to mmap()) - V4L2_MEMORY_USERPTR allows applications to pass in pointers to random userspace memory (userptr+length).
If you do this, please keep in mind that some scatter-gather DMA engines (especially the philips saa7146, don't know about the saa7134) can only deal with page aligned boundaries.
So there should be an "offset" parameter that gets set by the driver for each buffer to indicate how much bytes at the beginning have to be skipped in order to reach a page boundary.
Alternatively, the user application may provide an already page aligned memory, but I don't think that this is a good idea (and if it's possible for a user application to request this).
Gerd
CU Michael.