From patchwork Wed Nov 14 13:47:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans Verkuil X-Patchwork-Id: 10682687 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 89EEF46E4 for ; Wed, 14 Nov 2018 13:47:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D0C228618 for ; Wed, 14 Nov 2018 13:47:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6FA6628675; Wed, 14 Nov 2018 13:47:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5D4DA2855A for ; Wed, 14 Nov 2018 13:47:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733135AbeKNXvK (ORCPT ); Wed, 14 Nov 2018 18:51:10 -0500 Received: from lb1-smtp-cloud8.xs4all.net ([194.109.24.21]:47627 "EHLO lb1-smtp-cloud8.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733104AbeKNXvK (ORCPT ); Wed, 14 Nov 2018 18:51:10 -0500 Received: from cobaltpc1.rd.cisco.com ([IPv6:2001:420:44c1:2579:94da:698d:8319:4499]) by smtp-cloud8.xs4all.net with ESMTPA id MvWBgkBhe9VdZMvWGgNLgt; Wed, 14 Nov 2018 14:47:49 +0100 From: Hans Verkuil To: linux-media@vger.kernel.org Cc: Alexandre Courbot , maxime.ripard@bootlin.com, paul.kocialkowski@bootlin.com, tfiga@chromium.org, Nicolas Dufresne , Hans Verkuil Subject: [PATCHv2 4/9] buffer.rst: document the new buffer tag feature. Date: Wed, 14 Nov 2018 14:47:38 +0100 Message-Id: <20181114134743.18993-5-hverkuil@xs4all.nl> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181114134743.18993-1-hverkuil@xs4all.nl> References: <20181114134743.18993-1-hverkuil@xs4all.nl> MIME-Version: 1.0 X-CMAE-Envelope: MS4wfKwLqAACTb0/toJPjqw7aHZrgJDrzqaGYzNZm3uFxJiSE7hWZTvE85PPra64K7bVqKs1rR/54X3VB3Rm+aOgJeVmzkox3rRsNPvg5Yb1k2jwIb0z/8BZ q6KgFB/HMxIvqJJFZKkgaVJthbqPOPgY7VRBIg67j84upmKIOV7jRZQ7AFzPaa1Sw7Po+DXiIKLQw7ZNxp3caykqtXeg/ESumciq0WZFZJNgExXLqk9lHjbX RF2C+Iq7MeS68wJ2+lQfB18WWcrXynxJzGir/3Ta028qbeWd4+mzMiNe6GJ4K5Kn+31vaotI4ClLDQm6PbilJQ1ZVzAq1O+pZYN2ZjQjZ+yg1TtpyGUjB5Zo Xer3njsUE+a9XNI0eUgSgnD8NiS94Y7ZppUvKgVUh8UHHTkSgQJi6TdfVmlzzkbZBihAvZwRqOFzH/y1Aa161XaUSHswLxlKcdry4snzr+ViEXlL1kI= Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Document V4L2_BUF_FLAG_TAG and struct v4l2_buffer_tag. Signed-off-by: Hans Verkuil --- Documentation/media/uapi/v4l/buffer.rst | 32 ++++++++++++++----- .../media/uapi/v4l/vidioc-reqbufs.rst | 4 +++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Documentation/media/uapi/v4l/buffer.rst b/Documentation/media/uapi/v4l/buffer.rst index 2e266d32470a..0d4aa83d2bce 100644 --- a/Documentation/media/uapi/v4l/buffer.rst +++ b/Documentation/media/uapi/v4l/buffer.rst @@ -220,17 +220,25 @@ struct v4l2_buffer use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill in the timestamp which will be copied by the driver to the capture stream. - * - struct :c:type:`v4l2_timecode` + * - union + * - + - struct :c:type:`v4l2_timecode` - ``timecode`` - - - - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the - ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this + - When the ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this structure contains a frame timecode. In :c:type:`V4L2_FIELD_ALTERNATE ` mode the top and bottom field contain the same timecode. Timecodes are intended to help video editing and are typically recorded on video tapes, but also embedded in compressed formats like MPEG. This field is independent of the ``timestamp`` and ``sequence`` fields. + * - + - __u32 + - ``tag`` + - When the ``V4L2_BUF_FLAG_TAG`` flag is set in ``flags``, this + structure contains a user-specified tag value. + + It is used by stateless codecs where this tag can be used to + refer to buffers that contain reference frames. * - __u32 - ``sequence`` - @@ -567,6 +575,14 @@ Buffer Flags when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set this bit and the corresponding ``timecode`` structure when ``type`` refers to an output stream. + * .. _`V4L2-BUF-FLAG-TAG`: + + - ``V4L2_BUF_FLAG_TAG`` + - 0x00000200 + - The ``tag`` field is valid. Applications can set + this bit and the corresponding ``tag`` structure. If tags are + supported then the ``V4L2_BUF_CAP_SUPPORTS_TAGS`` capability + is also set. * .. _`V4L2-BUF-FLAG-PREPARED`: - ``V4L2_BUF_FLAG_PREPARED`` @@ -704,10 +720,10 @@ enum v4l2_memory Timecodes ========= -The struct :c:type:`v4l2_timecode` structure is designed to hold a -:ref:`smpte12m` or similar timecode. (struct -struct :c:type:`timeval` timestamps are stored in struct -:c:type:`v4l2_buffer` field ``timestamp``.) +The :c:type:`v4l2_buffer_timecode` structure is designed to hold a +:ref:`smpte12m` or similar timecode. +(struct :c:type:`timeval` timestamps are stored in the struct +:c:type:`v4l2_buffer` ``timestamp`` field.) .. c:type:: v4l2_timecode diff --git a/Documentation/media/uapi/v4l/vidioc-reqbufs.rst b/Documentation/media/uapi/v4l/vidioc-reqbufs.rst index d4bbbb0c60e8..5090a62f324c 100644 --- a/Documentation/media/uapi/v4l/vidioc-reqbufs.rst +++ b/Documentation/media/uapi/v4l/vidioc-reqbufs.rst @@ -112,6 +112,7 @@ any DMA in progress, an implicit .. _V4L2-BUF-CAP-SUPPORTS-USERPTR: .. _V4L2-BUF-CAP-SUPPORTS-DMABUF: .. _V4L2-BUF-CAP-SUPPORTS-REQUESTS: +.. _V4L2-BUF-CAP-SUPPORTS-TAGS: .. cssclass:: longtable @@ -132,6 +133,9 @@ any DMA in progress, an implicit * - ``V4L2_BUF_CAP_SUPPORTS_REQUESTS`` - 0x00000008 - This buffer type supports :ref:`requests `. + * - ``V4L2_BUF_CAP_SUPPORTS_TAGS`` + - 0x00000010 + - This buffer type supports ``V4L2_BUF_FLAG_TAG``. Return Value ============