mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 22:14:04 +02:00
UPSTREAM: media: v4l: Add a UVC Metadata format
Add a pixel format, used by the UVC driver to stream metadata.
Conflicts:
Documentation/media/uapi/v4l/meta-formats.rst
drivers/media/v4l2-core/v4l2-ioctl.c
include/uapi/linux/videodev2.h
Change-Id: I979fd6b4d5d24510e47a1cfe525e8ae0a1a573ee
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(cherry picked from commit 563a01e101)
This commit is contained in:
parent
31a4fbf741
commit
8df73b298c
15
Documentation/media/uapi/v4l/meta-formats.rst
Normal file
15
Documentation/media/uapi/v4l/meta-formats.rst
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
.. -*- coding: utf-8; mode: rst -*-
|
||||
|
||||
.. _meta-formats:
|
||||
|
||||
****************
|
||||
Metadata Formats
|
||||
****************
|
||||
|
||||
These formats are used for the :ref:`metadata` interface only.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
pixfmt-meta-uvc
|
||||
51
Documentation/media/uapi/v4l/pixfmt-meta-uvc.rst
Normal file
51
Documentation/media/uapi/v4l/pixfmt-meta-uvc.rst
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
.. -*- coding: utf-8; mode: rst -*-
|
||||
|
||||
.. _v4l2-meta-fmt-uvc:
|
||||
|
||||
*******************************
|
||||
V4L2_META_FMT_UVC ('UVCH')
|
||||
*******************************
|
||||
|
||||
UVC Payload Header Data
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This format describes standard UVC metadata, extracted from UVC packet headers
|
||||
and provided by the UVC driver through metadata video nodes. That data includes
|
||||
exact copies of the standard part of UVC Payload Header contents and auxiliary
|
||||
timing information, required for precise interpretation of timestamps, contained
|
||||
in those headers. See section "2.4.3.3 Video and Still Image Payload Headers" of
|
||||
the "UVC 1.5 Class specification" for details.
|
||||
|
||||
Each UVC payload header can be between 2 and 12 bytes large. Buffers can
|
||||
contain multiple headers, if multiple such headers have been transmitted by the
|
||||
camera for the respective frame. However, the driver may drop headers when the
|
||||
buffer is full, when they contain no useful information (e.g. those without the
|
||||
SCR field or with that field identical to the previous header), or generally to
|
||||
perform rate limiting when the device sends a large number of headers.
|
||||
|
||||
Each individual block contains the following fields:
|
||||
|
||||
.. flat-table:: UVC Metadata Block
|
||||
:widths: 1 4
|
||||
:header-rows: 1
|
||||
:stub-columns: 0
|
||||
|
||||
* - Field
|
||||
- Description
|
||||
* - __u64 ts;
|
||||
- system timestamp in host byte order, measured by the driver upon
|
||||
reception of the payload
|
||||
* - __u16 sof;
|
||||
- USB Frame Number in host byte order, also obtained by the driver as
|
||||
close as possible to the above timestamp to enable correlation between
|
||||
them
|
||||
* - :cspan:`1` *The rest is an exact copy of the UVC payload header:*
|
||||
* - __u8 length;
|
||||
- length of the rest of the block, including this field
|
||||
* - __u8 flags;
|
||||
- Flags, indicating presence of other standard UVC fields
|
||||
* - __u8 buf[];
|
||||
- The rest of the header, possibly including UVC PTS and SCR fields
|
||||
|
|
@ -1259,6 +1259,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
|
|||
case V4L2_SDR_FMT_RU12LE: descr = "Real U12LE"; break;
|
||||
case V4L2_META_FMT_RK_ISP1_PARAMS: descr = "Rockchip ISP1 3A params"; break;
|
||||
case V4L2_META_FMT_RK_ISP1_STAT_3A: descr = "Rockchip ISP1 3A statistics"; break;
|
||||
case V4L2_META_FMT_UVC: descr = "UVC payload header metadata"; break;
|
||||
|
||||
default:
|
||||
/* Compressed formats */
|
||||
|
|
|
|||
|
|
@ -646,6 +646,9 @@ struct v4l2_pix_format {
|
|||
#define V4L2_META_FMT_RK_ISP1_PARAMS v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 params */
|
||||
#define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A statistics */
|
||||
|
||||
/* Meta-data formats */
|
||||
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
|
||||
|
||||
/* priv field value to indicates that subsequent fields are valid. */
|
||||
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user