On 6/12/20 9:53 PM, Tomasz Figa wrote: > On Fri, Jun 12, 2020 at 8:42 PM Stanimir Varbanov > <stanimir.varbanov@xxxxxxxxxx> wrote: >> >> Hi Tomasz, >> >> On 6/12/20 9:33 PM, Tomasz Figa wrote: >>> Hi Stanimir, >>> >>> On Fri, Jun 12, 2020 at 5:20 PM Stanimir Varbanov >>> <stanimir.varbanov@xxxxxxxxxx> wrote: >>>> >>>> I failed to found previous discussion on the subject, maybe it was on IRC. >>>> >>>> I stuck with fixing of issues which depends on this reqbuf(count=0). >>>> Currently I'm counting the buffers in vb2::buf_init and vb2::buf_cleanup >>>> but I don't want to rely on that implicit way anymore. >>>> >>>> If someone of you can remember let me know so that I can prepare an RFC. >>>> >>>> I can think of two options: >>>> - change vb2::queue_setup so it could be called with num_buffers=0 >>>> - add new vb2::queue_release op >>>> >>>> More options? >>> >>> Just to make sure we're on the same page: Are you looking for a way to >>> handle some operation only when all buffers on the queue are being >>> freed? >> >> Exactly :) >> >> Presently I'm counting capture and output buffers in vb2::buf_init and >> vb2::buf_cleanup and release/reinit internal driver resources on the >> last .buf_cleanup. And this is a workaround of the problem which I want >> to solve properly. > > Got it. > > I suppose queue_release() could be a good idea to keep things > symmetrical, but for now, wouldn't it be still possible to hook I guess "for now" is in the context of RELEASE_BUF proposal. > directly into .vidioc_reqbufs and do whatever necessary when count == > 0? I haven't thought about such solution but at least it sounds better then counting buffers in the driver. I'll give it a try. Thanks. > > Best regards, > Tomasz > -- regards, Stan