<div dir="ltr">Hi,<div><br></div><div>I am working on a V4L2 based video decoder driver, </div><div><br></div><div>At user side there are two contexts.</div><div>One is queuing/dequeuing buffers from driver (in a separate thread) and other is the main context, from where I am calling streamon, streamoff.<br></div><div><br></div><div>When I call a streamoff from main context and thread is blocking on dqbuf, This cause the blocking thread to unblock from dqbuf with an error (EINVAL).</div><div><br></div><div>Seems this error coming from videobuf2-core, as streamoff will unblock the waiting thread, and this thread will go and check (in function __vb2_wait_for_done_vb) for q-&gt;streaming and will return error as q-&gt;streaming will be set to false on streamoff.</div><div><br></div><div>Is it the right behavior of vb2_dqbuf to return error when streamoff is called? </div><div><br></div><div>Or is it a right way to have this kind of mechanism i.e.on userside one thread is queue/dequeue buffers while another is doing streamoff.</div><div><br></div><div>Thanks for your help and idea.</div><div><br></div><div>Thanks,</div><div>Chetan Nanda</div></div>