<div dir="ltr"><p>Hello,</p>
<p>i am trying to use v4l2 to capture frames, with zero copy.<br>
to  support set of consumers running in dockers,<br>
I am using  userptr mode (pointing to shared memeory).<br>
to support “slow” consumers, i need to keep buffer 300 frames.</p>
<p>Problem:<br>
when i call VIDIOC_REQBUFS  with count > 32 ,<br>
it returns a struct with req.count = 32<br>
(meaning, it allocated only 32 buffers).</p>
<p>questions are:<br><br>       question1:<br>       assume i keep using userptr mode,<br>        is there anything to do request buffer of 300 pointers (in userptr mode) ?<br>        i have been reading several links about that question but non of them worked<br><br>      question2: <br>      assuming i keep using userptr mode,<br></p><p>      i was thinking about the idea below.<br></p><p>     has anyone tried it ? any reason it will not work ?<br></p><p>          a. allocte a private  queue of 300 buffers to shared memeory.<br><br>           b.each time  i get frame from v4l2,<br> <br>           b.1  dequeue the frame from v4l2 queue (with 32 items)<br>           b.2 enqueue it to private queue (with 300 items<br>          b.3 dequeue  pointer from provate queue (with 300 ietms<br>           b.4 enqueue that pointer to v4l2 buffer (with 32 items)<br><br></p><p>       quesiton3:<br>       should i try  r\w mode instead userptr <br>       in r\w mode, i we call select and then read , providing read and address.<br>       i was thinking about the following idea:<br>       manage a cyclic buffer with   300 pointers to shared memory.<br>      each time i will call read , i will provide the point to the shared memory<br>      what are the disadvantages of that mode comparing to userptr ?<br>
PS:<br>
i read that r\w mode does not provide time stamptsm but i am not sure that does that mean and what are the implications.<br><br>   question4:<br>   would you recommend any other v4l2 mode to support the requirements ?<br><br>question5:<br>if i will use dmabufs mode, i will eoncounter the same issue (failing on request bufs)<br></p><ol><li><br></li></ol>
<h2><a name="environment-details-details-1" class="gmail-anchor" href="https://forums.developer.nvidia.com/t/v4l2-limitations/265289#environment-details-details-1"></a>Environment details details</h2>
<p>AGX Orin<br>
Ubunto, 20.04.6 LTS, Release 20.04, Codename: focal<br>
linux kernel: 5.10.104-tegra<br>
l4t 35.1.0</p></div>