This is my first question - any feedback or direction is welcome. I am trying to 'square' the documentation available for Media UAPI V4L with the expected behaviour. In particular I'm trying to match the following line from Media UAPI Video for Linux §1.1.3: > Today each V4L2 device node supports just one function. with the statement in § 3.2 Streaming I/O: > A driver can support many sets of buffers. Each set is identified by a unique buffer type value. The sets are independent and each set can hold a different type of data. To access different sets at the same time different file descriptors must be used. [footnote]One could use one file descriptor and set the buffer type field accordingly when calling ioctl VIDIOC_QBUF, VIDIOC_DQBUF etc., but it makes the select() function ambiguous. We also like the clean approach of one file descriptor per logical stream...[/footnote] This latter quote reads as though it should be possible to open() a node twice (i.e. two file handles) to access the different buffer types, e.g. V4L2_BUF_TYPE_VIDEO_CAPTURE and then V4L2_BUF_TYPE_VIDEO_OUTPUT, but this is not compliant - see e.g. the tests in v4l2-compliance.cpp within v4l-utils: if (dcaps & input_caps) fail_on_test(dcaps & output_caps); 1. Is § 3.2 actually meant to say "To access different sets at the same time different _device nodes_ must be used."? Or could it state something like "To access different sets available to a node, different file descriptors must be used". Mind you, I can't think of a situation where concurrent access to different buffer-types makes sense (but I am a newbie). 2. Could (or should) § 1.1.3 be more explicit that "function" is a combination of input vs output, and medium (e.g. video, radio, audio)? Kind regards, -Stephen