Gerd Knorr wrote: > > The size element is there so the user can map a bigger chunk of > > memory than is currently necessary so that the format can be changed > > later on. > > IIRC this isn't allowed in the current v4l2 API. It is. Sort of. It needed to be allowed for v4l compatibility. It's discussed in the Driver Writer's Guide, but not in the main API document. I guess you can say it's optional, but recommended. Of course the format is limited to the size of the currently allocated buffers. > For the kernel-buffer case you'd have call VIDIOC_REQBUFS first, > then mmap() the memory. Then call VIDIOC_QUERYBUF, and the driver > will fill the pointers in v4l2_buffer. The driver only has kernelspace addresses. It can't fill in a userspace pointer. It doesn't know what mmap() returned. Bill.