Hi All, So Hans, Boris and I participated to the chat. As consider that it's important to get this CODEC stuff read in a realistic time frame, the first and most realistic proposal was picked. So here's a summary of that will be needed. ## Introduce a VIDIOC_DELETE_BUF As discussed, this will create wholes in the indexes of the buffers in the queue. VIDIOC_CREATE_BUFS has a start index, so it is left to userspace to fill the wholes. We are not going to lift the 32 buffers limit just yet, that's why it is important to make sure that wholes can be filled. Typical strategy should be to first discard buffers before creating new one. ## Workflow Upon a resolution change, userspace can start allocating frames for the new resolution at any time (that's the nature of CREATE_BUFS). It can also discard no-longer referenced buffers using DELETE_BUFS. Assuming userspace make use of DMABuf, that can happen independently. This could benefit many other drivers, since it will reduce the number actions that must be done during the STREAMOFF period. In order to operate the resolution change, the process remains the same. With the exception that REQBUFS is no longer needed. The framework should already validate properly the buffer size (to be verified please). - STREAMOFF(Capture) - S_FMT(Capture) - QBUF(Capture) * - STREAMON(Capture) Stream ON/OFF operation must be made independent between CAPTURE and OUTPUT queues if it's not already the case. ## Driver specific bits Drivers that support mixed size references will likely extend the structure that stores buffer in vb2, and save the format used at QBUF time. This avoids the need for an extra control later. This also avoid having a lot of per-driver validation. regards, Nicolas