Em Mon, 10 Apr 2017 19:58:46 +0200 Hans Verkuil <hverk...@xs4all.nl> escreveu:
> On 04/10/2017 07:23 PM, Mauro Carvalho Chehab wrote: > > Em Tue, 28 Feb 2017 17:56:41 +0200 > > Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com> escreveu: > > > >> The metadata buffer type is used to transfer metadata between userspace > >> and kernelspace through a V4L2 buffers queue. It comes with a new > >> metadata capture capability and format description. > >> > >> Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com> > >> Tested-by: Guennadi Liakhovetski <guennadi.liakhovet...@intel.com> > >> Acked-by: Sakari Ailus <sakari.ai...@linux.intel.com> > >> Acked-by: Hans Verkuil <hans.verk...@cisco.com> > >> --- > >> Documentation/media/uapi/v4l/buffer.rst | 3 ++ > >> Documentation/media/uapi/v4l/dev-meta.rst | 62 > >> ++++++++++++++++++++++++ > >> Documentation/media/uapi/v4l/devices.rst | 1 + > >> Documentation/media/uapi/v4l/vidioc-querycap.rst | 3 ++ > >> Documentation/media/videodev2.h.rst.exceptions | 2 + > >> drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 19 ++++++++ > >> drivers/media/v4l2-core/v4l2-dev.c | 16 +++--- > >> drivers/media/v4l2-core/v4l2-ioctl.c | 34 +++++++++++++ > >> drivers/media/v4l2-core/videobuf2-v4l2.c | 3 ++ > >> include/media/v4l2-ioctl.h | 17 +++++++ > >> include/trace/events/v4l2.h | 1 + > >> include/uapi/linux/videodev2.h | 13 +++++ > >> 12 files changed, 168 insertions(+), 6 deletions(-) > >> create mode 100644 Documentation/media/uapi/v4l/dev-meta.rst > >> > >> diff --git a/Documentation/media/uapi/v4l/buffer.rst > >> b/Documentation/media/uapi/v4l/buffer.rst > >> index 5c58db98ab7a..02834ce7fa4d 100644 > >> --- a/Documentation/media/uapi/v4l/buffer.rst > >> +++ b/Documentation/media/uapi/v4l/buffer.rst > >> @@ -418,6 +418,9 @@ enum v4l2_buf_type > >> - 12 > >> - Buffer for Software Defined Radio (SDR) output stream, see > >> :ref:`sdr`. > >> + * - ``V4L2_BUF_TYPE_META_CAPTURE`` > >> + - 13 > >> + - Buffer for metadata capture, see :ref:`metadata`. > >> > >> > >> > >> diff --git a/Documentation/media/uapi/v4l/dev-meta.rst > >> b/Documentation/media/uapi/v4l/dev-meta.rst > >> new file mode 100644 > >> index 000000000000..b6044c54082a > >> --- /dev/null > >> +++ b/Documentation/media/uapi/v4l/dev-meta.rst > >> @@ -0,0 +1,62 @@ > >> +.. -*- coding: utf-8; mode: rst -*- > >> + > >> +.. _metadata: > >> + > >> +****************** > >> +Metadata Interface > >> +****************** > >> + > >> +Metadata refers to any non-image data that supplements video frames with > >> +additional information. This may include statistics computed over the > >> image > >> +or frame capture parameters supplied by the image source. This interface > >> is > >> +intended for transfer of metadata to userspace and control of that > >> operation. > >> + > >> +The metadata interface is implemented on video capture device nodes. The > >> device > >> +can be dedicated to metadata or can implement both video and metadata > >> capture > >> +as specified in its reported capabilities. > >> + > >> +.. note:: > >> + > >> + This is an :ref:`experimental` interface and may > >> + change in the future. > > > > While I'm ok with this comment, in practice, this comment is bogus. Once we > > merge it, it is unlikely that we'll be able to change it. > > > > That would just add a task on our TODO list that we'll need to remove this > > comment some day. > > I'll remove this. These notes were all removed some time ago. This patch was > most > likely made when these notes were still in use. > > > > >> + > >> +Querying Capabilities > >> +===================== > >> + > >> +Device nodes supporting the metadata interface set the > >> ``V4L2_CAP_META_CAPTURE`` > >> +flag in the ``device_caps`` field of the > >> +:c:type:`v4l2_capability` structure returned by the > >> :c:func:`VIDIOC_QUERYCAP` > >> +ioctl. That flag means the device can capture metadata to memory. > >> + > >> +At least one of the read/write or streaming I/O methods must be supported. > >> + > >> + > >> +Data Format Negotiation > >> +======================= > >> + > >> +The metadata device uses the :ref:`format` ioctls to select the capture > >> format. > >> +The metadata buffer content format is bound to that selected format. In > >> addition > >> +to the basic :ref:`format` ioctls, the :c:func:`VIDIOC_ENUM_FMT` ioctl > >> must be > >> +supported as well. > >> + > >> +To use the :ref:`format` ioctls applications set the ``type`` field of the > >> +:c:type:`v4l2_format` structure to ``V4L2_BUF_TYPE_META_CAPTURE`` and use > >> the > >> +:c:type:`v4l2_meta_format` ``meta`` member of the ``fmt`` union as needed > >> per > >> +the desired operation. Both drivers and applications must set the > >> remainder of > >> +the :c:type:`v4l2_format` structure to 0. > >> + > >> +.. _v4l2-meta-format: > > > > Better to add an space after the label. My experience with random versions > > of Sphinx is that it doesn't like to have different types of paragraph > > without at least one blank line between them. > > You mean 'Better to add a newline after the label'? It's a bit confusing. Yes, that's what I meant. > > Regards, > > Hans Thanks, Mauro