Can’t request more than 32 buffers with v4l2 V4L2_MEMORY_USERPTR/MMAP

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");
    }
}

Hi,
Please refer to


We think maximum value 32 should be good for general cases. Increasing it to 200 may trigger other issues in stability or memory shortage.