RE: vb2: about vb2_queue->queued_count

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux