My requirement is to grab around 400 raw frames at 226fps from sensor into a big buffer without memcpy i.e just change the pointers and later process it in GPU. I tried to allocate Big number of buffer using V4L2_MEMORY_USERPTR/MMAP, I requested 400 and just 32 buffers returns, is there a way to increase number of buffers ?
req.count = 400;
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
req.memory = V4L2_MEMORY_USERPTR; /V4L2_MEMORY_MMAP
if (-1 == xioctl (fd, VIDIOC_REQBUFS, &req)) {
if (EINVAL == errno) {
fprintf (stderr, "%s does not support "
"user pointer i/o\n", dev_name);
exit (EXIT_FAILURE);
} else {
errno_exit ("VIDIOC_REQBUFS");
}
}