c592b46907
If a vb2_queue sets q->min_buffers_needed then when the number of
queued buffers reaches q->min_buffers_needed, vb2_core_qbuf() will call
the start_streaming() callback. If start_streaming() returns an error,
then that error was just returned by vb2_core_qbuf(), but the buffer
was still queued. However, userspace expects that if VIDIOC_QBUF fails,
the buffer is returned dequeued.
So if start_streaming() fails, then remove the buffer from the queue,
thus avoiding this unwanted side-effect.
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Fixes:
|
||
---|---|---|
.. | ||
frame_vector.c | ||
Kconfig | ||
Makefile | ||
vb2-trace.c | ||
videobuf2-core.c | ||
videobuf2-dma-contig.c | ||
videobuf2-dma-sg.c | ||
videobuf2-dvb.c | ||
videobuf2-memops.c | ||
videobuf2-v4l2.c | ||
videobuf2-vmalloc.c |