Re: [PATCH] [media] vb2: clear V4L2_BUF_FLAG_LAST when filling vb2_buffer

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

 



Hi Philipp,

On Fri, Dec 08, 2017 at 03:01:28PM +0100, Philipp Zabel wrote:
> V4L2_BUF_FLAG_LAST is a signal from the driver to userspace for buffers
> on the capture queue. When userspace queues back a capture buffer with
> the flag set, we should clear it.
> 
> Otherwise, if userspace restarts streaming after EOS, without
> reallocating the buffers, mem2mem devices will erroneously signal EOS
> prematurely, as soon as the already flagged buffer is dequeued.
> 
> Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
> ---
>  drivers/media/v4l2-core/videobuf2-v4l2.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/media/v4l2-core/videobuf2-v4l2.c b/drivers/media/v4l2-core/videobuf2-v4l2.c
> index 4075314a69893..fac3cd6f901d5 100644
> --- a/drivers/media/v4l2-core/videobuf2-v4l2.c
> +++ b/drivers/media/v4l2-core/videobuf2-v4l2.c
> @@ -434,6 +434,8 @@ static int __fill_vb2_buffer(struct vb2_buffer *vb,
>  	} else {
>  		/* Zero any output buffer flags as this is a capture buffer */
>  		vbuf->flags &= ~V4L2_BUFFER_OUT_FLAGS;
> +		/* Zero last flag, this is a signal from driver to userspace */
> +		vbuf->flags &= ~V4L2_BUF_FLAG_LAST;

Thanks for the patch.

How about:

	vbuf->flags &= ~(V4L2_BUFFER_OUT_FLAGS | V4L2_BUF_FLAG_LAST);

-- 
Sakari Ailus
e-mail: sakari.ailus@xxxxxx



[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