From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([92.198.50.35]:43483 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753347AbbCFKSf (ORCPT ); Fri, 6 Mar 2015 05:18:35 -0500 From: Philipp Zabel To: linux-media@vger.kernel.org Cc: Hans Verkuil , Pawel Osciak , Kamil Debski , Laurent Pinchart , Nicolas Dufresne , Sakari Ailus , kernel@pengutronix.de, Peter Seiderer , Philipp Zabel Subject: [PATCH v3 1/5] [media] videodev2: Add V4L2_BUF_FLAG_LAST Date: Fri, 6 Mar 2015 11:18:26 +0100 Message-Id: <1425637110-12100-2-git-send-email-p.zabel@pengutronix.de> In-Reply-To: <1425637110-12100-1-git-send-email-p.zabel@pengutronix.de> References: <1425637110-12100-1-git-send-email-p.zabel@pengutronix.de> Sender: linux-media-owner@vger.kernel.org List-ID: From: Peter Seiderer This v4l2_buffer flag can be used by drivers to mark a capture buffer as the last generated buffer, for example after a V4L2_DEC_CMD_STOP command was issued. Signed-off-by: Peter Seiderer Signed-off-by: Philipp Zabel --- Changes since v2: - Made V4L2_BUF_FLAG_LAST known to trace events --- Documentation/DocBook/media/v4l/io.xml | 10 ++++++++++ include/trace/events/v4l2.h | 3 ++- include/uapi/linux/videodev2.h | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Documentation/DocBook/media/v4l/io.xml b/Documentation/DocBook/media/v4l/io.xml index 1c17f80..f3b8bc0 100644 --- a/Documentation/DocBook/media/v4l/io.xml +++ b/Documentation/DocBook/media/v4l/io.xml @@ -1129,6 +1129,16 @@ in this buffer has not been created by the CPU but by some DMA-capable unit, in which case caches have not been used. + V4L2_BUF_FLAG_LAST + 0x00100000 + Last buffer produced by the hardware. mem2mem codec drivers +set this flag on the capture queue for the last buffer when the +VIDIOC_QUERYBUF or +VIDIOC_DQBUF ioctl is called. After the +queue is drained, the VIDIOC_DQBUF ioctl will +not block anymore, but return an &EPIPE;. + + V4L2_BUF_FLAG_TIMESTAMP_MASK 0x0000e000 Mask for timestamp types below. To test the diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h index b9bb1f2..32c33aa 100644 --- a/include/trace/events/v4l2.h +++ b/include/trace/events/v4l2.h @@ -58,7 +58,8 @@ { V4L2_BUF_FLAG_TIMESTAMP_MASK, "TIMESTAMP_MASK" }, \ { V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN, "TIMESTAMP_UNKNOWN" }, \ { V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC, "TIMESTAMP_MONOTONIC" }, \ - { V4L2_BUF_FLAG_TIMESTAMP_COPY, "TIMESTAMP_COPY" }) + { V4L2_BUF_FLAG_TIMESTAMP_COPY, "TIMESTAMP_COPY" }, \ + { V4L2_BUF_FLAG_LAST, "LAST" }) #define show_timecode_flags(flags) \ __print_flags(flags, "|", \ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index fbdc360..c642c10 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -809,6 +809,8 @@ struct v4l2_buffer { #define V4L2_BUF_FLAG_TSTAMP_SRC_MASK 0x00070000 #define V4L2_BUF_FLAG_TSTAMP_SRC_EOF 0x00000000 #define V4L2_BUF_FLAG_TSTAMP_SRC_SOE 0x00010000 +/* mem2mem encoder/decoder */ +#define V4L2_BUF_FLAG_LAST 0x00100000 /** * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor -- 2.1.4