Hello, On Friday, June 10, 2011 6:29 PM Uwe Kleine-König wrote: > On Fri, Jun 10, 2011 at 01:50:37PM +0200, Marek Szyprowski wrote: > > Hello, > > > > On Wednesday, June 08, 2011 10:48 PM Uwe Kleine-König wrote: > > > > > I'm still debugging my new video overlay device driver. The current > > > problem is again when playing back a second video. > > > > > > After streamoff is called at the end of the first video, I disable the > > > overlay and call vb2_buffer_done on the last buffer. This is exited > > > early because vb->state == VB2_BUF_STATE_DEQUEUED. > > > This results in vb->vb2_queue->queued_count being 1. > > > > > > Now if the new video starts I call vb2_queue_init in > the .vidioc_reqbufs > > > callback on my queue (that still has queued_count == 1). After > > > vb2_queue_init returns queued_count is still 1 though q->queued_list is > > > reset to be empty. > > > > > > __vb2_queue_cancel has a similar problem, &q->queued_list is reset, but > > > queued_count is not. > > > > Thanks again for finding the bug. You are right, __vb2_queue_cancel > should > > reset queued_count too. I will post a patch soon. > IMHO vb2_queue_init should reset queued_count, too. Not sure if you just > skipped to mention it here .... vb2_queue_init assumes that the called allocated vb2_queue with kzalloc() or did memset(q, 0, sizeof(struct vb2_queue)), so it is not really required to explicitly set queued_count to zero. Best regards -- Marek Szyprowski Samsung Poland R&D Center -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html