Le lundi 16 septembre 2024 à 20:42 -0700, Karthik Poduval a écrit : > Hi All, > > I was trying to implement media requests on a video capture device on > kernel version 6.1. On my video capture device driver I configured the > q settings as > q->min_buffers_needed = 4; > q->supports_requests = true; > > To make the application work however I had to comment out the > following lines from videobuf2-core.c > /* > * This combination is not allowed since a non-zero value of > * q->min_queued_buffers can cause vb2_core_qbuf() to fail if > * it has to call start_streaming(), and the Request API expects > * that queueing a request (and thus queueing a buffer contained > * in that request) will always succeed. There is no method of > * propagating an error back to userspace. > */ > //if (WARN_ON(q->supports_requests && q->min_queued_buffers)) > // return -EINVAL; > > Regular capture would not work without min_buffers_needed being set > and requests wouldn't work without supports_requests being set. > > Does this mean that media requests are not supported on video capture devices ? > Kindly advise on how to proceed. Correct, some RFC for read-only request was adding some of the implementation. https://lore.kernel.org/linux-media/20210610113615.785359-1-hverkuil-cisco@xxxxxxxxx/ Now, this is about attaching control values that are apply when a buffer is produced (more like what parameter was applied to that buffer). There is no RFC for actually applying a control for a specific capture. This is a bit challenging, since we don't have spec that requires drivers to fill capture buffers in the order they have been queued, even though this is what we do in practice. Nicolas p.s. the dynamic arrays part has been split out and merged already