There is no single IO queue in Linux where all data arrive.
For disk IO, there is the buffer cache. That's the one you flush with the
sync command. It's usually managed pretty well so there's no reason to touch it, but in case you're interested, there are a few relevant kernel interface files available in
/proc/sys/vm/. On top of that, there are various buffers specific to open files, which can be managed by
setbuf and similar tools/calls.
Network buffering configuration can be seen in
/proc/sys/net/core/, or managed via
sysctl. For incoming packets, look into
wmem will give the respective buffer sizes for outgoing packets). The default value is applied to all sockets and can be increased (up to the maximum) by the application which opens the socket.
For video devices, the buffering is typically managed by the application, using IOCTL calls on the video device file (e.g.
/dev/video1). Applications are limited by what the drivers implement: typically, the driver can either stream to a mapped memory, copy data between buffers using DMA or swap buffers with application via pointers. As a user, take a look at
v4l2-ctl to see what options are available to you.