diff --git a/Documentation/media/uapi/v4l/buffer.rst b/Documentation/media/uapi/v4l/buffer.rst index 21893ee1384a..ac58966ccb9b 100644 --- a/Documentation/media/uapi/v4l/buffer.rst +++ b/Documentation/media/uapi/v4l/buffer.rst @@ -48,236 +48,149 @@ struct v4l2_buffer :stub-columns: 0 :widths: 1 2 1 10 - - - .. row 1 - - - __u32 - - - ``index`` - - - - - Number of the buffer, set by the application except when calling - :ref:`VIDIOC_DQBUF `, then it is set by the - driver. This field can range from zero to the number of buffers - allocated with the :ref:`VIDIOC_REQBUFS` ioctl - (struct :c:type:`v4l2_requestbuffers` - ``count``), plus any buffers allocated with - :ref:`VIDIOC_CREATE_BUFS` minus one. - - - .. row 2 - - - __u32 - - - ``type`` - - - - - Type of the buffer, same as struct - :c:type:`v4l2_format` ``type`` or struct - :c:type:`v4l2_requestbuffers` ``type``, set - by the application. See :c:type:`v4l2_buf_type` - - - .. row 3 - - - __u32 - - - ``bytesused`` - - - - - The number of bytes occupied by the data in the buffer. It depends - on the negotiated data format and may change with each buffer for - compressed variable size data like JPEG images. Drivers must set - this field when ``type`` refers to a capture stream, applications - when it refers to an output stream. If the application sets this - to 0 for an output stream, then ``bytesused`` will be set to the - size of the buffer (see the ``length`` field of this struct) by - the driver. For multiplanar formats this field is ignored and the - ``planes`` pointer is used instead. - - - .. row 4 - - - __u32 - - - ``flags`` - - - - - Flags set by the application or driver, see :ref:`buffer-flags`. - - - .. row 5 - - - __u32 - - - ``field`` - - - - - Indicates the field order of the image in the buffer, see - :c:type:`v4l2_field`. This field is not used when the buffer - contains VBI data. Drivers must set it when ``type`` refers to a - capture stream, applications when it refers to an output stream. - - - .. row 6 - - - struct timeval - - - ``timestamp`` - - - - - For capture streams this is time when the first data byte was - captured, as returned by the :c:func:`clock_gettime()` function - for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in - :ref:`buffer-flags`. For output streams the driver stores the - time at which the last data byte was actually sent out in the - ``timestamp`` field. This permits applications to monitor the - drift between the video and system clock. For output streams that - 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. - - - .. row 7 - - - 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 - 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. - - - .. row 8 - - - __u32 - - - ``sequence`` - - - - - Set by the driver, counting the frames (not fields!) in sequence. - This field is set for both input and output devices. - - - .. row 9 - - - :cspan:`3` - - In :c:type:`V4L2_FIELD_ALTERNATE ` mode the top and - bottom field have the same sequence number. The count starts at - zero and includes dropped or repeated frames. A dropped frame was - received by an input device but could not be stored due to lack of - free buffer space. A repeated frame was displayed again by an - output device because the application did not pass new data in - time. - - .. note:: - - This may count the frames received e.g. over USB, without - taking into account the frames dropped by the remote hardware due - to limited compression throughput or bus bandwidth. These devices - identify by not enumerating any video standards, see - :ref:`standard`. - - - - .. row 10 - - - __u32 - - - ``memory`` - - - - - This field must be set by applications and/or drivers in - accordance with the selected I/O method. See :c:type:`v4l2_memory` - - - .. row 11 - - - union - - - ``m`` - - - .. row 12 - - - - - __u32 - - - ``offset`` - - - For the single-planar API and when ``memory`` is - ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the - start of the device memory. The value is returned by the driver - and apart of serving as parameter to the - :ref:`mmap() ` function not useful for applications. - See :ref:`mmap` for details - - - .. row 13 - - - - - unsigned long - - - ``userptr`` - - - For the single-planar API and when ``memory`` is - ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to - unsigned long type) in virtual memory, set by the application. See - :ref:`userp` for details. - - - .. row 14 - - - - - struct v4l2_plane - - - ``*planes`` - - - When using the multi-planar API, contains a userspace pointer to - an array of struct :c:type:`v4l2_plane`. The size of - the array should be put in the ``length`` field of this - struct :c:type:`v4l2_buffer` structure. - - - .. row 15 - - - - - int - - - ``fd`` - - - For the single-plane API and when ``memory`` is - ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with - a DMABUF buffer. - - - .. row 16 - - - __u32 - - - ``length`` - - - - - Size of the buffer (not the payload) in bytes for the - single-planar API. This is set by the driver based on the calls to - :ref:`VIDIOC_REQBUFS` and/or - :ref:`VIDIOC_CREATE_BUFS`. For the - multi-planar API the application sets this to the number of - elements in the ``planes`` array. The driver will fill in the - actual number of valid elements in that array. - - - .. row 17 - - - __u32 - - - ``reserved2`` - - - - - A place holder for future extensions. Drivers and applications - must set this to 0. - - - .. row 18 - - - __u32 - - - ``reserved`` - - - - - A place holder for future extensions. Drivers and applications - must set this to 0. + * - __u32 + - ``index`` + - + - Number of the buffer, set by the application except when calling + :ref:`VIDIOC_DQBUF `, then it is set by the + driver. This field can range from zero to the number of buffers + allocated with the :ref:`VIDIOC_REQBUFS` ioctl + (struct :c:type:`v4l2_requestbuffers` + ``count``), plus any buffers allocated with + :ref:`VIDIOC_CREATE_BUFS` minus one. + * - __u32 + - ``type`` + - + - Type of the buffer, same as struct + :c:type:`v4l2_format` ``type`` or struct + :c:type:`v4l2_requestbuffers` ``type``, set + by the application. See :c:type:`v4l2_buf_type` + * - __u32 + - ``bytesused`` + - + - The number of bytes occupied by the data in the buffer. It depends + on the negotiated data format and may change with each buffer for + compressed variable size data like JPEG images. Drivers must set + this field when ``type`` refers to a capture stream, applications + when it refers to an output stream. If the application sets this + to 0 for an output stream, then ``bytesused`` will be set to the + size of the buffer (see the ``length`` field of this struct) by + the driver. For multiplanar formats this field is ignored and the + ``planes`` pointer is used instead. + * - __u32 + - ``flags`` + - + - Flags set by the application or driver, see :ref:`buffer-flags`. + * - __u32 + - ``field`` + - + - Indicates the field order of the image in the buffer, see + :c:type:`v4l2_field`. This field is not used when the buffer + contains VBI data. Drivers must set it when ``type`` refers to a + capture stream, applications when it refers to an output stream. + * - struct timeval + - ``timestamp`` + - + - For capture streams this is time when the first data byte was + captured, as returned by the :c:func:`clock_gettime()` function + for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in + :ref:`buffer-flags`. For output streams the driver stores the + time at which the last data byte was actually sent out in the + ``timestamp`` field. This permits applications to monitor the + drift between the video and system clock. For output streams that + 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` + - ``timecode`` + - + - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and 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 + - ``sequence`` + - + - Set by the driver, counting the frames (not fields!) in sequence. + This field is set for both input and output devices. + * - :cspan:`3` + + In :c:type:`V4L2_FIELD_ALTERNATE ` mode the top and + bottom field have the same sequence number. The count starts at + zero and includes dropped or repeated frames. A dropped frame was + received by an input device but could not be stored due to lack of + free buffer space. A repeated frame was displayed again by an + output device because the application did not pass new data in + time. + + .. note:: + + This may count the frames received e.g. over USB, without + taking into account the frames dropped by the remote hardware due + to limited compression throughput or bus bandwidth. These devices + identify by not enumerating any video standards, see + :ref:`standard`. + + * - __u32 + - ``memory`` + - + - This field must be set by applications and/or drivers in + accordance with the selected I/O method. See :c:type:`v4l2_memory` + * - union + - ``m`` + * - + - __u32 + - ``offset`` + - For the single-planar API and when ``memory`` is + ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the + start of the device memory. The value is returned by the driver + and apart of serving as parameter to the + :ref:`mmap() ` function not useful for applications. + See :ref:`mmap` for details + * - + - unsigned long + - ``userptr`` + - For the single-planar API and when ``memory`` is + ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to + unsigned long type) in virtual memory, set by the application. See + :ref:`userp` for details. + * - + - struct v4l2_plane + - ``*planes`` + - When using the multi-planar API, contains a userspace pointer to + an array of struct :c:type:`v4l2_plane`. The size of + the array should be put in the ``length`` field of this + struct :c:type:`v4l2_buffer` structure. + * - + - int + - ``fd`` + - For the single-plane API and when ``memory`` is + ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with + a DMABUF buffer. + * - __u32 + - ``length`` + - + - Size of the buffer (not the payload) in bytes for the + single-planar API. This is set by the driver based on the calls to + :ref:`VIDIOC_REQBUFS` and/or + :ref:`VIDIOC_CREATE_BUFS`. For the + multi-planar API the application sets this to the number of + elements in the ``planes`` array. The driver will fill in the + actual number of valid elements in that array. + * - __u32 + - ``reserved2`` + - + - A place holder for future extensions. Drivers and applications + must set this to 0. + * - __u32 + - ``reserved`` + - + - A place holder for future extensions. Drivers and applications + must set this to 0. @@ -295,110 +208,70 @@ struct v4l2_plane :stub-columns: 0 :widths: 1 1 1 2 + * - __u32 + - ``bytesused`` + - + - The number of bytes occupied by data in the plane (its payload). + Drivers must set this field when ``type`` refers to a capture + stream, applications when it refers to an output stream. If the + application sets this to 0 for an output stream, then + ``bytesused`` will be set to the size of the plane (see the + ``length`` field of this struct) by the driver. - - .. row 1 + .. note:: - - __u32 + Note that the actual image data starts at ``data_offset`` + which may not be 0. + * - __u32 + - ``length`` + - + - Size in bytes of the plane (not its payload). This is set by the + driver based on the calls to + :ref:`VIDIOC_REQBUFS` and/or + :ref:`VIDIOC_CREATE_BUFS`. + * - union + - ``m`` + - + - + * - + - __u32 + - ``mem_offset`` + - When the memory type in the containing struct + :c:type:`v4l2_buffer` is ``V4L2_MEMORY_MMAP``, this + is the value that should be passed to :ref:`mmap() `, + similar to the ``offset`` field in struct + :c:type:`v4l2_buffer`. + * - + - unsigned long + - ``userptr`` + - When the memory type in the containing struct + :c:type:`v4l2_buffer` is ``V4L2_MEMORY_USERPTR``, + this is a userspace pointer to the memory allocated for this plane + by an application. + * - + - int + - ``fd`` + - When the memory type in the containing struct + :c:type:`v4l2_buffer` is ``V4L2_MEMORY_DMABUF``, + this is a file descriptor associated with a DMABUF buffer, similar + to the ``fd`` field in struct :c:type:`v4l2_buffer`. + * - __u32 + - ``data_offset`` + - + - Offset in bytes to video data in the plane. Drivers must set this + field when ``type`` refers to a capture stream, applications when + it refers to an output stream. - - ``bytesused`` + .. note:: - - - - The number of bytes occupied by data in the plane (its payload). - Drivers must set this field when ``type`` refers to a capture - stream, applications when it refers to an output stream. If the - application sets this to 0 for an output stream, then - ``bytesused`` will be set to the size of the plane (see the - ``length`` field of this struct) by the driver. - - .. note:: - - Note that the actual image data starts at ``data_offset`` - which may not be 0. - - - .. row 2 - - - __u32 - - - ``length`` - - - - - Size in bytes of the plane (not its payload). This is set by the - driver based on the calls to - :ref:`VIDIOC_REQBUFS` and/or - :ref:`VIDIOC_CREATE_BUFS`. - - - .. row 3 - - - union - - - ``m`` - - - - - - - - .. row 4 - - - - - __u32 - - - ``mem_offset`` - - - When the memory type in the containing struct - :c:type:`v4l2_buffer` is ``V4L2_MEMORY_MMAP``, this - is the value that should be passed to :ref:`mmap() `, - similar to the ``offset`` field in struct - :c:type:`v4l2_buffer`. - - - .. row 5 - - - - - unsigned long - - - ``userptr`` - - - When the memory type in the containing struct - :c:type:`v4l2_buffer` is ``V4L2_MEMORY_USERPTR``, - this is a userspace pointer to the memory allocated for this plane - by an application. - - - .. row 6 - - - - - int - - - ``fd`` - - - When the memory type in the containing struct - :c:type:`v4l2_buffer` is ``V4L2_MEMORY_DMABUF``, - this is a file descriptor associated with a DMABUF buffer, similar - to the ``fd`` field in struct :c:type:`v4l2_buffer`. - - - .. row 7 - - - __u32 - - - ``data_offset`` - - - - - Offset in bytes to video data in the plane. Drivers must set this - field when ``type`` refers to a capture stream, applications when - it refers to an output stream. - - .. note:: - - That data_offset is included in ``bytesused``. So the - size of the image in the plane is ``bytesused``-``data_offset`` - at offset ``data_offset`` from the start of the plane. - - - .. row 8 - - - __u32 - - - ``reserved[11]`` - - - - - Reserved for future use. Should be zeroed by drivers and - applications. + That data_offset is included in ``bytesused``. So the + size of the image in the plane is ``bytesused``-``data_offset`` + at offset ``data_offset`` from the start of the plane. + * - __u32 + - ``reserved[11]`` + - + - Reserved for future use. Should be zeroed by drivers and + applications. @@ -416,107 +289,47 @@ enum v4l2_buf_type :stub-columns: 0 :widths: 4 1 9 - - - .. row 1 - - - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` - - - 1 - - - Buffer of a single-planar video capture stream, see - :ref:`capture`. - - - .. row 2 - - - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` - - - 9 - - - Buffer of a multi-planar video capture stream, see - :ref:`capture`. - - - .. row 3 - - - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` - - - 2 - - - Buffer of a single-planar video output stream, see - :ref:`output`. - - - .. row 4 - - - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` - - - 10 - - - Buffer of a multi-planar video output stream, see :ref:`output`. - - - .. row 5 - - - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` - - - 3 - - - Buffer for video overlay, see :ref:`overlay`. - - - .. row 6 - - - ``V4L2_BUF_TYPE_VBI_CAPTURE`` - - - 4 - - - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`. - - - .. row 7 - - - ``V4L2_BUF_TYPE_VBI_OUTPUT`` - - - 5 - - - Buffer of a raw VBI output stream, see :ref:`raw-vbi`. - - - .. row 8 - - - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` - - - 6 - - - Buffer of a sliced VBI capture stream, see :ref:`sliced`. - - - .. row 9 - - - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` - - - 7 - - - Buffer of a sliced VBI output stream, see :ref:`sliced`. - - - .. row 10 - - - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` - - - 8 - - - Buffer for video output overlay (OSD), see :ref:`osd`. - - - .. row 11 - - - ``V4L2_BUF_TYPE_SDR_CAPTURE`` - - - 11 - - - Buffer for Software Defined Radio (SDR) capture stream, see - :ref:`sdr`. - - - .. row 12 - - - ``V4L2_BUF_TYPE_SDR_OUTPUT`` - - - 12 - - - Buffer for Software Defined Radio (SDR) output stream, see - :ref:`sdr`. + * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` + - 1 + - Buffer of a single-planar video capture stream, see + :ref:`capture`. + * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` + - 9 + - Buffer of a multi-planar video capture stream, see + :ref:`capture`. + * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` + - 2 + - Buffer of a single-planar video output stream, see + :ref:`output`. + * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` + - 10 + - Buffer of a multi-planar video output stream, see :ref:`output`. + * - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` + - 3 + - Buffer for video overlay, see :ref:`overlay`. + * - ``V4L2_BUF_TYPE_VBI_CAPTURE`` + - 4 + - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`. + * - ``V4L2_BUF_TYPE_VBI_OUTPUT`` + - 5 + - Buffer of a raw VBI output stream, see :ref:`raw-vbi`. + * - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` + - 6 + - Buffer of a sliced VBI capture stream, see :ref:`sliced`. + * - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` + - 7 + - Buffer of a sliced VBI output stream, see :ref:`sliced`. + * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` + - 8 + - Buffer for video output overlay (OSD), see :ref:`osd`. + * - ``V4L2_BUF_TYPE_SDR_CAPTURE`` + - 11 + - Buffer for Software Defined Radio (SDR) capture stream, see + :ref:`sdr`. + * - ``V4L2_BUF_TYPE_SDR_OUTPUT`` + - 12 + - Buffer for Software Defined Radio (SDR) output stream, see + :ref:`sdr`. @@ -534,242 +347,185 @@ Buffer Flags :stub-columns: 0 :widths: 3 1 4 - - - .. _`V4L2-BUF-FLAG-MAPPED`: - - - ``V4L2_BUF_FLAG_MAPPED`` - - - 0x00000001 - - - The buffer resides in device memory and has been mapped into the - application's address space, see :ref:`mmap` for details. - Drivers set or clear this flag when the - :ref:`VIDIOC_QUERYBUF`, - :ref:`VIDIOC_QBUF` or - :ref:`VIDIOC_DQBUF ` ioctl is called. Set by the - driver. - - - .. _`V4L2-BUF-FLAG-QUEUED`: - - - ``V4L2_BUF_FLAG_QUEUED`` - - - 0x00000002 - - - Internally drivers maintain two buffer queues, an incoming and - outgoing queue. When this flag is set, the buffer is currently on - the incoming queue. It automatically moves to the outgoing queue - after the buffer has been filled (capture devices) or displayed - (output devices). Drivers set or clear this flag when the - ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling - the ``VIDIOC_QBUF``\ ioctl it is always set and after - ``VIDIOC_DQBUF`` always cleared. - - - .. _`V4L2-BUF-FLAG-DONE`: - - - ``V4L2_BUF_FLAG_DONE`` - - - 0x00000004 - - - When this flag is set, the buffer is currently on the outgoing - queue, ready to be dequeued from the driver. Drivers set or clear - this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After - calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always - cleared. Of course a buffer cannot be on both queues at the same - time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag - are mutually exclusive. They can be both cleared however, then the - buffer is in "dequeued" state, in the application domain so to - say. - - - .. _`V4L2-BUF-FLAG-ERROR`: - - - ``V4L2_BUF_FLAG_ERROR`` - - - 0x00000040 - - - When this flag is set, the buffer has been dequeued successfully, - although the data might have been corrupted. This is recoverable, - streaming may continue as normal and the buffer may be reused - normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is - called. - - - .. _`V4L2-BUF-FLAG-KEYFRAME`: - - - ``V4L2_BUF_FLAG_KEYFRAME`` - - - 0x00000008 - - - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF`` - ioctl. It may be set by video capture devices when the buffer - contains a compressed image which is a key frame (or field), i. e. - can be decompressed on its own. Also known as an I-frame. - Applications can set this bit when ``type`` refers to an output - stream. - - - .. _`V4L2-BUF-FLAG-PFRAME`: - - - ``V4L2_BUF_FLAG_PFRAME`` - - - 0x00000010 - - - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames - or fields which contain only differences to a previous key frame. - Applications can set this bit when ``type`` refers to an output - stream. - - - .. _`V4L2-BUF-FLAG-BFRAME`: - - - ``V4L2_BUF_FLAG_BFRAME`` - - - 0x00000020 - - - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional - predicted frame or field which contains only the differences - between the current frame and both the preceding and following key - frames to specify its content. Applications can set this bit when - ``type`` refers to an output stream. - - - .. _`V4L2-BUF-FLAG-TIMECODE`: - - - ``V4L2_BUF_FLAG_TIMECODE`` - - - 0x00000100 - - - The ``timecode`` field is valid. Drivers set or clear this flag - 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-PREPARED`: - - - ``V4L2_BUF_FLAG_PREPARED`` - - - 0x00000400 - - - The buffer has been prepared for I/O and can be queued by the - application. Drivers set or clear this flag when the - :ref:`VIDIOC_QUERYBUF`, - :ref:`VIDIOC_PREPARE_BUF `, - :ref:`VIDIOC_QBUF` or - :ref:`VIDIOC_DQBUF ` ioctl is called. - - - .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`: - - - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE`` - - - 0x00000800 - - - Caches do not have to be invalidated for this buffer. Typically - applications shall use this flag if the data captured in the - buffer is not going to be touched by the CPU, instead the buffer - will, probably, be passed on to a DMA-capable hardware unit for - further processing or output. - - - .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`: - - - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN`` - - - 0x00001000 - - - Caches do not have to be cleaned for this buffer. Typically - applications shall use this flag for output buffers if the data 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`: - - - ``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 - :ref:`VIDIOC_QUERYBUF` or - :ref:`VIDIOC_DQBUF ` ioctl is called. Due to - hardware limitations, the last buffer may be empty. In this case - the driver will set the ``bytesused`` field to 0, regardless of - the format. Any Any subsequent call to the - :ref:`VIDIOC_DQBUF ` ioctl will not block anymore, - but return an ``EPIPE`` error code. - - - .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`: - - - ``V4L2_BUF_FLAG_TIMESTAMP_MASK`` - - - 0x0000e000 - - - Mask for timestamp types below. To test the timestamp type, mask - out bits not belonging to timestamp type by performing a logical - and operation with buffer flags and timestamp mask. - - - .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`: - - - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN`` - - - 0x00000000 - - - Unknown timestamp type. This type is used by drivers before Linux - 3.9 and may be either monotonic (see below) or realtime (wall - clock). Monotonic clock has been favoured in embedded systems - whereas most of the drivers use the realtime clock. Either kinds - of timestamps are available in user space via - :c:func:`clock_gettime` using clock IDs ``CLOCK_MONOTONIC`` - and ``CLOCK_REALTIME``, respectively. - - - .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`: - - - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC`` - - - 0x00002000 - - - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC`` - clock. To access the same clock outside V4L2, use - :c:func:`clock_gettime`. - - - .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`: - - - ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` - - - 0x00004000 - - - The CAPTURE buffer timestamp has been taken from the corresponding - OUTPUT buffer. This flag applies only to mem2mem devices. - - - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`: - - - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` - - - 0x00070000 - - - Mask for timestamp sources below. The timestamp source defines the - point of time the timestamp is taken in relation to the frame. - Logical 'and' operation between the ``flags`` field and - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the - timestamp source. Applications must set the timestamp source when - ``type`` refers to an output stream and - ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set. - - - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`: - - - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF`` - - - 0x00000000 - - - End Of Frame. The buffer timestamp has been taken when the last - pixel of the frame has been received or the last pixel of the - frame has been transmitted. In practice, software generated - timestamps will typically be read from the clock a small amount of - time after the last pixel has been received or transmitten, - depending on the system and other activity in it. - - - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`: - - - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE`` - - - 0x00010000 - - - Start Of Exposure. The buffer timestamp has been taken when the - exposure of the frame has begun. This is only valid for the - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type. + * .. _`V4L2-BUF-FLAG-MAPPED`: + + - ``V4L2_BUF_FLAG_MAPPED`` + - 0x00000001 + - The buffer resides in device memory and has been mapped into the + application's address space, see :ref:`mmap` for details. + Drivers set or clear this flag when the + :ref:`VIDIOC_QUERYBUF`, + :ref:`VIDIOC_QBUF` or + :ref:`VIDIOC_DQBUF ` ioctl is called. Set by the + driver. + * .. _`V4L2-BUF-FLAG-QUEUED`: + + - ``V4L2_BUF_FLAG_QUEUED`` + - 0x00000002 + - Internally drivers maintain two buffer queues, an incoming and + outgoing queue. When this flag is set, the buffer is currently on + the incoming queue. It automatically moves to the outgoing queue + after the buffer has been filled (capture devices) or displayed + (output devices). Drivers set or clear this flag when the + ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling + the ``VIDIOC_QBUF``\ ioctl it is always set and after + ``VIDIOC_DQBUF`` always cleared. + * .. _`V4L2-BUF-FLAG-DONE`: + + - ``V4L2_BUF_FLAG_DONE`` + - 0x00000004 + - When this flag is set, the buffer is currently on the outgoing + queue, ready to be dequeued from the driver. Drivers set or clear + this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After + calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always + cleared. Of course a buffer cannot be on both queues at the same + time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag + are mutually exclusive. They can be both cleared however, then the + buffer is in "dequeued" state, in the application domain so to + say. + * .. _`V4L2-BUF-FLAG-ERROR`: + + - ``V4L2_BUF_FLAG_ERROR`` + - 0x00000040 + - When this flag is set, the buffer has been dequeued successfully, + although the data might have been corrupted. This is recoverable, + streaming may continue as normal and the buffer may be reused + normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is + called. + * .. _`V4L2-BUF-FLAG-KEYFRAME`: + + - ``V4L2_BUF_FLAG_KEYFRAME`` + - 0x00000008 + - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF`` + ioctl. It may be set by video capture devices when the buffer + contains a compressed image which is a key frame (or field), i. e. + can be decompressed on its own. Also known as an I-frame. + Applications can set this bit when ``type`` refers to an output + stream. + * .. _`V4L2-BUF-FLAG-PFRAME`: + + - ``V4L2_BUF_FLAG_PFRAME`` + - 0x00000010 + - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames + or fields which contain only differences to a previous key frame. + Applications can set this bit when ``type`` refers to an output + stream. + * .. _`V4L2-BUF-FLAG-BFRAME`: + + - ``V4L2_BUF_FLAG_BFRAME`` + - 0x00000020 + - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional + predicted frame or field which contains only the differences + between the current frame and both the preceding and following key + frames to specify its content. Applications can set this bit when + ``type`` refers to an output stream. + * .. _`V4L2-BUF-FLAG-TIMECODE`: + + - ``V4L2_BUF_FLAG_TIMECODE`` + - 0x00000100 + - The ``timecode`` field is valid. Drivers set or clear this flag + 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-PREPARED`: + + - ``V4L2_BUF_FLAG_PREPARED`` + - 0x00000400 + - The buffer has been prepared for I/O and can be queued by the + application. Drivers set or clear this flag when the + :ref:`VIDIOC_QUERYBUF`, + :ref:`VIDIOC_PREPARE_BUF `, + :ref:`VIDIOC_QBUF` or + :ref:`VIDIOC_DQBUF ` ioctl is called. + * .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`: + + - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE`` + - 0x00000800 + - Caches do not have to be invalidated for this buffer. Typically + applications shall use this flag if the data captured in the + buffer is not going to be touched by the CPU, instead the buffer + will, probably, be passed on to a DMA-capable hardware unit for + further processing or output. + * .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`: + + - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN`` + - 0x00001000 + - Caches do not have to be cleaned for this buffer. Typically + applications shall use this flag for output buffers if the data 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`: + + - ``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 + :ref:`VIDIOC_QUERYBUF` or + :ref:`VIDIOC_DQBUF ` ioctl is called. Due to + hardware limitations, the last buffer may be empty. In this case + the driver will set the ``bytesused`` field to 0, regardless of + the format. Any Any subsequent call to the + :ref:`VIDIOC_DQBUF ` ioctl will not block anymore, + but return an ``EPIPE`` error code. + * .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`: + + - ``V4L2_BUF_FLAG_TIMESTAMP_MASK`` + - 0x0000e000 + - Mask for timestamp types below. To test the timestamp type, mask + out bits not belonging to timestamp type by performing a logical + and operation with buffer flags and timestamp mask. + * .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`: + + - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN`` + - 0x00000000 + - Unknown timestamp type. This type is used by drivers before Linux + 3.9 and may be either monotonic (see below) or realtime (wall + clock). Monotonic clock has been favoured in embedded systems + whereas most of the drivers use the realtime clock. Either kinds + of timestamps are available in user space via + :c:func:`clock_gettime` using clock IDs ``CLOCK_MONOTONIC`` + and ``CLOCK_REALTIME``, respectively. + * .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`: + + - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC`` + - 0x00002000 + - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC`` + clock. To access the same clock outside V4L2, use + :c:func:`clock_gettime`. + * .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`: + + - ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` + - 0x00004000 + - The CAPTURE buffer timestamp has been taken from the corresponding + OUTPUT buffer. This flag applies only to mem2mem devices. + * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`: + + - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` + - 0x00070000 + - Mask for timestamp sources below. The timestamp source defines the + point of time the timestamp is taken in relation to the frame. + Logical 'and' operation between the ``flags`` field and + ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the + timestamp source. Applications must set the timestamp source when + ``type`` refers to an output stream and + ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set. + * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`: + + - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF`` + - 0x00000000 + - End Of Frame. The buffer timestamp has been taken when the last + pixel of the frame has been received or the last pixel of the + frame has been transmitted. In practice, software generated + timestamps will typically be read from the clock a small amount of + time after the last pixel has been received or transmitten, + depending on the system and other activity in it. + * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`: + + - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE`` + - 0x00010000 + - Start Of Exposure. The buffer timestamp has been taken when the + exposure of the frame has begun. This is only valid for the + ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type. @@ -785,38 +541,18 @@ enum v4l2_memory :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_MEMORY_MMAP`` - - - 1 - - - The buffer is used for :ref:`memory mapping ` I/O. - - - .. row 2 - - - ``V4L2_MEMORY_USERPTR`` - - - 2 - - - The buffer is used for :ref:`user pointer ` I/O. - - - .. row 3 - - - ``V4L2_MEMORY_OVERLAY`` - - - 3 - - - [to do] - - - .. row 4 - - - ``V4L2_MEMORY_DMABUF`` - - - 4 - - - The buffer is used for :ref:`DMA shared buffer ` I/O. + * - ``V4L2_MEMORY_MMAP`` + - 1 + - The buffer is used for :ref:`memory mapping ` I/O. + * - ``V4L2_MEMORY_USERPTR`` + - 2 + - The buffer is used for :ref:`user pointer ` I/O. + * - ``V4L2_MEMORY_OVERLAY`` + - 3 + - [to do] + * - ``V4L2_MEMORY_DMABUF`` + - 4 + - The buffer is used for :ref:`DMA shared buffer ` I/O. @@ -841,63 +577,28 @@ struct v4l2_timecode :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - Frame rate the timecodes are based on, see :ref:`timecode-type`. - - - .. row 2 - - - __u32 - - - ``flags`` - - - Timecode flags, see :ref:`timecode-flags`. - - - .. row 3 - - - __u8 - - - ``frames`` - - - Frame count, 0 ... 23/24/29/49/59, depending on the type of - timecode. - - - .. row 4 - - - __u8 - - - ``seconds`` - - - Seconds count, 0 ... 59. This is a binary, not BCD number. - - - .. row 5 - - - __u8 - - - ``minutes`` - - - Minutes count, 0 ... 59. This is a binary, not BCD number. - - - .. row 6 - - - __u8 - - - ``hours`` - - - Hours count, 0 ... 29. This is a binary, not BCD number. - - - .. row 7 - - - __u8 - - - ``userbits``\ [4] - - - The "user group" bits from the timecode. + * - __u32 + - ``type`` + - Frame rate the timecodes are based on, see :ref:`timecode-type`. + * - __u32 + - ``flags`` + - Timecode flags, see :ref:`timecode-flags`. + * - __u8 + - ``frames`` + - Frame count, 0 ... 23/24/29/49/59, depending on the type of + timecode. + * - __u8 + - ``seconds`` + - Seconds count, 0 ... 59. This is a binary, not BCD number. + * - __u8 + - ``minutes`` + - Minutes count, 0 ... 59. This is a binary, not BCD number. + * - __u8 + - ``hours`` + - Hours count, 0 ... 29. This is a binary, not BCD number. + * - __u8 + - ``userbits``\ [4] + - The "user group" bits from the timecode. @@ -913,46 +614,21 @@ Timecode Types :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_TC_TYPE_24FPS`` - - - 1 - - - 24 frames per second, i. e. film. - - - .. row 2 - - - ``V4L2_TC_TYPE_25FPS`` - - - 2 - - - 25 frames per second, i. e. PAL or SECAM video. - - - .. row 3 - - - ``V4L2_TC_TYPE_30FPS`` - - - 3 - - - 30 frames per second, i. e. NTSC video. - - - .. row 4 - - - ``V4L2_TC_TYPE_50FPS`` - - - 4 - - - - - - .. row 5 - - - ``V4L2_TC_TYPE_60FPS`` - - - 5 - - - + * - ``V4L2_TC_TYPE_24FPS`` + - 1 + - 24 frames per second, i. e. film. + * - ``V4L2_TC_TYPE_25FPS`` + - 2 + - 25 frames per second, i. e. PAL or SECAM video. + * - ``V4L2_TC_TYPE_30FPS`` + - 3 + - 30 frames per second, i. e. NTSC video. + * - ``V4L2_TC_TYPE_50FPS`` + - 4 + - + * - ``V4L2_TC_TYPE_60FPS`` + - 5 + - @@ -968,46 +644,21 @@ Timecode Flags :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_TC_FLAG_DROPFRAME`` - - - 0x0001 - - - Indicates "drop frame" semantics for counting frames in 29.97 fps - material. When set, frame numbers 0 and 1 at the start of each - minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the - count. - - - .. row 2 - - - ``V4L2_TC_FLAG_COLORFRAME`` - - - 0x0002 - - - The "color frame" flag. - - - .. row 3 - - - ``V4L2_TC_USERBITS_field`` - - - 0x000C - - - Field mask for the "binary group flags". - - - .. row 4 - - - ``V4L2_TC_USERBITS_USERDEFINED`` - - - 0x0000 - - - Unspecified format. - - - .. row 5 - - - ``V4L2_TC_USERBITS_8BITCHARS`` - - - 0x0008 - - - 8-bit ISO characters. + * - ``V4L2_TC_FLAG_DROPFRAME`` + - 0x0001 + - Indicates "drop frame" semantics for counting frames in 29.97 fps + material. When set, frame numbers 0 and 1 at the start of each + minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the + count. + * - ``V4L2_TC_FLAG_COLORFRAME`` + - 0x0002 + - The "color frame" flag. + * - ``V4L2_TC_USERBITS_field`` + - 0x000C + - Field mask for the "binary group flags". + * - ``V4L2_TC_USERBITS_USERDEFINED`` + - 0x0000 + - Unspecified format. + * - ``V4L2_TC_USERBITS_8BITCHARS`` + - 0x0008 + - 8-bit ISO characters. diff --git a/Documentation/media/uapi/v4l/control.rst b/Documentation/media/uapi/v4l/control.rst index e881cd1f30d6..d3f1450c4b08 100644 --- a/Documentation/media/uapi/v4l/control.rst +++ b/Documentation/media/uapi/v4l/control.rst @@ -198,104 +198,41 @@ Control IDs :stub-columns: 0 :widths: 11 24 - - .. row 1 - - - ``V4L2_COLORFX_NONE`` - - - Color effect is disabled. - - - .. row 2 - - - ``V4L2_COLORFX_ANTIQUE`` - - - An aging (old photo) effect. - - - .. row 3 - - - ``V4L2_COLORFX_ART_FREEZE`` - - - Frost color effect. - - - .. row 4 - - - ``V4L2_COLORFX_AQUA`` - - - Water color, cool tone. - - - .. row 5 - - - ``V4L2_COLORFX_BW`` - - - Black and white. - - - .. row 6 - - - ``V4L2_COLORFX_EMBOSS`` - - - Emboss, the highlights and shadows replace light/dark boundaries - and low contrast areas are set to a gray background. - - - .. row 7 - - - ``V4L2_COLORFX_GRASS_GREEN`` - - - Grass green. - - - .. row 8 - - - ``V4L2_COLORFX_NEGATIVE`` - - - Negative. - - - .. row 9 - - - ``V4L2_COLORFX_SEPIA`` - - - Sepia tone. - - - .. row 10 - - - ``V4L2_COLORFX_SKETCH`` - - - Sketch. - - - .. row 11 - - - ``V4L2_COLORFX_SKIN_WHITEN`` - - - Skin whiten. - - - .. row 12 - - - ``V4L2_COLORFX_SKY_BLUE`` - - - Sky blue. - - - .. row 13 - - - ``V4L2_COLORFX_SOLARIZATION`` - - - Solarization, the image is partially reversed in tone, only color - values above or below a certain threshold are inverted. - - - .. row 14 - - - ``V4L2_COLORFX_SILHOUETTE`` - - - Silhouette (outline). - - - .. row 15 - - - ``V4L2_COLORFX_VIVID`` - - - Vivid colors. - - - .. row 16 - - - ``V4L2_COLORFX_SET_CBCR`` - - - The Cb and Cr chroma components are replaced by fixed coefficients - determined by ``V4L2_CID_COLORFX_CBCR`` control. + * - ``V4L2_COLORFX_NONE`` + - Color effect is disabled. + * - ``V4L2_COLORFX_ANTIQUE`` + - An aging (old photo) effect. + * - ``V4L2_COLORFX_ART_FREEZE`` + - Frost color effect. + * - ``V4L2_COLORFX_AQUA`` + - Water color, cool tone. + * - ``V4L2_COLORFX_BW`` + - Black and white. + * - ``V4L2_COLORFX_EMBOSS`` + - Emboss, the highlights and shadows replace light/dark boundaries + and low contrast areas are set to a gray background. + * - ``V4L2_COLORFX_GRASS_GREEN`` + - Grass green. + * - ``V4L2_COLORFX_NEGATIVE`` + - Negative. + * - ``V4L2_COLORFX_SEPIA`` + - Sepia tone. + * - ``V4L2_COLORFX_SKETCH`` + - Sketch. + * - ``V4L2_COLORFX_SKIN_WHITEN`` + - Skin whiten. + * - ``V4L2_COLORFX_SKY_BLUE`` + - Sky blue. + * - ``V4L2_COLORFX_SOLARIZATION`` + - Solarization, the image is partially reversed in tone, only color + values above or below a certain threshold are inverted. + * - ``V4L2_COLORFX_SILHOUETTE`` + - Silhouette (outline). + * - ``V4L2_COLORFX_VIVID`` + - Vivid colors. + * - ``V4L2_COLORFX_SET_CBCR`` + - The Cb and Cr chroma components are replaced by fixed coefficients + determined by ``V4L2_CID_COLORFX_CBCR`` control. diff --git a/Documentation/media/uapi/v4l/dev-raw-vbi.rst b/Documentation/media/uapi/v4l/dev-raw-vbi.rst index 26ec24a94103..b82d837e4ff1 100644 --- a/Documentation/media/uapi/v4l/dev-raw-vbi.rst +++ b/Documentation/media/uapi/v4l/dev-raw-vbi.rst @@ -110,120 +110,77 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT ` does :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``sampling_rate`` + - Samples per second, i. e. unit 1 Hz. + * - __u32 + - ``offset`` + - Horizontal offset of the VBI image, relative to the leading edge + of the line synchronization pulse and counted in samples: The + first sample in the VBI image will be located ``offset`` / + ``sampling_rate`` seconds following the leading edge. See also + :ref:`vbi-hsync`. + * - __u32 + - ``samples_per_line`` + - + * - __u32 + - ``sample_format`` + - Defines the sample format as in :ref:`pixfmt`, a + four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``, + i. e. each sample consists of 8 bits with lower values oriented + towards the black level. Do not assume any other correlation of + values with the signal level. For example, the MSB does not + necessarily indicate if the signal is 'high' or 'low' because 128 + may not be the mean value of the signal. Drivers shall not convert + the sample format by software. + * - __u32 + - ``start``\ [#f2]_ + - This is the scanning system line number associated with the first + line of the VBI image, of the first and the second field + respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid + values. The ``V4L2_VBI_ITU_525_F1_START``, + ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and + ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers + for each field for each 525 or 625 line format as a convenience. + Don't forget that ITU line numbering starts at 1, not 0. VBI input + drivers can return start values 0 if the hardware cannot reliable + identify scanning lines, VBI acquisition may not require this + information. + * - __u32 + - ``count``\ [#f2]_ + - The number of lines in the first and second field image, + respectively. + * - :cspan:`2` - - .. row 1 + Drivers should be as flexibility as possible. For example, it may + be possible to extend or move the VBI capture window down to the + picture area, implementing a 'full field mode' to capture data + service transmissions embedded in the picture. - - __u32 + An application can set the first or second ``count`` value to zero + if no data is required from the respective field; ``count``\ [1] + if the scanning system is progressive, i. e. not interlaced. The + corresponding start value shall be ignored by the application and + driver. Anyway, drivers may not support single field capturing and + return both count values non-zero. - - ``sampling_rate`` + Both ``count`` values set to zero, or line numbers are outside the + bounds depicted\ [#f4]_, or a field image covering lines of two + fields, are invalid and shall not be returned by the driver. - - Samples per second, i. e. unit 1 Hz. - - - .. row 2 - - - __u32 - - - ``offset`` - - - Horizontal offset of the VBI image, relative to the leading edge - of the line synchronization pulse and counted in samples: The - first sample in the VBI image will be located ``offset`` / - ``sampling_rate`` seconds following the leading edge. See also - :ref:`vbi-hsync`. - - - .. row 3 - - - __u32 - - - ``samples_per_line`` - - - - - - .. row 4 - - - __u32 - - - ``sample_format`` - - - Defines the sample format as in :ref:`pixfmt`, a - four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``, - i. e. each sample consists of 8 bits with lower values oriented - towards the black level. Do not assume any other correlation of - values with the signal level. For example, the MSB does not - necessarily indicate if the signal is 'high' or 'low' because 128 - may not be the mean value of the signal. Drivers shall not convert - the sample format by software. - - - .. row 5 - - - __u32 - - - ``start``\ [#f2]_ - - - This is the scanning system line number associated with the first - line of the VBI image, of the first and the second field - respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid - values. The ``V4L2_VBI_ITU_525_F1_START``, - ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and - ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers - for each field for each 525 or 625 line format as a convenience. - Don't forget that ITU line numbering starts at 1, not 0. VBI input - drivers can return start values 0 if the hardware cannot reliable - identify scanning lines, VBI acquisition may not require this - information. - - - .. row 6 - - - __u32 - - - ``count``\ [#f2]_ - - - The number of lines in the first and second field image, - respectively. - - - .. row 7 - - - :cspan:`2` - - Drivers should be as flexibility as possible. For example, it may - be possible to extend or move the VBI capture window down to the - picture area, implementing a 'full field mode' to capture data - service transmissions embedded in the picture. - - An application can set the first or second ``count`` value to zero - if no data is required from the respective field; ``count``\ [1] - if the scanning system is progressive, i. e. not interlaced. The - corresponding start value shall be ignored by the application and - driver. Anyway, drivers may not support single field capturing and - return both count values non-zero. - - Both ``count`` values set to zero, or line numbers are outside the - bounds depicted\ [#f4]_, or a field image covering lines of two - fields, are invalid and shall not be returned by the driver. - - To initialize the ``start`` and ``count`` fields, applications - must first determine the current video standard selection. The - :ref:`v4l2_std_id ` or the ``framelines`` field - of struct :c:type:`v4l2_standard` can be evaluated - for this purpose. - - - .. row 8 - - - __u32 - - - ``flags`` - - - See :ref:`vbifmt-flags` below. Currently only drivers set flags, - applications must set this field to zero. - - - .. row 9 - - - __u32 - - - ``reserved``\ [#f2]_ - - - This array is reserved for future extensions. Drivers and - applications must set it to zero. + To initialize the ``start`` and ``count`` fields, applications + must first determine the current video standard selection. The + :ref:`v4l2_std_id ` or the ``framelines`` field + of struct :c:type:`v4l2_standard` can be evaluated + for this purpose. + * - __u32 + - ``flags`` + - See :ref:`vbifmt-flags` below. Currently only drivers set flags, + applications must set this field to zero. + * - __u32 + - ``reserved``\ [#f2]_ + - This array is reserved for future extensions. Drivers and + applications must set it to zero. .. tabularcolumns:: |p{4.0cm}|p{1.5cm}|p{12.0cm}| @@ -235,40 +192,30 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT ` does :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_VBI_UNSYNC`` - - - 0x0001 - - - This flag indicates hardware which does not properly distinguish - between fields. Normally the VBI image stores the first field - (lower scanning line numbers) first in memory. This may be a top - or bottom field depending on the video standard. When this flag is - set the first or second field may be stored first, however the - fields are still in correct temporal order with the older field - first in memory. [#f3]_ - - - .. row 2 - - - ``V4L2_VBI_INTERLACED`` - - - 0x0002 - - - By default the two field images will be passed sequentially; all - lines of the first field followed by all lines of the second field - (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and - ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in - memory depends on the video standard). When this flag is set, the - two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The - first line of the first field followed by the first line of the - second field, then the two second lines, and so on. Such a layout - may be necessary when the hardware has been programmed to capture - or output interlaced video images and is unable to separate the - fields for VBI capturing at the same time. For simplicity setting - this flag implies that both ``count`` values are equal and - non-zero. + * - ``V4L2_VBI_UNSYNC`` + - 0x0001 + - This flag indicates hardware which does not properly distinguish + between fields. Normally the VBI image stores the first field + (lower scanning line numbers) first in memory. This may be a top + or bottom field depending on the video standard. When this flag is + set the first or second field may be stored first, however the + fields are still in correct temporal order with the older field + first in memory. [#f3]_ + * - ``V4L2_VBI_INTERLACED`` + - 0x0002 + - By default the two field images will be passed sequentially; all + lines of the first field followed by all lines of the second field + (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and + ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in + memory depends on the video standard). When this flag is set, the + two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The + first line of the first field followed by the first line of the + second field, then the two second lines, and so on. Such a layout + may be necessary when the hardware has been programmed to capture + or output interlaced video images and is unable to separate the + fields for VBI capturing at the same time. For simplicity setting + this flag implies that both ``count`` values are equal and + non-zero. diff --git a/Documentation/media/uapi/v4l/dev-rds.rst b/Documentation/media/uapi/v4l/dev-rds.rst index 4a8e1d2efd06..9c4e39dd66bd 100644 --- a/Documentation/media/uapi/v4l/dev-rds.rst +++ b/Documentation/media/uapi/v4l/dev-rds.rst @@ -102,30 +102,15 @@ RDS datastructures :stub-columns: 0 :widths: 1 1 5 - - - .. row 1 - - - __u8 - - - ``lsb`` - - - Least Significant Byte of RDS Block - - - .. row 2 - - - __u8 - - - ``msb`` - - - Most Significant Byte of RDS Block - - - .. row 3 - - - __u8 - - - ``block`` - - - Block description + * - __u8 + - ``lsb`` + - Least Significant Byte of RDS Block + * - __u8 + - ``msb`` + - Most Significant Byte of RDS Block + * - __u8 + - ``block`` + - Block description @@ -138,33 +123,17 @@ RDS datastructures :stub-columns: 0 :widths: 1 5 - - - .. row 1 - - - Bits 0-2 - - - Block (aka offset) of the received data. - - - .. row 2 - - - Bits 3-5 - - - Deprecated. Currently identical to bits 0-2. Do not use these - bits. - - - .. row 3 - - - Bit 6 - - - Corrected bit. Indicates that an error was corrected for this data - block. - - - .. row 4 - - - Bit 7 - - - Error bit. Indicates that an uncorrectable error occurred during - reception of this block. + * - Bits 0-2 + - Block (aka offset) of the received data. + * - Bits 3-5 + - Deprecated. Currently identical to bits 0-2. Do not use these + bits. + * - Bit 6 + - Corrected bit. Indicates that an error was corrected for this data + block. + * - Bit 7 + - Error bit. Indicates that an uncorrectable error occurred during + reception of this block. @@ -177,87 +146,39 @@ RDS datastructures :stub-columns: 0 :widths: 1 1 1 5 - - - .. row 1 - - - V4L2_RDS_BLOCK_MSK - - - - - 7 - - - Mask for bits 0-2 to get the block ID. - - - .. row 2 - - - V4L2_RDS_BLOCK_A - - - - - 0 - - - Block A. - - - .. row 3 - - - V4L2_RDS_BLOCK_B - - - - - 1 - - - Block B. - - - .. row 4 - - - V4L2_RDS_BLOCK_C - - - - - 2 - - - Block C. - - - .. row 5 - - - V4L2_RDS_BLOCK_D - - - - - 3 - - - Block D. - - - .. row 6 - - - V4L2_RDS_BLOCK_C_ALT - - - - - 4 - - - Block C'. - - - .. row 7 - - - V4L2_RDS_BLOCK_INVALID - - - read-only - - - 7 - - - An invalid block. - - - .. row 8 - - - V4L2_RDS_BLOCK_CORRECTED - - - read-only - - - 0x40 - - - A bit error was detected but corrected. - - - .. row 9 - - - V4L2_RDS_BLOCK_ERROR - - - read-only - - - 0x80 - - - An uncorrectable error occurred. + * - V4L2_RDS_BLOCK_MSK + - + - 7 + - Mask for bits 0-2 to get the block ID. + * - V4L2_RDS_BLOCK_A + - + - 0 + - Block A. + * - V4L2_RDS_BLOCK_B + - + - 1 + - Block B. + * - V4L2_RDS_BLOCK_C + - + - 2 + - Block C. + * - V4L2_RDS_BLOCK_D + - + - 3 + - Block D. + * - V4L2_RDS_BLOCK_C_ALT + - + - 4 + - Block C'. + * - V4L2_RDS_BLOCK_INVALID + - read-only + - 7 + - An invalid block. + * - V4L2_RDS_BLOCK_CORRECTED + - read-only + - 0x40 + - A bit error was detected but corrected. + * - V4L2_RDS_BLOCK_ERROR + - read-only + - 0x80 + - An uncorrectable error occurred. diff --git a/Documentation/media/uapi/v4l/dev-sdr.rst b/Documentation/media/uapi/v4l/dev-sdr.rst index 5f82d760e188..b3e828d8cb1f 100644 --- a/Documentation/media/uapi/v4l/dev-sdr.rst +++ b/Documentation/media/uapi/v4l/dev-sdr.rst @@ -87,35 +87,20 @@ data transfer, set by the driver in order to inform application. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``pixelformat`` - - - The data format or type of compression, set by the application. - This is a little endian - :ref:`four character code `. V4L2 defines SDR - formats in :ref:`sdr-formats`. - - - .. row 2 - - - __u32 - - - ``buffersize`` - - - Maximum size in bytes required for data. Value is set by the - driver. - - - .. row 3 - - - __u8 - - - ``reserved[24]`` - - - This array is reserved for future extensions. Drivers and - applications must set it to zero. + * - __u32 + - ``pixelformat`` + - The data format or type of compression, set by the application. + This is a little endian + :ref:`four character code `. V4L2 defines SDR + formats in :ref:`sdr-formats`. + * - __u32 + - ``buffersize`` + - Maximum size in bytes required for data. Value is set by the + driver. + * - __u8 + - ``reserved[24]`` + - This array is reserved for future extensions. Drivers and + applications must set it to zero. An SDR device may support :ref:`read/write ` and/or streaming diff --git a/Documentation/media/uapi/v4l/dev-sliced-vbi.rst b/Documentation/media/uapi/v4l/dev-sliced-vbi.rst index 019cac7e90e4..5f6d534ea73b 100644 --- a/Documentation/media/uapi/v4l/dev-sliced-vbi.rst +++ b/Documentation/media/uapi/v4l/dev-sliced-vbi.rst @@ -114,138 +114,90 @@ struct v4l2_sliced_vbi_format :stub-columns: 0 :widths: 3 3 2 2 2 + * - __u32 + - ``service_set`` + - :cspan:`2` - - .. row 1 + If ``service_set`` is non-zero when passed with + :ref:`VIDIOC_S_FMT ` or + :ref:`VIDIOC_TRY_FMT `, the ``service_lines`` + array will be filled by the driver according to the services + specified in this field. For example, if ``service_set`` is + initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``, + a driver for the cx25840 video decoder sets lines 7-22 of both + fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first + field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to + zero, then the values of ``service_lines`` will be used instead. - - __u32 + On return the driver sets this field to the union of all elements + of the returned ``service_lines`` array. It may contain less + services than requested, perhaps just one, if the hardware cannot + handle more services simultaneously. It may be empty (zero) if + none of the requested services are supported by the hardware. + * - __u16 + - ``service_lines``\ [2][24] + - :cspan:`2` - - ``service_set`` + Applications initialize this array with sets of data services the + driver shall look for or insert on the respective scan line. + Subject to hardware capabilities drivers return the requested set, + a subset, which may be just a single service, or an empty set. + When the hardware cannot handle multiple services on the same line + the driver shall choose one. No assumptions can be made on which + service the driver chooses. - - :cspan:`2` + Data services are defined in :ref:`vbi-services2`. Array indices + map to ITU-R line numbers\ [#f2]_ as follows: + * - + - + - Element + - 525 line systems + - 625 line systems + * - + - + - ``service_lines``\ [0][1] + - 1 + - 1 + * - + - + - ``service_lines``\ [0][23] + - 23 + - 23 + * - + - + - ``service_lines``\ [1][1] + - 264 + - 314 + * - + - + - ``service_lines``\ [1][23] + - 286 + - 336 + * - + - + - :cspan:`2` Drivers must set ``service_lines`` [0][0] and + ``service_lines``\ [1][0] to zero. The + ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``, + ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START`` + defines give the start line numbers for each field for each 525 or + 625 line format as a convenience. Don't forget that ITU line + numbering starts at 1, not 0. + * - __u32 + - ``io_size`` + - :cspan:`2` Maximum number of bytes passed by one + :ref:`read() ` or :ref:`write() ` call, + and the buffer size in bytes for the + :ref:`VIDIOC_QBUF` and + :ref:`VIDIOC_DQBUF ` ioctl. Drivers set this field + to the size of struct + :c:type:`v4l2_sliced_vbi_data` times the + number of non-zero elements in the returned ``service_lines`` + array (that is the number of lines potentially carrying data). + * - __u32 + - ``reserved``\ [2] + - :cspan:`2` This array is reserved for future extensions. - If ``service_set`` is non-zero when passed with - :ref:`VIDIOC_S_FMT ` or - :ref:`VIDIOC_TRY_FMT `, the ``service_lines`` - array will be filled by the driver according to the services - specified in this field. For example, if ``service_set`` is - initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``, - a driver for the cx25840 video decoder sets lines 7-22 of both - fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first - field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to - zero, then the values of ``service_lines`` will be used instead. - - On return the driver sets this field to the union of all elements - of the returned ``service_lines`` array. It may contain less - services than requested, perhaps just one, if the hardware cannot - handle more services simultaneously. It may be empty (zero) if - none of the requested services are supported by the hardware. - - - .. row 2 - - - __u16 - - - ``service_lines``\ [2][24] - - - :cspan:`2` - - Applications initialize this array with sets of data services the - driver shall look for or insert on the respective scan line. - Subject to hardware capabilities drivers return the requested set, - a subset, which may be just a single service, or an empty set. - When the hardware cannot handle multiple services on the same line - the driver shall choose one. No assumptions can be made on which - service the driver chooses. - - Data services are defined in :ref:`vbi-services2`. Array indices - map to ITU-R line numbers\ [#f2]_ as follows: - - - .. row 3 - - - - - - - Element - - - 525 line systems - - - 625 line systems - - - .. row 4 - - - - - - - ``service_lines``\ [0][1] - - - 1 - - - 1 - - - .. row 5 - - - - - - - ``service_lines``\ [0][23] - - - 23 - - - 23 - - - .. row 6 - - - - - - - ``service_lines``\ [1][1] - - - 264 - - - 314 - - - .. row 7 - - - - - - - ``service_lines``\ [1][23] - - - 286 - - - 336 - - - .. row 8 - - - - - - - :cspan:`2` Drivers must set ``service_lines`` [0][0] and - ``service_lines``\ [1][0] to zero. The - ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``, - ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START`` - defines give the start line numbers for each field for each 525 or - 625 line format as a convenience. Don't forget that ITU line - numbering starts at 1, not 0. - - - .. row 9 - - - __u32 - - - ``io_size`` - - - :cspan:`2` Maximum number of bytes passed by one - :ref:`read() ` or :ref:`write() ` call, - and the buffer size in bytes for the - :ref:`VIDIOC_QBUF` and - :ref:`VIDIOC_DQBUF ` ioctl. Drivers set this field - to the size of struct - :c:type:`v4l2_sliced_vbi_data` times the - number of non-zero elements in the returned ``service_lines`` - array (that is the number of lines potentially carrying data). - - - .. row 10 - - - __u32 - - - ``reserved``\ [2] - - - :cspan:`2` This array is reserved for future extensions. - - Applications and drivers must set it to zero. + Applications and drivers must set it to zero. .. _vbi-services2: @@ -264,95 +216,50 @@ Sliced VBI services :stub-columns: 0 :widths: 2 1 1 2 2 + * - Symbol + - Value + - Reference + - Lines, usually + - Payload + * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) + - 0x0001 + - :ref:`ets300706`, - - .. row 1 + :ref:`itu653` + - PAL/SECAM line 7-22, 320-335 (second field 7-22) + - Last 42 of the 45 byte Teletext packet, that is without clock + run-in and framing code, lsb first transmitted. + * - ``V4L2_SLICED_VPS`` + - 0x0400 + - :ref:`ets300231` + - PAL line 16 + - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb + first transmitted. + * - ``V4L2_SLICED_CAPTION_525`` + - 0x1000 + - :ref:`cea608` + - NTSC line 21, 284 (second field 21) + - Two bytes in transmission order, including parity bit, lsb first + transmitted. + * - ``V4L2_SLICED_WSS_625`` + - 0x4000 + - :ref:`itu1119`, - - Symbol + :ref:`en300294` + - PAL/SECAM line 23 + - - - Value + :: - - Reference - - - Lines, usually - - - Payload - - - .. row 2 - - - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) - - - 0x0001 - - - :ref:`ets300706`, - - :ref:`itu653` - - - PAL/SECAM line 7-22, 320-335 (second field 7-22) - - - Last 42 of the 45 byte Teletext packet, that is without clock - run-in and framing code, lsb first transmitted. - - - .. row 3 - - - ``V4L2_SLICED_VPS`` - - - 0x0400 - - - :ref:`ets300231` - - - PAL line 16 - - - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb - first transmitted. - - - .. row 4 - - - ``V4L2_SLICED_CAPTION_525`` - - - 0x1000 - - - :ref:`cea608` - - - NTSC line 21, 284 (second field 21) - - - Two bytes in transmission order, including parity bit, lsb first - transmitted. - - - .. row 5 - - - ``V4L2_SLICED_WSS_625`` - - - 0x4000 - - - :ref:`itu1119`, - - :ref:`en300294` - - - PAL/SECAM line 23 - - - - - :: - - Byte 0 1 - msb lsb msb lsb - Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 - - - .. row 6 - - - ``V4L2_SLICED_VBI_525`` - - - 0x1000 - - - :cspan:`2` Set of services applicable to 525 line systems. - - - .. row 7 - - - ``V4L2_SLICED_VBI_625`` - - - 0x4401 - - - :cspan:`2` Set of services applicable to 625 line systems. + Byte 0 1 + msb lsb msb lsb + Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 + * - ``V4L2_SLICED_VBI_525`` + - 0x1000 + - :cspan:`2` Set of services applicable to 525 line systems. + * - ``V4L2_SLICED_VBI_625`` + - 0x4401 + - :cspan:`2` Set of services applicable to 625 line systems. .. raw:: latex @@ -395,63 +302,38 @@ struct v4l2_sliced_vbi_data :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - __u32 - - - ``id`` - - - A flag from :ref:`vbi-services` identifying the type of data in - this packet. Only a single bit must be set. When the ``id`` of a - captured packet is zero, the packet is empty and the contents of - other fields are undefined. Applications shall ignore empty - packets. When the ``id`` of a packet for output is zero the - contents of the ``data`` field are undefined and the driver must - no longer insert data on the requested ``field`` and ``line``. - - - .. row 2 - - - __u32 - - - ``field`` - - - The video field number this data has been captured from, or shall - be inserted at. ``0`` for the first field, ``1`` for the second - field. - - - .. row 3 - - - __u32 - - - ``line`` - - - The field (as opposed to frame) line number this data has been - captured from, or shall be inserted at. See :ref:`vbi-525` and - :ref:`vbi-625` for valid values. Sliced VBI capture devices can - set the line number of all packets to ``0`` if the hardware cannot - reliably identify scan lines. The field number must always be - valid. - - - .. row 4 - - - __u32 - - - ``reserved`` - - - This field is reserved for future extensions. Applications and - drivers must set it to zero. - - - .. row 5 - - - __u8 - - - ``data``\ [48] - - - The packet payload. See :ref:`vbi-services` for the contents and - number of bytes passed for each data type. The contents of padding - bytes at the end of this array are undefined, drivers and - applications shall ignore them. + * - __u32 + - ``id`` + - A flag from :ref:`vbi-services` identifying the type of data in + this packet. Only a single bit must be set. When the ``id`` of a + captured packet is zero, the packet is empty and the contents of + other fields are undefined. Applications shall ignore empty + packets. When the ``id`` of a packet for output is zero the + contents of the ``data`` field are undefined and the driver must + no longer insert data on the requested ``field`` and ``line``. + * - __u32 + - ``field`` + - The video field number this data has been captured from, or shall + be inserted at. ``0`` for the first field, ``1`` for the second + field. + * - __u32 + - ``line`` + - The field (as opposed to frame) line number this data has been + captured from, or shall be inserted at. See :ref:`vbi-525` and + :ref:`vbi-625` for valid values. Sliced VBI capture devices can + set the line number of all packets to ``0`` if the hardware cannot + reliably identify scan lines. The field number must always be + valid. + * - __u32 + - ``reserved`` + - This field is reserved for future extensions. Applications and + drivers must set it to zero. + * - __u8 + - ``data``\ [48] + - The packet payload. See :ref:`vbi-services` for the contents and + number of bytes passed for each data type. The contents of padding + bytes at the end of this array are undefined, drivers and + applications shall ignore them. Packets are always passed in ascending line number order, without @@ -582,48 +464,29 @@ struct v4l2_mpeg_vbi_fmt_ivtv :stub-columns: 0 :widths: 1 1 1 2 - - - .. row 1 - - - __u8 - - - ``magic``\ [4] - - - - - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that - indicates this is a valid sliced VBI data payload and also - indicates which member of the anonymous union, ``itv0`` or - ``ITV0``, to use for the payload data. - - - .. row 2 - - - union - - - (anonymous) - - - .. row 3 - - - - - struct :c:type:`v4l2_mpeg_vbi_itv0` - - - ``itv0`` - - - The primary form of the sliced VBI data payload that contains - anywhere from 1 to 35 lines of sliced VBI data. Line masks are - provided in this form of the payload indicating which VBI lines - are provided. - - - .. row 4 - - - - - struct :ref:`v4l2_mpeg_vbi_ITV0 ` - - - ``ITV0`` - - - An alternate form of the sliced VBI data payload used when 36 - lines of sliced VBI data are present. No line masks are provided - in this form of the payload; all valid line mask bits are - implcitly set. + * - __u8 + - ``magic``\ [4] + - + - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that + indicates this is a valid sliced VBI data payload and also + indicates which member of the anonymous union, ``itv0`` or + ``ITV0``, to use for the payload data. + * - union + - (anonymous) + * - + - struct :c:type:`v4l2_mpeg_vbi_itv0` + - ``itv0`` + - The primary form of the sliced VBI data payload that contains + anywhere from 1 to 35 lines of sliced VBI data. Line masks are + provided in this form of the payload indicating which VBI lines + are provided. + * - + - struct :ref:`v4l2_mpeg_vbi_ITV0 ` + - ``ITV0`` + - An alternate form of the sliced VBI data payload used when 36 + lines of sliced VBI data are present. No line masks are provided + in this form of the payload; all valid line mask bits are + implcitly set. @@ -639,34 +502,19 @@ Magic Constants for struct v4l2_mpeg_vbi_fmt_ivtv magic field :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - Defined Symbol - - - Value - - - Description - - - .. row 2 - - - ``V4L2_MPEG_VBI_IVTV_MAGIC0`` - - - "itv0" - - - Indicates the ``itv0`` member of the union in struct - :c:type:`v4l2_mpeg_vbi_fmt_ivtv` is - valid. - - - .. row 3 - - - ``V4L2_MPEG_VBI_IVTV_MAGIC1`` - - - "ITV0" - - - Indicates the ``ITV0`` member of the union in struct - :c:type:`v4l2_mpeg_vbi_fmt_ivtv` is - valid and that 36 lines of sliced VBI data are present. + * - Defined Symbol + - Value + - Description + * - ``V4L2_MPEG_VBI_IVTV_MAGIC0`` + - "itv0" + - Indicates the ``itv0`` member of the union in struct + :c:type:`v4l2_mpeg_vbi_fmt_ivtv` is + valid. + * - ``V4L2_MPEG_VBI_IVTV_MAGIC1`` + - "ITV0" + - Indicates the ``ITV0`` member of the union in struct + :c:type:`v4l2_mpeg_vbi_fmt_ivtv` is + valid and that 36 lines of sliced VBI data are present. @@ -684,50 +532,40 @@ structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0 :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __le32 - - - ``linemask``\ [2] - - - Bitmasks indicating the VBI service lines present. These - ``linemask`` values are stored in little endian byte order in the - MPEG stream. Some reference ``linemask`` bit positions with their - corresponding VBI line number and video field are given below. - b\ :sub:`0` indicates the least significant bit of a ``linemask`` - value: + * - __le32 + - ``linemask``\ [2] + - Bitmasks indicating the VBI service lines present. These + ``linemask`` values are stored in little endian byte order in the + MPEG stream. Some reference ``linemask`` bit positions with their + corresponding VBI line number and video field are given below. + b\ :sub:`0` indicates the least significant bit of a ``linemask`` + value: - :: + :: - linemask[0] b0: line 6 first field - linemask[0] b17: line 23 first field - linemask[0] b18: line 6 second field - linemask[0] b31: line 19 second field - linemask[1] b0: line 20 second field - linemask[1] b3: line 23 second field - linemask[1] b4-b31: unused and set to 0 - - - .. row 2 - - - struct - :c:type:`v4l2_mpeg_vbi_itv0_line` - - - ``line``\ [35] - - - This is a variable length array that holds from 1 to 35 lines of - sliced VBI data. The sliced VBI data lines present correspond to - the bits set in the ``linemask`` array, starting from b\ :sub:`0` - of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0], - and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of - ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit - found set in the ``linemask`` array, ``line``\ [1] corresponds to - the second bit found set in the ``linemask`` array, etc. If no - ``linemask`` array bits are set, then ``line``\ [0] may contain - one line of unspecified data that should be ignored by - applications. + linemask[0] b0: line 6 first field + linemask[0] b17: line 23 first field + linemask[0] b18: line 6 second field + linemask[0] b31: line 19 second field + linemask[1] b0: line 20 second field + linemask[1] b3: line 23 second field + linemask[1] b4-b31: unused and set to 0 + * - struct + :c:type:`v4l2_mpeg_vbi_itv0_line` + - ``line``\ [35] + - This is a variable length array that holds from 1 to 35 lines of + sliced VBI data. The sliced VBI data lines present correspond to + the bits set in the ``linemask`` array, starting from b\ :sub:`0` + of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0], + and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of + ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit + found set in the ``linemask`` array, ``line``\ [1] corresponds to + the second bit found set in the ``linemask`` array, etc. If no + ``linemask`` array bits are set, then ``line``\ [0] may contain + one line of unspecified data that should be ignored by + applications. @@ -743,18 +581,13 @@ struct v4l2_mpeg_vbi_ITV0 :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - struct - :c:type:`v4l2_mpeg_vbi_itv0_line` - - - ``line``\ [36] - - - A fixed length array of 36 lines of sliced VBI data. ``line``\ [0] - through ``line``\ [17] correspond to lines 6 through 23 of the - first field. ``line``\ [18] through ``line``\ [35] corresponds to - lines 6 through 23 of the second field. + * - struct + :c:type:`v4l2_mpeg_vbi_itv0_line` + - ``line``\ [36] + - A fixed length array of 36 lines of sliced VBI data. ``line``\ [0] + through ``line``\ [17] correspond to lines 6 through 23 of the + first field. ``line``\ [18] through ``line``\ [35] corresponds to + lines 6 through 23 of the second field. @@ -770,24 +603,14 @@ struct v4l2_mpeg_vbi_itv0_line :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u8 - - - ``id`` - - - A line identifier value from - :ref:`ITV0-Line-Identifier-Constants` that indicates the type of - sliced VBI data stored on this line. - - - .. row 2 - - - __u8 - - - ``data``\ [42] - - - The sliced VBI data for the line. + * - __u8 + - ``id`` + - A line identifier value from + :ref:`ITV0-Line-Identifier-Constants` that indicates the type of + sliced VBI data stored on this line. + * - __u8 + - ``data``\ [42] + - The sliced VBI data for the line. @@ -803,50 +626,25 @@ Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - Defined Symbol - - - Value - - - Description - - - .. row 2 - - - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B`` - - - 1 - - - Refer to :ref:`Sliced VBI services ` for a - description of the line payload. - - - .. row 3 - - - ``V4L2_MPEG_VBI_IVTV_CAPTION_525`` - - - 4 - - - Refer to :ref:`Sliced VBI services ` for a - description of the line payload. - - - .. row 4 - - - ``V4L2_MPEG_VBI_IVTV_WSS_625`` - - - 5 - - - Refer to :ref:`Sliced VBI services ` for a - description of the line payload. - - - .. row 5 - - - ``V4L2_MPEG_VBI_IVTV_VPS`` - - - 7 - - - Refer to :ref:`Sliced VBI services ` for a - description of the line payload. + * - Defined Symbol + - Value + - Description + * - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B`` + - 1 + - Refer to :ref:`Sliced VBI services ` for a + description of the line payload. + * - ``V4L2_MPEG_VBI_IVTV_CAPTION_525`` + - 4 + - Refer to :ref:`Sliced VBI services ` for a + description of the line payload. + * - ``V4L2_MPEG_VBI_IVTV_WSS_625`` + - 5 + - Refer to :ref:`Sliced VBI services ` for a + description of the line payload. + * - ``V4L2_MPEG_VBI_IVTV_VPS`` + - 7 + - Refer to :ref:`Sliced VBI services ` for a + description of the line payload. diff --git a/Documentation/media/uapi/v4l/dev-subdev.rst b/Documentation/media/uapi/v4l/dev-subdev.rst index 6dc7f13780ba..fb4d0d45b216 100644 --- a/Documentation/media/uapi/v4l/dev-subdev.rst +++ b/Documentation/media/uapi/v4l/dev-subdev.rst @@ -215,85 +215,41 @@ list entity names and pad numbers). :stub-columns: 0 :widths: 5 5 5 5 5 5 5 - - - .. row 1 - - - - - Sensor/0 format - - - Frontend/0 format - - - Frontend/1 format - - - Scaler/0 format - - - Scaler/0 compose selection rectangle - - - Scaler/1 format - - - .. row 2 - - - Initial state - - - 2048x1536/SGRBG8_1X8 - - - (default) - - - (default) - - - (default) - - - (default) - - - (default) - - - .. row 3 - - - Configure frontend sink format - - - 2048x1536/SGRBG8_1X8 - - - *2048x1536/SGRBG8_1X8* - - - *2046x1534/SGRBG8_1X8* - - - (default) - - - (default) - - - (default) - - - .. row 4 - - - Configure scaler sink format - - - 2048x1536/SGRBG8_1X8 - - - 2048x1536/SGRBG8_1X8 - - - 2046x1534/SGRBG8_1X8 - - - *2046x1534/SGRBG8_1X8* - - - *0,0/2046x1534* - - - *2046x1534/SGRBG8_1X8* - - - .. row 5 - - - Configure scaler sink compose selection - - - 2048x1536/SGRBG8_1X8 - - - 2048x1536/SGRBG8_1X8 - - - 2046x1534/SGRBG8_1X8 - - - 2046x1534/SGRBG8_1X8 - - - *0,0/1280x960* - - - *1280x960/SGRBG8_1X8* + * - + - Sensor/0 format + - Frontend/0 format + - Frontend/1 format + - Scaler/0 format + - Scaler/0 compose selection rectangle + - Scaler/1 format + * - Initial state + - 2048x1536/SGRBG8_1X8 + - (default) + - (default) + - (default) + - (default) + - (default) + * - Configure frontend sink format + - 2048x1536/SGRBG8_1X8 + - *2048x1536/SGRBG8_1X8* + - *2046x1534/SGRBG8_1X8* + - (default) + - (default) + - (default) + * - Configure scaler sink format + - 2048x1536/SGRBG8_1X8 + - 2048x1536/SGRBG8_1X8 + - 2046x1534/SGRBG8_1X8 + - *2046x1534/SGRBG8_1X8* + - *0,0/2046x1534* + - *2046x1534/SGRBG8_1X8* + * - Configure scaler sink compose selection + - 2048x1536/SGRBG8_1X8 + - 2048x1536/SGRBG8_1X8 + - 2046x1534/SGRBG8_1X8 + - 2046x1534/SGRBG8_1X8 + - *0,0/1280x960* + - *1280x960/SGRBG8_1X8* .. raw:: latex diff --git a/Documentation/media/uapi/v4l/diff-v4l.rst b/Documentation/media/uapi/v4l/diff-v4l.rst index 0419e2051759..76b2ecab8657 100644 --- a/Documentation/media/uapi/v4l/diff-v4l.rst +++ b/Documentation/media/uapi/v4l/diff-v4l.rst @@ -39,39 +39,19 @@ using driver module options. The major device number remains 81. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Device Type - - - File Name - - - Minor Numbers - - - .. row 2 - - - Video capture and overlay - - - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to - ``/dev/video63`` - - - 0-63 - - - .. row 3 - - - Radio receiver - - - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63`` - - - 64-127 - - - .. row 4 - - - Raw VBI capture - - - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31`` - - - 224-255 + * - Device Type + - File Name + - Minor Numbers + * - Video capture and overlay + - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to + ``/dev/video63`` + - 0-63 + * - Radio receiver + - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63`` + - 64-127 + * - Raw VBI capture + - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31`` + - 224-255 V4L prohibits (or used to prohibit) multiple opens of a device file. @@ -103,148 +83,73 @@ introduction. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - ``struct video_capability`` ``type`` - - - struct :c:type:`v4l2_capability` - ``capabilities`` flags - - - Purpose - - - .. row 2 - - - ``VID_TYPE_CAPTURE`` - - - ``V4L2_CAP_VIDEO_CAPTURE`` - - - The :ref:`video capture ` interface is supported. - - - .. row 3 - - - ``VID_TYPE_TUNER`` - - - ``V4L2_CAP_TUNER`` - - - The device has a :ref:`tuner or modulator `. - - - .. row 4 - - - ``VID_TYPE_TELETEXT`` - - - ``V4L2_CAP_VBI_CAPTURE`` - - - The :ref:`raw VBI capture ` interface is supported. - - - .. row 5 - - - ``VID_TYPE_OVERLAY`` - - - ``V4L2_CAP_VIDEO_OVERLAY`` - - - The :ref:`video overlay ` interface is supported. - - - .. row 6 - - - ``VID_TYPE_CHROMAKEY`` - - - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct - :c:type:`v4l2_framebuffer` - - - Whether chromakey overlay is supported. For more information on - overlay see :ref:`overlay`. - - - .. row 7 - - - ``VID_TYPE_CLIPPING`` - - - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and - ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of - struct :c:type:`v4l2_framebuffer` - - - Whether clipping the overlaid image is supported, see - :ref:`overlay`. - - - .. row 8 - - - ``VID_TYPE_FRAMERAM`` - - - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability`` - of struct :c:type:`v4l2_framebuffer` - - - Whether overlay overwrites frame buffer memory, see - :ref:`overlay`. - - - .. row 9 - - - ``VID_TYPE_SCALES`` - - - ``-`` - - - This flag indicates if the hardware can scale images. The V4L2 API - implies the scale factor by setting the cropping dimensions and - image size with the :ref:`VIDIOC_S_CROP ` and - :ref:`VIDIOC_S_FMT ` ioctl, respectively. The - driver returns the closest sizes possible. For more information on - cropping and scaling see :ref:`crop`. - - - .. row 10 - - - ``VID_TYPE_MONOCHROME`` - - - ``-`` - - - Applications can enumerate the supported image formats with the - :ref:`VIDIOC_ENUM_FMT` ioctl to determine if - the device supports grey scale capturing only. For more - information on image formats see :ref:`pixfmt`. - - - .. row 11 - - - ``VID_TYPE_SUBCAPTURE`` - - - ``-`` - - - Applications can call the :ref:`VIDIOC_G_CROP ` - ioctl to determine if the device supports capturing a subsection - of the full picture ("cropping" in V4L2). If not, the ioctl - returns the ``EINVAL`` error code. For more information on cropping - and scaling see :ref:`crop`. - - - .. row 12 - - - ``VID_TYPE_MPEG_DECODER`` - - - ``-`` - - - Applications can enumerate the supported image formats with the - :ref:`VIDIOC_ENUM_FMT` ioctl to determine if - the device supports MPEG streams. - - - .. row 13 - - - ``VID_TYPE_MPEG_ENCODER`` - - - ``-`` - - - See above. - - - .. row 14 - - - ``VID_TYPE_MJPEG_DECODER`` - - - ``-`` - - - See above. - - - .. row 15 - - - ``VID_TYPE_MJPEG_ENCODER`` - - - ``-`` - - - See above. + * - ``struct video_capability`` ``type`` + - struct :c:type:`v4l2_capability` + ``capabilities`` flags + - Purpose + * - ``VID_TYPE_CAPTURE`` + - ``V4L2_CAP_VIDEO_CAPTURE`` + - The :ref:`video capture ` interface is supported. + * - ``VID_TYPE_TUNER`` + - ``V4L2_CAP_TUNER`` + - The device has a :ref:`tuner or modulator `. + * - ``VID_TYPE_TELETEXT`` + - ``V4L2_CAP_VBI_CAPTURE`` + - The :ref:`raw VBI capture ` interface is supported. + * - ``VID_TYPE_OVERLAY`` + - ``V4L2_CAP_VIDEO_OVERLAY`` + - The :ref:`video overlay ` interface is supported. + * - ``VID_TYPE_CHROMAKEY`` + - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct + :c:type:`v4l2_framebuffer` + - Whether chromakey overlay is supported. For more information on + overlay see :ref:`overlay`. + * - ``VID_TYPE_CLIPPING`` + - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and + ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of + struct :c:type:`v4l2_framebuffer` + - Whether clipping the overlaid image is supported, see + :ref:`overlay`. + * - ``VID_TYPE_FRAMERAM`` + - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability`` + of struct :c:type:`v4l2_framebuffer` + - Whether overlay overwrites frame buffer memory, see + :ref:`overlay`. + * - ``VID_TYPE_SCALES`` + - ``-`` + - This flag indicates if the hardware can scale images. The V4L2 API + implies the scale factor by setting the cropping dimensions and + image size with the :ref:`VIDIOC_S_CROP ` and + :ref:`VIDIOC_S_FMT ` ioctl, respectively. The + driver returns the closest sizes possible. For more information on + cropping and scaling see :ref:`crop`. + * - ``VID_TYPE_MONOCHROME`` + - ``-`` + - Applications can enumerate the supported image formats with the + :ref:`VIDIOC_ENUM_FMT` ioctl to determine if + the device supports grey scale capturing only. For more + information on image formats see :ref:`pixfmt`. + * - ``VID_TYPE_SUBCAPTURE`` + - ``-`` + - Applications can call the :ref:`VIDIOC_G_CROP ` + ioctl to determine if the device supports capturing a subsection + of the full picture ("cropping" in V4L2). If not, the ioctl + returns the ``EINVAL`` error code. For more information on cropping + and scaling see :ref:`crop`. + * - ``VID_TYPE_MPEG_DECODER`` + - ``-`` + - Applications can enumerate the supported image formats with the + :ref:`VIDIOC_ENUM_FMT` ioctl to determine if + the device supports MPEG streams. + * - ``VID_TYPE_MPEG_ENCODER`` + - ``-`` + - See above. + * - ``VID_TYPE_MJPEG_DECODER`` + - ``-`` + - See above. + * - ``VID_TYPE_MJPEG_ENCODER`` + - ``-`` + - See above. The ``audios`` field was replaced by ``capabilities`` flag @@ -280,24 +185,12 @@ video input types were renamed as follows: :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - struct ``video_channel`` ``type`` - - - struct :c:type:`v4l2_input` ``type`` - - - .. row 2 - - - ``VIDEO_TYPE_TV`` - - - ``V4L2_INPUT_TYPE_TUNER`` - - - .. row 3 - - - ``VIDEO_TYPE_CAMERA`` - - - ``V4L2_INPUT_TYPE_CAMERA`` + * - struct ``video_channel`` ``type`` + - struct :c:type:`v4l2_input` ``type`` + * - ``VIDEO_TYPE_TV`` + - ``V4L2_INPUT_TYPE_TUNER`` + * - ``VIDEO_TYPE_CAMERA`` + - ``V4L2_INPUT_TYPE_CAMERA`` Unlike the ``tuners`` field expressing the number of tuners of this @@ -386,42 +279,18 @@ replaced by V4L2 controls accessible with the :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - struct ``video_picture`` - - - V4L2 Control ID - - - .. row 2 - - - ``brightness`` - - - ``V4L2_CID_BRIGHTNESS`` - - - .. row 3 - - - ``hue`` - - - ``V4L2_CID_HUE`` - - - .. row 4 - - - ``colour`` - - - ``V4L2_CID_SATURATION`` - - - .. row 5 - - - ``contrast`` - - - ``V4L2_CID_CONTRAST`` - - - .. row 6 - - - ``whiteness`` - - - ``V4L2_CID_WHITENESS`` + * - struct ``video_picture`` + - V4L2 Control ID + * - ``brightness`` + - ``V4L2_CID_BRIGHTNESS`` + * - ``hue`` + - ``V4L2_CID_HUE`` + * - ``colour`` + - ``V4L2_CID_SATURATION`` + * - ``contrast`` + - ``V4L2_CID_CONTRAST`` + * - ``whiteness`` + - ``V4L2_CID_WHITENESS`` The V4L picture controls are assumed to range from 0 to 65535 with no @@ -442,108 +311,40 @@ into the struct :c:type:`v4l2_pix_format`: :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - struct ``video_picture`` ``palette`` - - - struct :c:type:`v4l2_pix_format` ``pixfmt`` - - - .. row 2 - - - ``VIDEO_PALETTE_GREY`` - - - :ref:`V4L2_PIX_FMT_GREY ` - - - .. row 3 - - - ``VIDEO_PALETTE_HI240`` - - - :ref:`V4L2_PIX_FMT_HI240 ` [#f3]_ - - - .. row 4 - - - ``VIDEO_PALETTE_RGB565`` - - - :ref:`V4L2_PIX_FMT_RGB565 ` - - - .. row 5 - - - ``VIDEO_PALETTE_RGB555`` - - - :ref:`V4L2_PIX_FMT_RGB555 ` - - - .. row 6 - - - ``VIDEO_PALETTE_RGB24`` - - - :ref:`V4L2_PIX_FMT_BGR24 ` - - - .. row 7 - - - ``VIDEO_PALETTE_RGB32`` - - - :ref:`V4L2_PIX_FMT_BGR32 ` [#f4]_ - - - .. row 8 - - - ``VIDEO_PALETTE_YUV422`` - - - :ref:`V4L2_PIX_FMT_YUYV ` - - - .. row 9 - - - ``VIDEO_PALETTE_YUYV``\ [#f5]_ - - - :ref:`V4L2_PIX_FMT_YUYV ` - - - .. row 10 - - - ``VIDEO_PALETTE_UYVY`` - - - :ref:`V4L2_PIX_FMT_UYVY ` - - - .. row 11 - - - ``VIDEO_PALETTE_YUV420`` - - - None - - - .. row 12 - - - ``VIDEO_PALETTE_YUV411`` - - - :ref:`V4L2_PIX_FMT_Y41P ` [#f6]_ - - - .. row 13 - - - ``VIDEO_PALETTE_RAW`` - - - None [#f7]_ - - - .. row 14 - - - ``VIDEO_PALETTE_YUV422P`` - - - :ref:`V4L2_PIX_FMT_YUV422P ` - - - .. row 15 - - - ``VIDEO_PALETTE_YUV411P`` - - - :ref:`V4L2_PIX_FMT_YUV411P ` [#f8]_ - - - .. row 16 - - - ``VIDEO_PALETTE_YUV420P`` - - - :ref:`V4L2_PIX_FMT_YVU420 ` - - - .. row 17 - - - ``VIDEO_PALETTE_YUV410P`` - - - :ref:`V4L2_PIX_FMT_YVU410 ` + * - struct ``video_picture`` ``palette`` + - struct :c:type:`v4l2_pix_format` ``pixfmt`` + * - ``VIDEO_PALETTE_GREY`` + - :ref:`V4L2_PIX_FMT_GREY ` + * - ``VIDEO_PALETTE_HI240`` + - :ref:`V4L2_PIX_FMT_HI240 ` [#f3]_ + * - ``VIDEO_PALETTE_RGB565`` + - :ref:`V4L2_PIX_FMT_RGB565 ` + * - ``VIDEO_PALETTE_RGB555`` + - :ref:`V4L2_PIX_FMT_RGB555 ` + * - ``VIDEO_PALETTE_RGB24`` + - :ref:`V4L2_PIX_FMT_BGR24 ` + * - ``VIDEO_PALETTE_RGB32`` + - :ref:`V4L2_PIX_FMT_BGR32 ` [#f4]_ + * - ``VIDEO_PALETTE_YUV422`` + - :ref:`V4L2_PIX_FMT_YUYV ` + * - ``VIDEO_PALETTE_YUYV``\ [#f5]_ + - :ref:`V4L2_PIX_FMT_YUYV ` + * - ``VIDEO_PALETTE_UYVY`` + - :ref:`V4L2_PIX_FMT_UYVY ` + * - ``VIDEO_PALETTE_YUV420`` + - None + * - ``VIDEO_PALETTE_YUV411`` + - :ref:`V4L2_PIX_FMT_Y41P ` [#f6]_ + * - ``VIDEO_PALETTE_RAW`` + - None [#f7]_ + * - ``VIDEO_PALETTE_YUV422P`` + - :ref:`V4L2_PIX_FMT_YUV422P ` + * - ``VIDEO_PALETTE_YUV411P`` + - :ref:`V4L2_PIX_FMT_YUV411P ` [#f8]_ + * - ``VIDEO_PALETTE_YUV420P`` + - :ref:`V4L2_PIX_FMT_YVU420 ` + * - ``VIDEO_PALETTE_YUV410P`` + - :ref:`V4L2_PIX_FMT_YVU410 ` V4L2 image formats are defined in :ref:`pixfmt`. The image format can @@ -588,36 +389,16 @@ The following fields where replaced by V4L2 controls accessible with the :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - struct ``video_audio`` - - - V4L2 Control ID - - - .. row 2 - - - ``volume`` - - - ``V4L2_CID_AUDIO_VOLUME`` - - - .. row 3 - - - ``bass`` - - - ``V4L2_CID_AUDIO_BASS`` - - - .. row 4 - - - ``treble`` - - - ``V4L2_CID_AUDIO_TREBLE`` - - - .. row 5 - - - ``balance`` - - - ``V4L2_CID_AUDIO_BALANCE`` + * - struct ``video_audio`` + - V4L2 Control ID + * - ``volume`` + - ``V4L2_CID_AUDIO_VOLUME`` + * - ``bass`` + - ``V4L2_CID_AUDIO_BASS`` + * - ``treble`` + - ``V4L2_CID_AUDIO_TREBLE`` + * - ``balance`` + - ``V4L2_CID_AUDIO_BALANCE`` To determine which of these controls are supported by a driver V4L @@ -752,68 +533,49 @@ differences. :header-rows: 1 :stub-columns: 0 + * - V4L + - V4L2 + * - + - The image format must be selected before buffers are allocated, + with the :ref:`VIDIOC_S_FMT ` ioctl. When no + format is selected the driver may use the last, possibly by + another application requested format. + * - Applications cannot change the number of buffers. The it is built + into the driver, unless it has a module option to change the + number when the driver module is loaded. + - The :ref:`VIDIOC_REQBUFS` ioctl allocates the + desired number of buffers, this is a required step in the + initialization sequence. + * - Drivers map all buffers as one contiguous range of memory. The + ``VIDIOCGMBUF`` ioctl is available to query the number of buffers, + the offset of each buffer from the start of the virtual file, and + the overall amount of memory used, which can be used as arguments + for the :ref:`mmap() ` function. + - Buffers are individually mapped. The offset and size of each + buffer can be determined with the + :ref:`VIDIOC_QUERYBUF` ioctl. + * - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It + also determines the image format for this buffer. The ioctl + returns immediately, eventually with an ``EAGAIN`` error code if no + video signal had been detected. When the driver supports more than + one buffer applications can call the ioctl multiple times and thus + have multiple outstanding capture requests. - - .. row 1 - - - V4L - - - V4L2 - - - .. row 2 - - - - - The image format must be selected before buffers are allocated, - with the :ref:`VIDIOC_S_FMT ` ioctl. When no - format is selected the driver may use the last, possibly by - another application requested format. - - - .. row 3 - - - Applications cannot change the number of buffers. The it is built - into the driver, unless it has a module option to change the - number when the driver module is loaded. - - - The :ref:`VIDIOC_REQBUFS` ioctl allocates the - desired number of buffers, this is a required step in the - initialization sequence. - - - .. row 4 - - - Drivers map all buffers as one contiguous range of memory. The - ``VIDIOCGMBUF`` ioctl is available to query the number of buffers, - the offset of each buffer from the start of the virtual file, and - the overall amount of memory used, which can be used as arguments - for the :ref:`mmap() ` function. - - - Buffers are individually mapped. The offset and size of each - buffer can be determined with the - :ref:`VIDIOC_QUERYBUF` ioctl. - - - .. row 5 - - - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It - also determines the image format for this buffer. The ioctl - returns immediately, eventually with an ``EAGAIN`` error code if no - video signal had been detected. When the driver supports more than - one buffer applications can call the ioctl multiple times and thus - have multiple outstanding capture requests. - - The ``VIDIOCSYNC`` ioctl suspends execution until a particular - buffer has been filled. - - - Drivers maintain an incoming and outgoing queue. - :ref:`VIDIOC_QBUF` enqueues any empty buffer into - the incoming queue. Filled buffers are dequeued from the outgoing - queue with the :ref:`VIDIOC_DQBUF ` ioctl. To wait - until filled buffers become available this function, - :ref:`select() ` or :ref:`poll() ` can - be used. The :ref:`VIDIOC_STREAMON` ioctl - must be called once after enqueuing one or more buffers to start - capturing. Its counterpart - :ref:`VIDIOC_STREAMOFF ` stops capturing and - dequeues all buffers from both queues. Applications can query the - signal status, if known, with the - :ref:`VIDIOC_ENUMINPUT` ioctl. + The ``VIDIOCSYNC`` ioctl suspends execution until a particular + buffer has been filled. + - Drivers maintain an incoming and outgoing queue. + :ref:`VIDIOC_QBUF` enqueues any empty buffer into + the incoming queue. Filled buffers are dequeued from the outgoing + queue with the :ref:`VIDIOC_DQBUF ` ioctl. To wait + until filled buffers become available this function, + :ref:`select() ` or :ref:`poll() ` can + be used. The :ref:`VIDIOC_STREAMON` ioctl + must be called once after enqueuing one or more buffers to start + capturing. Its counterpart + :ref:`VIDIOC_STREAMOFF ` stops capturing and + dequeues all buffers from both queues. Applications can query the + signal status, if known, with the + :ref:`VIDIOC_ENUMINPUT` ioctl. For a more in-depth discussion of memory mapping and examples, see @@ -835,56 +597,24 @@ with the following parameters: :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - struct :c:type:`v4l2_vbi_format` - - - V4L, BTTV driver - - - .. row 2 - - - sampling_rate - - - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL - and SECAM (625-line standards) - - - .. row 3 - - - offset - - - ? - - - .. row 4 - - - samples_per_line - - - 2048 - - - .. row 5 - - - sample_format - - - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness - integer) contain a frame counter. - - - .. row 6 - - - start[] - - - 10, 273 NTSC; 22, 335 PAL and SECAM - - - .. row 7 - - - count[] - - - 16, 16 [#f9]_ - - - .. row 8 - - - flags - - - 0 + * - struct :c:type:`v4l2_vbi_format` + - V4L, BTTV driver + * - sampling_rate + - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL + and SECAM (625-line standards) + * - offset + - ? + * - samples_per_line + - 2048 + * - sample_format + - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness + integer) contain a frame counter. + * - start[] + - 10, 273 NTSC; 22, 335 PAL and SECAM + * - count[] + - 16, 16 [#f9]_ + * - flags + - 0 Undocumented in the V4L specification, in Linux 2.3 the diff --git a/Documentation/media/uapi/v4l/extended-controls.rst b/Documentation/media/uapi/v4l/extended-controls.rst index 85e536971923..7725c33d8b69 100644 --- a/Documentation/media/uapi/v4l/extended-controls.rst +++ b/Documentation/media/uapi/v4l/extended-controls.rst @@ -224,42 +224,18 @@ enum v4l2_mpeg_stream_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS`` - - - MPEG-2 program stream - - - .. row 2 - - - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS`` - - - MPEG-2 transport stream - - - .. row 3 - - - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS`` - - - MPEG-1 system stream - - - .. row 4 - - - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD`` - - - MPEG-2 DVD-compatible stream - - - .. row 5 - - - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD`` - - - MPEG-1 VCD-compatible stream - - - .. row 6 - - - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD`` - - - MPEG-2 SVCD-compatible stream + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS`` + - MPEG-2 program stream + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS`` + - MPEG-2 transport stream + * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS`` + - MPEG-1 system stream + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD`` + - MPEG-2 DVD-compatible stream + * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD`` + - MPEG-1 VCD-compatible stream + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD`` + - MPEG-2 SVCD-compatible stream @@ -303,20 +279,12 @@ enum v4l2_mpeg_stream_vbi_fmt - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_STREAM_VBI_FMT_NONE`` - - - No VBI in the MPEG stream - - - .. row 2 - - - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` - - - VBI in private packets, IVTV format (documented in the kernel - sources in the file - ``Documentation/video4linux/cx2341x/README.vbi``) + * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE`` + - No VBI in the MPEG stream + * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` + - VBI in private packets, IVTV format (documented in the kernel + sources in the file + ``Documentation/video4linux/cx2341x/README.vbi``) @@ -334,24 +302,12 @@ enum v4l2_mpeg_audio_sampling_freq - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100`` - - - 44.1 kHz - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000`` - - - 48 kHz - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000`` - - - 32 kHz + * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100`` + - 44.1 kHz + * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000`` + - 48 kHz + * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000`` + - 32 kHz @@ -370,36 +326,16 @@ enum v4l2_mpeg_audio_encoding - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1`` - - - MPEG-1/2 Layer I encoding - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2`` - - - MPEG-1/2 Layer II encoding - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3`` - - - MPEG-1/2 Layer III encoding - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_ENCODING_AAC`` - - - MPEG-2/4 AAC (Advanced Audio Coding) - - - .. row 5 - - - ``V4L2_MPEG_AUDIO_ENCODING_AC3`` - - - AC-3 aka ATSC A/52 encoding + * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1`` + - MPEG-1/2 Layer I encoding + * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2`` + - MPEG-1/2 Layer II encoding + * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3`` + - MPEG-1/2 Layer III encoding + * - ``V4L2_MPEG_AUDIO_ENCODING_AAC`` + - MPEG-2/4 AAC (Advanced Audio Coding) + * - ``V4L2_MPEG_AUDIO_ENCODING_AC3`` + - AC-3 aka ATSC A/52 encoding @@ -417,90 +353,34 @@ enum v4l2_mpeg_audio_l1_bitrate - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K`` - - - 32 kbit/s - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K`` - - - 64 kbit/s - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K`` - - - 96 kbit/s - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K`` - - - 128 kbit/s - - - .. row 5 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K`` - - - 160 kbit/s - - - .. row 6 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K`` - - - 192 kbit/s - - - .. row 7 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K`` - - - 224 kbit/s - - - .. row 8 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K`` - - - 256 kbit/s - - - .. row 9 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K`` - - - 288 kbit/s - - - .. row 10 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K`` - - - 320 kbit/s - - - .. row 11 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K`` - - - 352 kbit/s - - - .. row 12 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K`` - - - 384 kbit/s - - - .. row 13 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K`` - - - 416 kbit/s - - - .. row 14 - - - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K`` - - - 448 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K`` + - 32 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K`` + - 64 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K`` + - 96 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K`` + - 128 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K`` + - 160 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K`` + - 192 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K`` + - 224 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K`` + - 256 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K`` + - 288 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K`` + - 320 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K`` + - 352 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K`` + - 384 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K`` + - 416 kbit/s + * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K`` + - 448 kbit/s @@ -518,90 +398,34 @@ enum v4l2_mpeg_audio_l2_bitrate - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K`` - - - 32 kbit/s - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K`` - - - 48 kbit/s - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K`` - - - 56 kbit/s - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K`` - - - 64 kbit/s - - - .. row 5 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K`` - - - 80 kbit/s - - - .. row 6 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K`` - - - 96 kbit/s - - - .. row 7 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K`` - - - 112 kbit/s - - - .. row 8 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K`` - - - 128 kbit/s - - - .. row 9 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K`` - - - 160 kbit/s - - - .. row 10 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K`` - - - 192 kbit/s - - - .. row 11 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K`` - - - 224 kbit/s - - - .. row 12 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K`` - - - 256 kbit/s - - - .. row 13 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K`` - - - 320 kbit/s - - - .. row 14 - - - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K`` - - - 384 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K`` + - 32 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K`` + - 48 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K`` + - 56 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K`` + - 64 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K`` + - 80 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K`` + - 96 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K`` + - 112 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K`` + - 128 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K`` + - 160 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K`` + - 192 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K`` + - 224 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K`` + - 256 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K`` + - 320 kbit/s + * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K`` + - 384 kbit/s @@ -619,90 +443,34 @@ enum v4l2_mpeg_audio_l3_bitrate - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K`` - - - 32 kbit/s - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K`` - - - 40 kbit/s - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K`` - - - 48 kbit/s - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K`` - - - 56 kbit/s - - - .. row 5 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K`` - - - 64 kbit/s - - - .. row 6 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K`` - - - 80 kbit/s - - - .. row 7 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K`` - - - 96 kbit/s - - - .. row 8 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K`` - - - 112 kbit/s - - - .. row 9 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K`` - - - 128 kbit/s - - - .. row 10 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K`` - - - 160 kbit/s - - - .. row 11 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K`` - - - 192 kbit/s - - - .. row 12 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K`` - - - 224 kbit/s - - - .. row 13 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K`` - - - 256 kbit/s - - - .. row 14 - - - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K`` - - - 320 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K`` + - 32 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K`` + - 40 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K`` + - 48 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K`` + - 56 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K`` + - 64 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K`` + - 80 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K`` + - 96 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K`` + - 112 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K`` + - 128 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K`` + - 160 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K`` + - 192 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K`` + - 224 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K`` + - 256 kbit/s + * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K`` + - 320 kbit/s @@ -723,120 +491,44 @@ enum v4l2_mpeg_audio_ac3_bitrate - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K`` - - - 32 kbit/s - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K`` - - - 40 kbit/s - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K`` - - - 48 kbit/s - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K`` - - - 56 kbit/s - - - .. row 5 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K`` - - - 64 kbit/s - - - .. row 6 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K`` - - - 80 kbit/s - - - .. row 7 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K`` - - - 96 kbit/s - - - .. row 8 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K`` - - - 112 kbit/s - - - .. row 9 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K`` - - - 128 kbit/s - - - .. row 10 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K`` - - - 160 kbit/s - - - .. row 11 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K`` - - - 192 kbit/s - - - .. row 12 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K`` - - - 224 kbit/s - - - .. row 13 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K`` - - - 256 kbit/s - - - .. row 14 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K`` - - - 320 kbit/s - - - .. row 15 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K`` - - - 384 kbit/s - - - .. row 16 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K`` - - - 448 kbit/s - - - .. row 17 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K`` - - - 512 kbit/s - - - .. row 18 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K`` - - - 576 kbit/s - - - .. row 19 - - - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K`` - - - 640 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K`` + - 32 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K`` + - 40 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K`` + - 48 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K`` + - 56 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K`` + - 64 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K`` + - 80 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K`` + - 96 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K`` + - 112 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K`` + - 128 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K`` + - 160 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K`` + - 192 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K`` + - 224 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K`` + - 256 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K`` + - 320 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K`` + - 384 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K`` + - 448 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K`` + - 512 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K`` + - 576 kbit/s + * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K`` + - 640 kbit/s @@ -854,30 +546,14 @@ enum v4l2_mpeg_audio_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_MODE_STEREO`` - - - Stereo - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO`` - - - Joint Stereo - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_MODE_DUAL`` - - - Bilingual - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_MODE_MONO`` - - - Mono + * - ``V4L2_MPEG_AUDIO_MODE_STEREO`` + - Stereo + * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO`` + - Joint Stereo + * - ``V4L2_MPEG_AUDIO_MODE_DUAL`` + - Bilingual + * - ``V4L2_MPEG_AUDIO_MODE_MONO`` + - Mono @@ -897,30 +573,14 @@ enum v4l2_mpeg_audio_mode_extension - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4`` - - - Subbands 4-31 in intensity stereo - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8`` - - - Subbands 8-31 in intensity stereo - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12`` - - - Subbands 12-31 in intensity stereo - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16`` - - - Subbands 16-31 in intensity stereo + * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4`` + - Subbands 4-31 in intensity stereo + * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8`` + - Subbands 8-31 in intensity stereo + * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12`` + - Subbands 12-31 in intensity stereo + * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16`` + - Subbands 16-31 in intensity stereo @@ -938,24 +598,12 @@ enum v4l2_mpeg_audio_emphasis - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE`` - - - None - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS`` - - - 50/15 microsecond emphasis - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17`` - - - CCITT J.17 + * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE`` + - None + * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS`` + - 50/15 microsecond emphasis + * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17`` + - CCITT J.17 @@ -973,18 +621,10 @@ enum v4l2_mpeg_audio_crc - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_CRC_NONE`` - - - None - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_CRC_CRC16`` - - - 16 bit parity check + * - ``V4L2_MPEG_AUDIO_CRC_NONE`` + - None + * - ``V4L2_MPEG_AUDIO_CRC_CRC16`` + - 16 bit parity check @@ -1011,42 +651,18 @@ enum v4l2_mpeg_audio_dec_playback - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO`` - - - Automatically determines the best playback mode. - - - .. row 2 - - - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO`` - - - Stereo playback. - - - .. row 3 - - - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT`` - - - Left channel playback. - - - .. row 4 - - - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT`` - - - Right channel playback. - - - .. row 5 - - - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO`` - - - Mono playback. - - - .. row 6 - - - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO`` - - - Stereo playback with swapped left and right channels. + * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO`` + - Automatically determines the best playback mode. + * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO`` + - Stereo playback. + * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT`` + - Left channel playback. + * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT`` + - Right channel playback. + * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO`` + - Mono playback. + * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO`` + - Stereo playback with swapped left and right channels. @@ -1073,24 +689,12 @@ enum v4l2_mpeg_video_encoding - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1`` - - - MPEG-1 Video encoding - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2`` - - - MPEG-2 Video encoding - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC`` - - - MPEG-4 AVC (H.264) Video encoding + * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1`` + - MPEG-1 Video encoding + * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2`` + - MPEG-2 Video encoding + * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC`` + - MPEG-4 AVC (H.264) Video encoding @@ -1108,22 +712,10 @@ enum v4l2_mpeg_video_aspect - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_ASPECT_1x1`` - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_ASPECT_4x3`` - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_ASPECT_16x9`` - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_ASPECT_221x100`` + * - ``V4L2_MPEG_VIDEO_ASPECT_1x1`` + * - ``V4L2_MPEG_VIDEO_ASPECT_4x3`` + * - ``V4L2_MPEG_VIDEO_ASPECT_16x9`` + * - ``V4L2_MPEG_VIDEO_ASPECT_221x100`` @@ -1153,18 +745,10 @@ enum v4l2_mpeg_video_bitrate_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR`` - - - Variable bitrate - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR`` - - - Constant bitrate + * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR`` + - Variable bitrate + * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR`` + - Constant bitrate @@ -1195,30 +779,14 @@ enum v4l2_mpeg_video_bitrate_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Bit 0:7 - - - V chrominance information - - - .. row 2 - - - Bit 8:15 - - - U chrominance information - - - .. row 3 - - - Bit 16:23 - - - Y luminance information - - - .. row 4 - - - Bit 24:31 - - - Must be zero. + * - Bit 0:7 + - V chrominance information + * - Bit 8:15 + - U chrominance information + * - Bit 16:23 + - Y luminance information + * - Bit 24:31 + - Must be zero. @@ -1262,114 +830,42 @@ enum v4l2_mpeg_video_h264_vui_sar_idc - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED`` - - - Unspecified - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1`` - - - 1x1 - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11`` - - - 12x11 - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11`` - - - 10x11 - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11`` - - - 16x11 - - - .. row 6 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33`` - - - 40x33 - - - .. row 7 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11`` - - - 24x11 - - - .. row 8 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11`` - - - 20x11 - - - .. row 9 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11`` - - - 32x11 - - - .. row 10 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33`` - - - 80x33 - - - .. row 11 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11`` - - - 18x11 - - - .. row 12 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11`` - - - 15x11 - - - .. row 13 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33`` - - - 64x33 - - - .. row 14 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99`` - - - 160x99 - - - .. row 15 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3`` - - - 4x3 - - - .. row 16 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2`` - - - 3x2 - - - .. row 17 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1`` - - - 2x1 - - - .. row 18 - - - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED`` - - - Extended SAR + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED`` + - Unspecified + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1`` + - 1x1 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11`` + - 12x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11`` + - 10x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11`` + - 16x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33`` + - 40x33 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11`` + - 24x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11`` + - 20x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11`` + - 32x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33`` + - 80x33 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11`` + - 18x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11`` + - 15x11 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33`` + - 64x33 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99`` + - 160x99 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3`` + - 4x3 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2`` + - 3x2 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1`` + - 2x1 + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED`` + - Extended SAR @@ -1396,102 +892,38 @@ enum v4l2_mpeg_video_h264_level - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0`` - - - Level 1.0 - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B`` - - - Level 1B - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1`` - - - Level 1.1 - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2`` - - - Level 1.2 - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3`` - - - Level 1.3 - - - .. row 6 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0`` - - - Level 2.0 - - - .. row 7 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1`` - - - Level 2.1 - - - .. row 8 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2`` - - - Level 2.2 - - - .. row 9 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0`` - - - Level 3.0 - - - .. row 10 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1`` - - - Level 3.1 - - - .. row 11 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2`` - - - Level 3.2 - - - .. row 12 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0`` - - - Level 4.0 - - - .. row 13 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1`` - - - Level 4.1 - - - .. row 14 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2`` - - - Level 4.2 - - - .. row 15 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0`` - - - Level 5.0 - - - .. row 16 - - - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1`` - - - Level 5.1 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0`` + - Level 1.0 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B`` + - Level 1B + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1`` + - Level 1.1 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2`` + - Level 1.2 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3`` + - Level 1.3 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0`` + - Level 2.0 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1`` + - Level 2.1 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2`` + - Level 2.2 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0`` + - Level 3.0 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1`` + - Level 3.1 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2`` + - Level 3.2 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0`` + - Level 4.0 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1`` + - Level 4.1 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2`` + - Level 4.2 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0`` + - Level 5.0 + * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1`` + - Level 5.1 @@ -1510,54 +942,22 @@ enum v4l2_mpeg_video_mpeg4_level - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_LEVEL_0`` - - - Level 0 - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_LEVEL_0B`` - - - Level 0b - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_LEVEL_1`` - - - Level 1 - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_LEVEL_2`` - - - Level 2 - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_LEVEL_3`` - - - Level 3 - - - .. row 6 - - - ``V4L2_MPEG_VIDEO_LEVEL_3B`` - - - Level 3b - - - .. row 7 - - - ``V4L2_MPEG_VIDEO_LEVEL_4`` - - - Level 4 - - - .. row 8 - - - ``V4L2_MPEG_VIDEO_LEVEL_5`` - - - Level 5 + * - ``V4L2_MPEG_VIDEO_LEVEL_0`` + - Level 0 + * - ``V4L2_MPEG_VIDEO_LEVEL_0B`` + - Level 0b + * - ``V4L2_MPEG_VIDEO_LEVEL_1`` + - Level 1 + * - ``V4L2_MPEG_VIDEO_LEVEL_2`` + - Level 2 + * - ``V4L2_MPEG_VIDEO_LEVEL_3`` + - Level 3 + * - ``V4L2_MPEG_VIDEO_LEVEL_3B`` + - Level 3b + * - ``V4L2_MPEG_VIDEO_LEVEL_4`` + - Level 4 + * - ``V4L2_MPEG_VIDEO_LEVEL_5`` + - Level 5 @@ -1576,108 +976,40 @@ enum v4l2_mpeg_video_h264_profile - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE`` - - - Baseline profile - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE`` - - - Constrained Baseline profile - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN`` - - - Main profile - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED`` - - - Extended profile - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH`` - - - High profile - - - .. row 6 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10`` - - - High 10 profile - - - .. row 7 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422`` - - - High 422 profile - - - .. row 8 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE`` - - - High 444 Predictive profile - - - .. row 9 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA`` - - - High 10 Intra profile - - - .. row 10 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA`` - - - High 422 Intra profile - - - .. row 11 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA`` - - - High 444 Intra profile - - - .. row 12 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA`` - - - CAVLC 444 Intra profile - - - .. row 13 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE`` - - - Scalable Baseline profile - - - .. row 14 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH`` - - - Scalable High profile - - - .. row 15 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA`` - - - Scalable High Intra profile - - - .. row 16 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH`` - - - Stereo High profile - - - .. row 17 - - - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH`` - - - Multiview High profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE`` + - Baseline profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE`` + - Constrained Baseline profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN`` + - Main profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED`` + - Extended profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH`` + - High profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10`` + - High 10 profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422`` + - High 422 profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE`` + - High 444 Predictive profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA`` + - High 10 Intra profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA`` + - High 422 Intra profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA`` + - High 444 Intra profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA`` + - CAVLC 444 Intra profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE`` + - Scalable Baseline profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH`` + - Scalable High profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA`` + - Scalable High Intra profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH`` + - Stereo High profile + * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH`` + - Multiview High profile @@ -1696,36 +1028,16 @@ enum v4l2_mpeg_video_mpeg4_profile - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE`` - - - Simple profile - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE`` - - - Advanced Simple profile - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_PROFILE_CORE`` - - - Core profile - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE`` - - - Simple Scalable profile - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY`` - - - + * - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE`` + - Simple profile + * - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE`` + - Advanced Simple profile + * - ``V4L2_MPEG_VIDEO_PROFILE_CORE`` + - Core profile + * - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE`` + - Simple Scalable profile + * - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY`` + - @@ -1750,24 +1062,12 @@ enum v4l2_mpeg_video_multi_slice_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE`` - - - Single slice per frame. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB`` - - - Multiple slices with set maximum number of macroblocks per slice. - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES`` - - - Multiple slice with set maximum size in bytes per slice. + * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE`` + - Single slice per frame. + * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB`` + - Multiple slices with set maximum number of macroblocks per slice. + * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES`` + - Multiple slice with set maximum size in bytes per slice. @@ -1799,23 +1099,12 @@ enum v4l2_mpeg_video_h264_loop_filter_mode - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED`` - - - Loop filter is enabled. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED`` - - - Loop filter is disabled. - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` - - - Loop filter is disabled at the slice boundary. + * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED`` + - Loop filter is enabled. + * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED`` + - Loop filter is disabled. + * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` + - Loop filter is disabled at the slice boundary. @@ -1842,18 +1131,10 @@ enum v4l2_mpeg_video_h264_entropy_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC`` - - - Use CAVLC entropy coding. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC`` - - - Use CABAC entropy coding. + * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC`` + - Use CAVLC entropy coding. + * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC`` + - Use CABAC entropy coding. @@ -2009,19 +1290,11 @@ enum v4l2_mpeg_video_header_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE`` - - - The stream header is returned separately in the first buffer. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME`` - - - The stream header is returned together with the first encoded - frame. + * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE`` + - The stream header is returned separately in the first buffer. + * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME`` + - The stream header is returned together with the first encoded + frame. @@ -2067,41 +1340,18 @@ enum v4l2_mpeg_video_h264_sei_fp_arrangement_type - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD`` - - - Pixels are alternatively from L and R. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN`` - - - L and R are interlaced by column. - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW`` - - - L and R are interlaced by row. - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE`` - - - L is on the left, R on the right. - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM`` - - - L is on top, R on bottom. - - - .. row 6 - - - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL`` - - - One view per frame. + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD`` + - Pixels are alternatively from L and R. + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN`` + - L and R are interlaced by column. + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW`` + - L and R are interlaced by row. + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE`` + - L is on the left, R on the right. + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM`` + - L is on top, R on bottom. + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL`` + - One view per frame. @@ -2126,49 +1376,22 @@ enum v4l2_mpeg_video_h264_fmo_map_type - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES`` - - - Slices are interleaved one after other with macroblocks in run - length order. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES`` - - - Scatters the macroblocks based on a mathematical function known to - both encoder and decoder. - - - .. row 3 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER`` - - - Macroblocks arranged in rectangular areas or regions of interest. - - - .. row 4 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT`` - - - Slice groups grow in a cyclic way from centre to outwards. - - - .. row 5 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN`` - - - Slice groups grow in raster scan pattern from left to right. - - - .. row 6 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN`` - - - Slice groups grow in wipe scan pattern from top to bottom. - - - .. row 7 - - - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT`` - - - User defined map type. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES`` + - Slices are interleaved one after other with macroblocks in run + length order. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES`` + - Scatters the macroblocks based on a mathematical function known to + both encoder and decoder. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER`` + - Macroblocks arranged in rectangular areas or regions of interest. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT`` + - Slice groups grow in a cyclic way from centre to outwards. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN`` + - Slice groups grow in raster scan pattern from left to right. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN`` + - Slice groups grow in wipe scan pattern from top to bottom. + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT`` + - User defined map type. @@ -2190,18 +1413,10 @@ enum v4l2_mpeg_video_h264_fmo_change_dir - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT`` - - - Raster scan or wipe right. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT`` - - - Reverse raster scan or wipe left. + * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT`` + - Raster scan or wipe right. + * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT`` + - Reverse raster scan or wipe left. @@ -2228,18 +1443,10 @@ enum v4l2_mpeg_video_h264_fmo_change_dir - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Bit 0:15 - - - Slice ID - - - .. row 2 - - - Bit 16:32 - - - Slice position or order + * - Bit 0:15 + - Slice ID + * - Bit 16:32 + - Slice position or order @@ -2261,18 +1468,10 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B`` - - - Hierarchical B coding. - - - .. row 2 - - - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P`` - - - Hierarchical P coding. + * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B`` + - Hierarchical B coding. + * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P`` + - Hierarchical P coding. @@ -2291,18 +1490,10 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Bit 0:15 - - - QP value - - - .. row 2 - - - Bit 16:32 - - - Layer number + * - Bit 0:15 + - QP value + * - Bit 16:32 + - Layer number @@ -2354,30 +1545,14 @@ MFC 5.1 Control IDs :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Bit 0:7 - - - V chrominance information - - - .. row 2 - - - Bit 8:15 - - - U chrominance information - - - .. row 3 - - - Bit 16:23 - - - Y luminance information - - - .. row 4 - - - Bit 24:31 - - - Must be zero. + * - Bit 0:7 + - V chrominance information + * - Bit 8:15 + - U chrominance information + * - Bit 16:23 + - Y luminance information + * - Bit 24:31 + - Must be zero. @@ -2436,25 +1611,14 @@ enum v4l2_mpeg_mfc51_video_frame_skip_mode - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED`` - - - Frame skip mode is disabled. - - - .. row 2 - - - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT`` - - - Frame skip mode enabled and buffer limit is set by the chosen - level and is defined by the standard. - - - .. row 3 - - - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT`` - - - Frame skip mode enabled and buffer limit is set by the VBV - (MPEG1/2/4) or CPB (H264) buffer size control. + * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED`` + - Frame skip mode is disabled. + * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT`` + - Frame skip mode enabled and buffer limit is set by the chosen + level and is defined by the standard. + * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT`` + - Frame skip mode enabled and buffer limit is set by the VBV + (MPEG1/2/4) or CPB (H264) buffer size control. @@ -2485,24 +1649,12 @@ enum v4l2_mpeg_mfc51_video_force_frame_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED`` - - - Forcing a specific frame type disabled. - - - .. row 2 - - - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME`` - - - Force an I-frame. - - - .. row 3 - - - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED`` - - - Force a non-coded frame. + * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED`` + - Forcing a specific frame type disabled. + * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME`` + - Force an I-frame. + * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED`` + - Force a non-coded frame. @@ -2534,18 +1686,10 @@ enum v4l2_mpeg_cx2341x_video_spatial_filter_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL`` - - - Choose the filter manually - - - .. row 2 - - - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO`` - - - Choose the filter automatically + * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL`` + - Choose the filter manually + * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO`` + - Choose the filter automatically @@ -2570,36 +1714,16 @@ enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF`` - - - No filter - - - .. row 2 - - - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR`` - - - One-dimensional horizontal - - - .. row 3 - - - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT`` - - - One-dimensional vertical - - - .. row 4 - - - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE`` - - - Two-dimensional separable - - - .. row 5 - - - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE`` - - - Two-dimensional symmetrical non-separable + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF`` + - No filter + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR`` + - One-dimensional horizontal + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT`` + - One-dimensional vertical + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE`` + - Two-dimensional separable + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE`` + - Two-dimensional symmetrical non-separable @@ -2618,18 +1742,10 @@ enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF`` - - - No filter - - - .. row 2 - - - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR`` - - - One-dimensional horizontal + * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF`` + - No filter + * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR`` + - One-dimensional horizontal @@ -2648,18 +1764,10 @@ enum v4l2_mpeg_cx2341x_video_temporal_filter_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL`` - - - Choose the filter manually - - - .. row 2 - - - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO`` - - - Choose the filter automatically + * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL`` + - Choose the filter manually + * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO`` + - Choose the filter automatically @@ -2681,36 +1789,16 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF`` - - - No filter - - - .. row 2 - - - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR`` - - - Horizontal filter - - - .. row 3 - - - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT`` - - - Vertical filter - - - .. row 4 - - - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT`` - - - Horizontal and vertical filter - - - .. row 5 - - - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG`` - - - Diagonal filter + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF`` + - No filter + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR`` + - Horizontal filter + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT`` + - Vertical filter + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT`` + - Horizontal and vertical filter + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG`` + - Diagonal filter @@ -2766,30 +1854,14 @@ enum v4l2_vp8_num_partitions - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION`` - - - 1 coefficient partition - - - .. row 2 - - - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS`` - - - 2 coefficient partitions - - - .. row 3 - - - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS`` - - - 4 coefficient partitions - - - .. row 4 - - - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS`` - - - 8 coefficient partitions + * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION`` + - 1 coefficient partition + * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS`` + - 2 coefficient partitions + * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS`` + - 4 coefficient partitions + * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS`` + - 8 coefficient partitions @@ -2811,26 +1883,15 @@ enum v4l2_vp8_num_ref_frames - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME`` - - - Last encoded frame will be searched - - - .. row 2 - - - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME`` - - - Two frames will be searched among the last encoded frame, the - golden frame and the alternate reference (altref) frame. The - encoder implementation will decide which two are chosen. - - - .. row 3 - - - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME`` - - - The last encoded frame, the golden frame and the altref frame will - be searched. + * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME`` + - Last encoded frame will be searched + * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME`` + - Two frames will be searched among the last encoded frame, the + golden frame and the alternate reference (altref) frame. The + encoder implementation will decide which two are chosen. + * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME`` + - The last encoded frame, the golden frame and the altref frame will + be searched. @@ -2869,20 +1930,13 @@ enum v4l2_vp8_golden_frame_sel - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV`` - - - Use the (n-2)th frame as a golden frame, current frame index being - 'n'. - - - .. row 2 - - - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD`` - - - Use the previous specific frame indicated by - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a - golden frame. + * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV`` + - Use the (n-2)th frame as a golden frame, current frame index being + 'n'. + * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD`` + - Use the previous specific frame indicated by + ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a + golden frame. .. raw:: latex @@ -2942,30 +1996,14 @@ enum v4l2_exposure_auto_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_EXPOSURE_AUTO`` - - - Automatic exposure time, automatic iris aperture. - - - .. row 2 - - - ``V4L2_EXPOSURE_MANUAL`` - - - Manual exposure time, manual iris. - - - .. row 3 - - - ``V4L2_EXPOSURE_SHUTTER_PRIORITY`` - - - Manual exposure time, auto iris. - - - .. row 4 - - - ``V4L2_EXPOSURE_APERTURE_PRIORITY`` - - - Auto exposure time, manual iris. + * - ``V4L2_EXPOSURE_AUTO`` + - Automatic exposure time, automatic iris aperture. + * - ``V4L2_EXPOSURE_MANUAL`` + - Manual exposure time, manual iris. + * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY`` + - Manual exposure time, auto iris. + * - ``V4L2_EXPOSURE_APERTURE_PRIORITY`` + - Auto exposure time, manual iris. @@ -3008,34 +2046,19 @@ enum v4l2_exposure_metering - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_EXPOSURE_METERING_AVERAGE`` - - - Use the light information coming from the entire frame and average - giving no weighting to any particular portion of the metered area. - - - .. row 2 - - - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED`` - - - Average the light information coming from the entire frame giving - priority to the center of the metered area. - - - .. row 3 - - - ``V4L2_EXPOSURE_METERING_SPOT`` - - - Measure only very small area at the center of the frame. - - - .. row 4 - - - ``V4L2_EXPOSURE_METERING_MATRIX`` - - - A multi-zone metering. The light intensity is measured in several - points of the frame and the results are combined. The algorithm of - the zones selection and their significance in calculating the - final value is device dependent. + * - ``V4L2_EXPOSURE_METERING_AVERAGE`` + - Use the light information coming from the entire frame and average + giving no weighting to any particular portion of the metered area. + * - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED`` + - Average the light information coming from the entire frame giving + priority to the center of the metered area. + * - ``V4L2_EXPOSURE_METERING_SPOT`` + - Measure only very small area at the center of the frame. + * - ``V4L2_EXPOSURE_METERING_MATRIX`` + - A multi-zone metering. The light intensity is measured in several + points of the frame and the results are combined. The algorithm of + the zones selection and their significance in calculating the + final value is device dependent. @@ -3115,30 +2138,15 @@ enum v4l2_exposure_metering - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_AUTO_FOCUS_STATUS_IDLE`` - - - Automatic focus is not active. - - - .. row 2 - - - ``V4L2_AUTO_FOCUS_STATUS_BUSY`` - - - Automatic focusing is in progress. - - - .. row 3 - - - ``V4L2_AUTO_FOCUS_STATUS_REACHED`` - - - Focus has been reached. - - - .. row 4 - - - ``V4L2_AUTO_FOCUS_STATUS_FAILED`` - - - Automatic focus has failed, the driver will not transition from - this state until another action is performed by an application. + * - ``V4L2_AUTO_FOCUS_STATUS_IDLE`` + - Automatic focus is not active. + * - ``V4L2_AUTO_FOCUS_STATUS_BUSY`` + - Automatic focusing is in progress. + * - ``V4L2_AUTO_FOCUS_STATUS_REACHED`` + - Focus has been reached. + * - ``V4L2_AUTO_FOCUS_STATUS_FAILED`` + - Automatic focus has failed, the driver will not transition from + this state until another action is performed by an application. @@ -3156,32 +2164,16 @@ enum v4l2_auto_focus_range - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_AUTO_FOCUS_RANGE_AUTO`` - - - The camera automatically selects the focus range. - - - .. row 2 - - - ``V4L2_AUTO_FOCUS_RANGE_NORMAL`` - - - Normal distance range, limited for best automatic focus - performance. - - - .. row 3 - - - ``V4L2_AUTO_FOCUS_RANGE_MACRO`` - - - Macro (close-up) auto focus. The camera will use its minimum - possible distance for auto focus. - - - .. row 4 - - - ``V4L2_AUTO_FOCUS_RANGE_INFINITY`` - - - The lens is set to focus on an object at infinite distance. + * - ``V4L2_AUTO_FOCUS_RANGE_AUTO`` + - The camera automatically selects the focus range. + * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL`` + - Normal distance range, limited for best automatic focus + performance. + * - ``V4L2_AUTO_FOCUS_RANGE_MACRO`` + - Macro (close-up) auto focus. The camera will use its minimum + possible distance for auto focus. + * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY`` + - The lens is set to focus on an object at infinite distance. @@ -3247,76 +2239,37 @@ enum v4l2_auto_n_preset_white_balance - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_WHITE_BALANCE_MANUAL`` - - - Manual white balance. - - - .. row 2 - - - ``V4L2_WHITE_BALANCE_AUTO`` - - - Automatic white balance adjustments. - - - .. row 3 - - - ``V4L2_WHITE_BALANCE_INCANDESCENT`` - - - White balance setting for incandescent (tungsten) lighting. It - generally cools down the colors and corresponds approximately to - 2500...3500 K color temperature range. - - - .. row 4 - - - ``V4L2_WHITE_BALANCE_FLUORESCENT`` - - - White balance preset for fluorescent lighting. It corresponds - approximately to 4000...5000 K color temperature. - - - .. row 5 - - - ``V4L2_WHITE_BALANCE_FLUORESCENT_H`` - - - With this setting the camera will compensate for fluorescent H - lighting. - - - .. row 6 - - - ``V4L2_WHITE_BALANCE_HORIZON`` - - - White balance setting for horizon daylight. It corresponds - approximately to 5000 K color temperature. - - - .. row 7 - - - ``V4L2_WHITE_BALANCE_DAYLIGHT`` - - - White balance preset for daylight (with clear sky). It corresponds - approximately to 5000...6500 K color temperature. - - - .. row 8 - - - ``V4L2_WHITE_BALANCE_FLASH`` - - - With this setting the camera will compensate for the flash light. - It slightly warms up the colors and corresponds roughly to - 5000...5500 K color temperature. - - - .. row 9 - - - ``V4L2_WHITE_BALANCE_CLOUDY`` - - - White balance preset for moderately overcast sky. This option - corresponds approximately to 6500...8000 K color temperature - range. - - - .. row 10 - - - ``V4L2_WHITE_BALANCE_SHADE`` - - - White balance preset for shade or heavily overcast sky. It - corresponds approximately to 9000...10000 K color temperature. + * - ``V4L2_WHITE_BALANCE_MANUAL`` + - Manual white balance. + * - ``V4L2_WHITE_BALANCE_AUTO`` + - Automatic white balance adjustments. + * - ``V4L2_WHITE_BALANCE_INCANDESCENT`` + - White balance setting for incandescent (tungsten) lighting. It + generally cools down the colors and corresponds approximately to + 2500...3500 K color temperature range. + * - ``V4L2_WHITE_BALANCE_FLUORESCENT`` + - White balance preset for fluorescent lighting. It corresponds + approximately to 4000...5000 K color temperature. + * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H`` + - With this setting the camera will compensate for fluorescent H + lighting. + * - ``V4L2_WHITE_BALANCE_HORIZON`` + - White balance setting for horizon daylight. It corresponds + approximately to 5000 K color temperature. + * - ``V4L2_WHITE_BALANCE_DAYLIGHT`` + - White balance preset for daylight (with clear sky). It corresponds + approximately to 5000...6500 K color temperature. + * - ``V4L2_WHITE_BALANCE_FLASH`` + - With this setting the camera will compensate for the flash light. + It slightly warms up the colors and corresponds roughly to + 5000...5500 K color temperature. + * - ``V4L2_WHITE_BALANCE_CLOUDY`` + - White balance preset for moderately overcast sky. This option + corresponds approximately to 6500...8000 K color temperature + range. + * - ``V4L2_WHITE_BALANCE_SHADE`` + - White balance preset for shade or heavily overcast sky. It + corresponds approximately to 9000...10000 K color temperature. @@ -3362,18 +2315,10 @@ enum v4l2_iso_sensitivity_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` - - - Manual ISO sensitivity. - - - .. row 2 - - - ``V4L2_CID_ISO_SENSITIVITY_AUTO`` - - - Automatic ISO sensitivity adjustments. + * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` + - Manual ISO sensitivity. + * - ``V4L2_CID_ISO_SENSITIVITY_AUTO`` + - Automatic ISO sensitivity adjustments. @@ -3400,126 +2345,71 @@ enum v4l2_scene_mode - :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_SCENE_MODE_NONE`` - - - The scene mode feature is disabled. - - - .. row 2 - - - ``V4L2_SCENE_MODE_BACKLIGHT`` - - - Backlight. Compensates for dark shadows when light is coming from - behind a subject, also by automatically turning on the flash. - - - .. row 3 - - - ``V4L2_SCENE_MODE_BEACH_SNOW`` - - - Beach and snow. This mode compensates for all-white or bright - scenes, which tend to look gray and low contrast, when camera's - automatic exposure is based on an average scene brightness. To - compensate, this mode automatically slightly overexposes the - frames. The white balance may also be adjusted to compensate for - the fact that reflected snow looks bluish rather than white. - - - .. row 4 - - - ``V4L2_SCENE_MODE_CANDLELIGHT`` - - - Candle light. The camera generally raises the ISO sensitivity and - lowers the shutter speed. This mode compensates for relatively - close subject in the scene. The flash is disabled in order to - preserve the ambiance of the light. - - - .. row 5 - - - ``V4L2_SCENE_MODE_DAWN_DUSK`` - - - Dawn and dusk. Preserves the colors seen in low natural light - before dusk and after down. The camera may turn off the flash, and - automatically focus at infinity. It will usually boost saturation - and lower the shutter speed. - - - .. row 6 - - - ``V4L2_SCENE_MODE_FALL_COLORS`` - - - Fall colors. Increases saturation and adjusts white balance for - color enhancement. Pictures of autumn leaves get saturated reds - and yellows. - - - .. row 7 - - - ``V4L2_SCENE_MODE_FIREWORKS`` - - - Fireworks. Long exposure times are used to capture the expanding - burst of light from a firework. The camera may invoke image - stabilization. - - - .. row 8 - - - ``V4L2_SCENE_MODE_LANDSCAPE`` - - - Landscape. The camera may choose a small aperture to provide deep - depth of field and long exposure duration to help capture detail - in dim light conditions. The focus is fixed at infinity. Suitable - for distant and wide scenery. - - - .. row 9 - - - ``V4L2_SCENE_MODE_NIGHT`` - - - Night, also known as Night Landscape. Designed for low light - conditions, it preserves detail in the dark areas without blowing - out bright objects. The camera generally sets itself to a - medium-to-high ISO sensitivity, with a relatively long exposure - time, and turns flash off. As such, there will be increased image - noise and the possibility of blurred image. - - - .. row 10 - - - ``V4L2_SCENE_MODE_PARTY_INDOOR`` - - - Party and indoor. Designed to capture indoor scenes that are lit - by indoor background lighting as well as the flash. The camera - usually increases ISO sensitivity, and adjusts exposure for the - low light conditions. - - - .. row 11 - - - ``V4L2_SCENE_MODE_PORTRAIT`` - - - Portrait. The camera adjusts the aperture so that the depth of - field is reduced, which helps to isolate the subject against a - smooth background. Most cameras recognize the presence of faces in - the scene and focus on them. The color hue is adjusted to enhance - skin tones. The intensity of the flash is often reduced. - - - .. row 12 - - - ``V4L2_SCENE_MODE_SPORTS`` - - - Sports. Significantly increases ISO and uses a fast shutter speed - to freeze motion of rapidly-moving subjects. Increased image noise - may be seen in this mode. - - - .. row 13 - - - ``V4L2_SCENE_MODE_SUNSET`` - - - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps - up the saturation. - - - .. row 14 - - - ``V4L2_SCENE_MODE_TEXT`` - - - Text. It applies extra contrast and sharpness, it is typically a - black-and-white mode optimized for readability. Automatic focus - may be switched to close-up mode and this setting may also involve - some lens-distortion correction. + * - ``V4L2_SCENE_MODE_NONE`` + - The scene mode feature is disabled. + * - ``V4L2_SCENE_MODE_BACKLIGHT`` + - Backlight. Compensates for dark shadows when light is coming from + behind a subject, also by automatically turning on the flash. + * - ``V4L2_SCENE_MODE_BEACH_SNOW`` + - Beach and snow. This mode compensates for all-white or bright + scenes, which tend to look gray and low contrast, when camera's + automatic exposure is based on an average scene brightness. To + compensate, this mode automatically slightly overexposes the + frames. The white balance may also be adjusted to compensate for + the fact that reflected snow looks bluish rather than white. + * - ``V4L2_SCENE_MODE_CANDLELIGHT`` + - Candle light. The camera generally raises the ISO sensitivity and + lowers the shutter speed. This mode compensates for relatively + close subject in the scene. The flash is disabled in order to + preserve the ambiance of the light. + * - ``V4L2_SCENE_MODE_DAWN_DUSK`` + - Dawn and dusk. Preserves the colors seen in low natural light + before dusk and after down. The camera may turn off the flash, and + automatically focus at infinity. It will usually boost saturation + and lower the shutter speed. + * - ``V4L2_SCENE_MODE_FALL_COLORS`` + - Fall colors. Increases saturation and adjusts white balance for + color enhancement. Pictures of autumn leaves get saturated reds + and yellows. + * - ``V4L2_SCENE_MODE_FIREWORKS`` + - Fireworks. Long exposure times are used to capture the expanding + burst of light from a firework. The camera may invoke image + stabilization. + * - ``V4L2_SCENE_MODE_LANDSCAPE`` + - Landscape. The camera may choose a small aperture to provide deep + depth of field and long exposure duration to help capture detail + in dim light conditions. The focus is fixed at infinity. Suitable + for distant and wide scenery. + * - ``V4L2_SCENE_MODE_NIGHT`` + - Night, also known as Night Landscape. Designed for low light + conditions, it preserves detail in the dark areas without blowing + out bright objects. The camera generally sets itself to a + medium-to-high ISO sensitivity, with a relatively long exposure + time, and turns flash off. As such, there will be increased image + noise and the possibility of blurred image. + * - ``V4L2_SCENE_MODE_PARTY_INDOOR`` + - Party and indoor. Designed to capture indoor scenes that are lit + by indoor background lighting as well as the flash. The camera + usually increases ISO sensitivity, and adjusts exposure for the + low light conditions. + * - ``V4L2_SCENE_MODE_PORTRAIT`` + - Portrait. The camera adjusts the aperture so that the depth of + field is reduced, which helps to isolate the subject against a + smooth background. Most cameras recognize the presence of faces in + the scene and focus on them. The color hue is adjusted to enhance + skin tones. The intensity of the flash is often reduced. + * - ``V4L2_SCENE_MODE_SPORTS`` + - Sports. Significantly increases ISO and uses a fast shutter speed + to freeze motion of rapidly-moving subjects. Increased image noise + may be seen in this mode. + * - ``V4L2_SCENE_MODE_SUNSET`` + - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps + up the saturation. + * - ``V4L2_SCENE_MODE_TEXT`` + - Text. It applies extra contrast and sharpness, it is typically a + black-and-white mode optimized for readability. Automatic focus + may be switched to close-up mode and this setting may also involve + some lens-distortion correction. @@ -3543,24 +2433,12 @@ enum v4l2_scene_mode - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_LOCK_EXPOSURE`` - - - Automatic exposure adjustments lock. - - - .. row 2 - - - ``V4L2_LOCK_WHITE_BALANCE`` - - - Automatic white balance adjustments lock. - - - .. row 3 - - - ``V4L2_LOCK_FOCUS`` - - - Automatic focus lock. + * - ``V4L2_LOCK_EXPOSURE`` + - Automatic exposure adjustments lock. + * - ``V4L2_LOCK_WHITE_BALANCE`` + - Automatic white balance adjustments lock. + * - ``V4L2_LOCK_FOCUS`` + - Automatic focus lock. @@ -3736,24 +2614,12 @@ enum v4l2_preemphasis - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_PREEMPHASIS_DISABLED`` - - - No pre-emphasis is applied. - - - .. row 2 - - - ``V4L2_PREEMPHASIS_50_uS`` - - - A pre-emphasis of 50 uS is used. - - - .. row 3 - - - ``V4L2_PREEMPHASIS_75_uS`` - - - A pre-emphasis of 75 uS is used. + * - ``V4L2_PREEMPHASIS_DISABLED`` + - No pre-emphasis is applied. + * - ``V4L2_PREEMPHASIS_50_uS`` + - A pre-emphasis of 50 uS is used. + * - ``V4L2_PREEMPHASIS_75_uS`` + - A pre-emphasis of 75 uS is used. @@ -3837,24 +2703,12 @@ Flash Control IDs :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_FLASH_LED_MODE_NONE`` - - - Off. - - - .. row 2 - - - ``V4L2_FLASH_LED_MODE_FLASH`` - - - Flash mode. - - - .. row 3 - - - ``V4L2_FLASH_LED_MODE_TORCH`` - - - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY. + * - ``V4L2_FLASH_LED_MODE_NONE`` + - Off. + * - ``V4L2_FLASH_LED_MODE_FLASH`` + - Flash mode. + * - ``V4L2_FLASH_LED_MODE_TORCH`` + - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY. @@ -3867,20 +2721,13 @@ Flash Control IDs :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE`` - - - The flash strobe is triggered by using the - V4L2_CID_FLASH_STROBE control. - - - .. row 2 - - - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL`` - - - The flash strobe is triggered by an external source. Typically - this is a sensor, which makes it possible to synchronises the - flash strobe start to exposure start. + * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE`` + - The flash strobe is triggered by using the + V4L2_CID_FLASH_STROBE control. + * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL`` + - The flash strobe is triggered by an external source. Typically + this is a sensor, which makes it possible to synchronises the + flash strobe start to exposure start. @@ -3933,69 +2780,33 @@ Flash Control IDs :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_FLASH_FAULT_OVER_VOLTAGE`` - - - Flash controller voltage to the flash LED has exceeded the limit - specific to the flash controller. - - - .. row 2 - - - ``V4L2_FLASH_FAULT_TIMEOUT`` - - - The flash strobe was still on when the timeout set by the user --- - V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash - controllers may set this in all such conditions. - - - .. row 3 - - - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE`` - - - The flash controller has overheated. - - - .. row 4 - - - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT`` - - - The short circuit protection of the flash controller has been - triggered. - - - .. row 5 - - - ``V4L2_FLASH_FAULT_OVER_CURRENT`` - - - Current in the LED power supply has exceeded the limit specific to - the flash controller. - - - .. row 6 - - - ``V4L2_FLASH_FAULT_INDICATOR`` - - - The flash controller has detected a short or open circuit - condition on the indicator LED. - - - .. row 7 - - - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE`` - - - Flash controller voltage to the flash LED has been below the - minimum limit specific to the flash controller. - - - .. row 8 - - - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE`` - - - The input voltage of the flash controller is below the limit under - which strobing the flash at full current will not be possible.The - condition persists until this flag is no longer set. - - - .. row 9 - - - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE`` - - - The temperature of the LED has exceeded its allowed upper limit. + * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE`` + - Flash controller voltage to the flash LED has exceeded the limit + specific to the flash controller. + * - ``V4L2_FLASH_FAULT_TIMEOUT`` + - The flash strobe was still on when the timeout set by the user --- + V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash + controllers may set this in all such conditions. + * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE`` + - The flash controller has overheated. + * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT`` + - The short circuit protection of the flash controller has been + triggered. + * - ``V4L2_FLASH_FAULT_OVER_CURRENT`` + - Current in the LED power supply has exceeded the limit specific to + the flash controller. + * - ``V4L2_FLASH_FAULT_INDICATOR`` + - The flash controller has detected a short or open circuit + condition on the indicator LED. + * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE`` + - Flash controller voltage to the flash LED has been below the + minimum limit specific to the flash controller. + * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE`` + - The input voltage of the flash controller is below the limit under + which strobing the flash at full current will not be possible.The + condition persists until this flag is no longer set. + * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE`` + - The temperature of the LED has exceeded its allowed upper limit. @@ -4044,42 +2855,18 @@ JPEG Control IDs :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444`` - - - No chroma subsampling, each pixel has Y, Cr and Cb values. - - - .. row 2 - - - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422`` - - - Horizontally subsample Cr, Cb components by a factor of 2. - - - .. row 3 - - - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420`` - - - Subsample Cr, Cb components horizontally and vertically by 2. - - - .. row 4 - - - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411`` - - - Horizontally subsample Cr, Cb components by a factor of 4. - - - .. row 5 - - - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410`` - - - Subsample Cr, Cb components horizontally by 4 and vertically by 2. - - - .. row 6 - - - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY`` - - - Use only luminance component. + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444`` + - No chroma subsampling, each pixel has Y, Cr and Cb values. + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422`` + - Horizontally subsample Cr, Cb components by a factor of 2. + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420`` + - Subsample Cr, Cb components horizontally and vertically by 2. + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411`` + - Horizontally subsample Cr, Cb components by a factor of 4. + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410`` + - Subsample Cr, Cb components horizontally by 4 and vertically by 2. + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY`` + - Use only luminance component. @@ -4121,36 +2908,16 @@ JPEG Control IDs :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_JPEG_ACTIVE_MARKER_APP0`` - - - Application data segment APP\ :sub:`0`. - - - .. row 2 - - - ``V4L2_JPEG_ACTIVE_MARKER_APP1`` - - - Application data segment APP\ :sub:`1`. - - - .. row 3 - - - ``V4L2_JPEG_ACTIVE_MARKER_COM`` - - - Comment segment. - - - .. row 4 - - - ``V4L2_JPEG_ACTIVE_MARKER_DQT`` - - - Quantization tables segment. - - - .. row 5 - - - ``V4L2_JPEG_ACTIVE_MARKER_DHT`` - - - Huffman tables segment. + * - ``V4L2_JPEG_ACTIVE_MARKER_APP0`` + - Application data segment APP\ :sub:`0`. + * - ``V4L2_JPEG_ACTIVE_MARKER_APP1`` + - Application data segment APP\ :sub:`1`. + * - ``V4L2_JPEG_ACTIVE_MARKER_COM`` + - Comment segment. + * - ``V4L2_JPEG_ACTIVE_MARKER_DQT`` + - Quantization tables segment. + * - ``V4L2_JPEG_ACTIVE_MARKER_DHT`` + - Huffman tables segment. @@ -4355,40 +3122,20 @@ enum v4l2_dv_it_content_type - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS`` - - - Graphics content. Pixel data should be passed unfiltered and - without analog reconstruction. - - - .. row 2 - - - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO`` - - - Photo content. The content is derived from digital still pictures. - The content should be passed through with minimal scaling and - picture enhancements. - - - .. row 3 - - - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA`` - - - Cinema content. - - - .. row 4 - - - ``V4L2_DV_IT_CONTENT_TYPE_GAME`` - - - Game content. Audio and video latency should be minimized. - - - .. row 5 - - - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC`` - - - No IT Content information is available and the ITC bit in the AVI - InfoFrame is set to 0. + * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS`` + - Graphics content. Pixel data should be passed unfiltered and + without analog reconstruction. + * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO`` + - Photo content. The content is derived from digital still pictures. + The content should be passed through with minimal scaling and + picture enhancements. + * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA`` + - Cinema content. + * - ``V4L2_DV_IT_CONTENT_TYPE_GAME`` + - Game content. Audio and video latency should be minimized. + * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC`` + - No IT Content information is available and the ITC bit in the AVI + InfoFrame is set to 0. @@ -4508,24 +3255,12 @@ enum v4l2_deemphasis - :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_DEEMPHASIS_DISABLED`` - - - No de-emphasis is applied. - - - .. row 2 - - - ``V4L2_DEEMPHASIS_50_uS`` - - - A de-emphasis of 50 uS is used. - - - .. row 3 - - - ``V4L2_DEEMPHASIS_75_uS`` - - - A de-emphasis of 75 uS is used. + * - ``V4L2_DEEMPHASIS_DISABLED`` + - No de-emphasis is applied. + * - ``V4L2_DEEMPHASIS_50_uS`` + - A de-emphasis of 50 uS is used. + * - ``V4L2_DEEMPHASIS_75_uS`` + - A de-emphasis of 75 uS is used. @@ -4558,37 +3293,21 @@ Detect Control IDs :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - ``V4L2_DETECT_MD_MODE_DISABLED`` - - - Disable motion detection. - - - .. row 2 - - - ``V4L2_DETECT_MD_MODE_GLOBAL`` - - - Use a single motion detection threshold. - - - .. row 3 - - - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID`` - - - The image is divided into a grid, each cell with its own motion - detection threshold. These thresholds are set through the - ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control. - - - .. row 4 - - - ``V4L2_DETECT_MD_MODE_REGION_GRID`` - - - The image is divided into a grid, each cell with its own region - value that specifies which per-region motion detection thresholds - should be used. Each region has its own thresholds. How these - per-region thresholds are set up is driver-specific. The region - values for the grid are set through the - ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control. + * - ``V4L2_DETECT_MD_MODE_DISABLED`` + - Disable motion detection. + * - ``V4L2_DETECT_MD_MODE_GLOBAL`` + - Use a single motion detection threshold. + * - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID`` + - The image is divided into a grid, each cell with its own motion + detection threshold. These thresholds are set through the + ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control. + * - ``V4L2_DETECT_MD_MODE_REGION_GRID`` + - The image is divided into a grid, each cell with its own region + value that specifies which per-region motion detection thresholds + should be used. Each region has its own thresholds. How these + per-region thresholds are set up is driver-specific. The region + values for the grid are set through the + ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control. diff --git a/Documentation/media/uapi/v4l/field-order.rst b/Documentation/media/uapi/v4l/field-order.rst index 0d71d5a3fbde..50779a67c3fd 100644 --- a/Documentation/media/uapi/v4l/field-order.rst +++ b/Documentation/media/uapi/v4l/field-order.rst @@ -64,125 +64,75 @@ enum v4l2_field :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_FIELD_ANY`` - - - 0 - - - Applications request this field order when any one of the - ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or - ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose - depending on hardware capabilities or e. g. the requested image - size, and return the actual field order. Drivers must never return - ``V4L2_FIELD_ANY``. If multiple field orders are possible the - driver must choose one of the possible field orders during - :ref:`VIDIOC_S_FMT ` or - :ref:`VIDIOC_TRY_FMT `. struct - :c:type:`v4l2_buffer` ``field`` can never be - ``V4L2_FIELD_ANY``. - - - .. row 2 - - - ``V4L2_FIELD_NONE`` - - - 1 - - - Images are in progressive format, not interlaced. The driver may - also indicate this order when it cannot distinguish between - ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``. - - - .. row 3 - - - ``V4L2_FIELD_TOP`` - - - 2 - - - Images consist of the top (aka odd) field only. - - - .. row 4 - - - ``V4L2_FIELD_BOTTOM`` - - - 3 - - - Images consist of the bottom (aka even) field only. Applications - may wish to prevent a device from capturing interlaced images - because they will have "comb" or "feathering" artefacts around - moving objects. - - - .. row 5 - - - ``V4L2_FIELD_INTERLACED`` - - - 4 - - - Images contain both fields, interleaved line by line. The temporal - order of the fields (whether the top or bottom field is first - transmitted) depends on the current video standard. M/NTSC - transmits the bottom field first, all other standards the top - field first. - - - .. row 6 - - - ``V4L2_FIELD_SEQ_TB`` - - - 5 - - - Images contain both fields, the top field lines are stored first - in memory, immediately followed by the bottom field lines. Fields - are always stored in temporal order, the older one first in - memory. Image sizes refer to the frame, not fields. - - - .. row 7 - - - ``V4L2_FIELD_SEQ_BT`` - - - 6 - - - Images contain both fields, the bottom field lines are stored - first in memory, immediately followed by the top field lines. - Fields are always stored in temporal order, the older one first in - memory. Image sizes refer to the frame, not fields. - - - .. row 8 - - - ``V4L2_FIELD_ALTERNATE`` - - - 7 - - - The two fields of a frame are passed in separate buffers, in - temporal order, i. e. the older one first. To indicate the field - parity (whether the current field is a top or bottom field) the - driver or application, depending on data direction, must set - struct :c:type:`v4l2_buffer` ``field`` to - ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive - fields pair to build a frame. If fields are successive, without - any dropped fields between them (fields can drop individually), - can be determined from the struct - :c:type:`v4l2_buffer` ``sequence`` field. This - format cannot be selected when using the read/write I/O method - since there is no way to communicate if a field was a top or - bottom field. - - - .. row 9 - - - ``V4L2_FIELD_INTERLACED_TB`` - - - 8 - - - Images contain both fields, interleaved line by line, top field - first. The top field is transmitted first. - - - .. row 10 - - - ``V4L2_FIELD_INTERLACED_BT`` - - - 9 - - - Images contain both fields, interleaved line by line, top field - first. The bottom field is transmitted first. + * - ``V4L2_FIELD_ANY`` + - 0 + - Applications request this field order when any one of the + ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or + ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose + depending on hardware capabilities or e. g. the requested image + size, and return the actual field order. Drivers must never return + ``V4L2_FIELD_ANY``. If multiple field orders are possible the + driver must choose one of the possible field orders during + :ref:`VIDIOC_S_FMT ` or + :ref:`VIDIOC_TRY_FMT `. struct + :c:type:`v4l2_buffer` ``field`` can never be + ``V4L2_FIELD_ANY``. + * - ``V4L2_FIELD_NONE`` + - 1 + - Images are in progressive format, not interlaced. The driver may + also indicate this order when it cannot distinguish between + ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``. + * - ``V4L2_FIELD_TOP`` + - 2 + - Images consist of the top (aka odd) field only. + * - ``V4L2_FIELD_BOTTOM`` + - 3 + - Images consist of the bottom (aka even) field only. Applications + may wish to prevent a device from capturing interlaced images + because they will have "comb" or "feathering" artefacts around + moving objects. + * - ``V4L2_FIELD_INTERLACED`` + - 4 + - Images contain both fields, interleaved line by line. The temporal + order of the fields (whether the top or bottom field is first + transmitted) depends on the current video standard. M/NTSC + transmits the bottom field first, all other standards the top + field first. + * - ``V4L2_FIELD_SEQ_TB`` + - 5 + - Images contain both fields, the top field lines are stored first + in memory, immediately followed by the bottom field lines. Fields + are always stored in temporal order, the older one first in + memory. Image sizes refer to the frame, not fields. + * - ``V4L2_FIELD_SEQ_BT`` + - 6 + - Images contain both fields, the bottom field lines are stored + first in memory, immediately followed by the top field lines. + Fields are always stored in temporal order, the older one first in + memory. Image sizes refer to the frame, not fields. + * - ``V4L2_FIELD_ALTERNATE`` + - 7 + - The two fields of a frame are passed in separate buffers, in + temporal order, i. e. the older one first. To indicate the field + parity (whether the current field is a top or bottom field) the + driver or application, depending on data direction, must set + struct :c:type:`v4l2_buffer` ``field`` to + ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive + fields pair to build a frame. If fields are successive, without + any dropped fields between them (fields can drop individually), + can be determined from the struct + :c:type:`v4l2_buffer` ``sequence`` field. This + format cannot be selected when using the read/write I/O method + since there is no way to communicate if a field was a top or + bottom field. + * - ``V4L2_FIELD_INTERLACED_TB`` + - 8 + - Images contain both fields, interleaved line by line, top field + first. The top field is transmitted first. + * - ``V4L2_FIELD_INTERLACED_BT`` + - 9 + - Images contain both fields, interleaved line by line, top field + first. The bottom field is transmitted first. diff --git a/Documentation/media/uapi/v4l/hist-v4l2.rst b/Documentation/media/uapi/v4l/hist-v4l2.rst index dfd55e9066b3..058b5db95c32 100644 --- a/Documentation/media/uapi/v4l/hist-v4l2.rst +++ b/Documentation/media/uapi/v4l/hist-v4l2.rst @@ -447,90 +447,34 @@ This unnamed version was finally merged into Linux 2.5.46. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Old defines - - - enum :c:type:`v4l2_buf_type` - - - .. row 2 - - - ``V4L2_BUF_TYPE_CAPTURE`` - - - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` - - - .. row 3 - - - ``V4L2_BUF_TYPE_CODECIN`` - - - Omitted for now - - - .. row 4 - - - ``V4L2_BUF_TYPE_CODECOUT`` - - - Omitted for now - - - .. row 5 - - - ``V4L2_BUF_TYPE_EFFECTSIN`` - - - Omitted for now - - - .. row 6 - - - ``V4L2_BUF_TYPE_EFFECTSIN2`` - - - Omitted for now - - - .. row 7 - - - ``V4L2_BUF_TYPE_EFFECTSOUT`` - - - Omitted for now - - - .. row 8 - - - ``V4L2_BUF_TYPE_VIDEOOUT`` - - - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` - - - .. row 9 - - - ``-`` - - - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` - - - .. row 10 - - - ``-`` - - - ``V4L2_BUF_TYPE_VBI_CAPTURE`` - - - .. row 11 - - - ``-`` - - - ``V4L2_BUF_TYPE_VBI_OUTPUT`` - - - .. row 12 - - - ``-`` - - - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` - - - .. row 13 - - - ``-`` - - - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` - - - .. row 14 - - - ``V4L2_BUF_TYPE_PRIVATE_BASE`` - - - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated) + * - Old defines + - enum :c:type:`v4l2_buf_type` + * - ``V4L2_BUF_TYPE_CAPTURE`` + - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` + * - ``V4L2_BUF_TYPE_CODECIN`` + - Omitted for now + * - ``V4L2_BUF_TYPE_CODECOUT`` + - Omitted for now + * - ``V4L2_BUF_TYPE_EFFECTSIN`` + - Omitted for now + * - ``V4L2_BUF_TYPE_EFFECTSIN2`` + - Omitted for now + * - ``V4L2_BUF_TYPE_EFFECTSOUT`` + - Omitted for now + * - ``V4L2_BUF_TYPE_VIDEOOUT`` + - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` + * - ``-`` + - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` + * - ``-`` + - ``V4L2_BUF_TYPE_VBI_CAPTURE`` + * - ``-`` + - ``V4L2_BUF_TYPE_VBI_OUTPUT`` + * - ``-`` + - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` + * - ``-`` + - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` + * - ``V4L2_BUF_TYPE_PRIVATE_BASE`` + - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated) 10. In struct :c:type:`v4l2_fmtdesc` a enum @@ -564,54 +508,22 @@ This unnamed version was finally merged into Linux 2.5.46. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Old flag - - - enum :c:type:`v4l2_field` - - - .. row 2 - - - ``V4L2_FMT_FLAG_NOT_INTERLACED`` - - - ? - - - .. row 3 - - - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED`` - - - ``V4L2_FIELD_INTERLACED`` - - - .. row 4 - - - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD`` - - - ``V4L2_FIELD_TOP`` - - - .. row 5 - - - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD`` - - - ``V4L2_FIELD_BOTTOM`` - - - .. row 6 - - - ``-`` - - - ``V4L2_FIELD_SEQ_TB`` - - - .. row 7 - - - ``-`` - - - ``V4L2_FIELD_SEQ_BT`` - - - .. row 8 - - - ``-`` - - - ``V4L2_FIELD_ALTERNATE`` + * - Old flag + - enum :c:type:`v4l2_field` + * - ``V4L2_FMT_FLAG_NOT_INTERLACED`` + - ? + * - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED`` + - ``V4L2_FIELD_INTERLACED`` + * - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD`` + - ``V4L2_FIELD_TOP`` + * - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD`` + - ``V4L2_FIELD_BOTTOM`` + * - ``-`` + - ``V4L2_FIELD_SEQ_TB`` + * - ``-`` + - ``V4L2_FIELD_SEQ_BT`` + * - ``-`` + - ``V4L2_FIELD_ALTERNATE`` The color space flags were replaced by a enum @@ -768,46 +680,21 @@ V4L2 2003-11-05 :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Symbol - - - In this document prior to revision 0.5 - - - Corrected - - - .. row 2 - - - ``V4L2_PIX_FMT_RGB24`` - - - B, G, R - - - R, G, B - - - .. row 3 - - - ``V4L2_PIX_FMT_BGR24`` - - - R, G, B - - - B, G, R - - - .. row 4 - - - ``V4L2_PIX_FMT_RGB32`` - - - B, G, R, X - - - R, G, B, X - - - .. row 5 - - - ``V4L2_PIX_FMT_BGR32`` - - - R, G, B, X - - - B, G, R, X + * - Symbol + - In this document prior to revision 0.5 + - Corrected + * - ``V4L2_PIX_FMT_RGB24`` + - B, G, R + - R, G, B + * - ``V4L2_PIX_FMT_BGR24`` + - R, G, B + - B, G, R + * - ``V4L2_PIX_FMT_RGB32`` + - B, G, R, X + - R, G, B, X + * - ``V4L2_PIX_FMT_BGR32`` + - R, G, B, X + - B, G, R, X The ``V4L2_PIX_FMT_BGR24`` example was always correct. diff --git a/Documentation/media/uapi/v4l/pixfmt-002.rst b/Documentation/media/uapi/v4l/pixfmt-002.rst index fd73f4697878..0d9e697f5d4e 100644 --- a/Documentation/media/uapi/v4l/pixfmt-002.rst +++ b/Documentation/media/uapi/v4l/pixfmt-002.rst @@ -15,185 +15,119 @@ Single-planar format structure :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``width`` + - Image width in pixels. + * - __u32 + - ``height`` + - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``, + ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height + refers to the number of lines in the field, otherwise it refers to + the number of lines in the frame (which is twice the field height + for interlaced formats). + * - :cspan:`2` Applications set these fields to request an image + size, drivers return the closest possible values. In case of + planar formats the ``width`` and ``height`` applies to the largest + plane. To avoid ambiguities drivers must return values rounded up + to a multiple of the scale factor of any smaller planes. For + example when the image format is YUV 4:2:0, ``width`` and + ``height`` must be multiples of two. + * - __u32 + - ``pixelformat`` + - The pixel format or type of compression, set by the application. + This is a little endian + :ref:`four character code `. V4L2 defines standard + RGB formats in :ref:`rgb-formats`, YUV formats in + :ref:`yuv-formats`, and reserved codes in + :ref:`reserved-formats` + * - enum :c:type::`v4l2_field` + - ``field`` + - Video images are typically interlaced. Applications can request to + capture or output only the top or bottom field, or both fields + interlaced or sequentially stored in one buffer or alternating in + separate buffers. Drivers return the actual field order selected. + For more details on fields see :ref:`field-order`. + * - __u32 + - ``bytesperline`` + - Distance in bytes between the leftmost pixels in two adjacent + lines. + * - :cspan:`2` - - .. row 1 + Both applications and drivers can set this field to request + padding bytes at the end of each line. Drivers however may ignore + the value requested by the application, returning ``width`` times + bytes per pixel or a larger value required by the hardware. That + implies applications can just set this field to zero to get a + reasonable default. - - __u32 + Video hardware may access padding bytes, therefore they must + reside in accessible memory. Consider cases where padding bytes + after the last line of an image cross a system page boundary. + Input devices may write padding bytes, the value is undefined. + Output devices ignore the contents of padding bytes. - - ``width`` + When the image format is planar the ``bytesperline`` value applies + to the first plane and is divided by the same factor as the + ``width`` field for the other planes. For example the Cb and Cr + planes of a YUV 4:2:0 image have half as many padding bytes + following each line as the Y plane. To avoid ambiguities drivers + must return a ``bytesperline`` value rounded up to a multiple of + the scale factor. - - Image width in pixels. + For compressed formats the ``bytesperline`` value makes no sense. + Applications and drivers must set this to 0 in that case. + * - __u32 + - ``sizeimage`` + - Size in bytes of the buffer to hold a complete image, set by the + driver. Usually this is ``bytesperline`` times ``height``. When + the image consists of variable length compressed data this is the + maximum number of bytes required to hold an image. + * - enum :c:type:`v4l2_colorspace` + - ``colorspace`` + - This information supplements the ``pixelformat`` and must be set + by the driver for capture streams and by the application for + output streams, see :ref:`colorspaces`. + * - __u32 + - ``priv`` + - This field indicates whether the remaining fields of the + struct :c:type:`v4l2_pix_format`, also called the + extended fields, are valid. When set to + ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields + have been correctly initialized. When set to any other value it + indicates that the extended fields contain undefined values. - - .. row 2 + Applications that wish to use the pixel format extended fields + must first ensure that the feature is supported by querying the + device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT ` + capability. If the capability isn't set the pixel format extended + fields are not supported and using the extended fields will lead + to undefined results. - - __u32 + To use the extended fields, applications must set the ``priv`` + field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended + fields and zero the unused bytes of the + struct :c:type:`v4l2_format` ``raw_data`` field. - - ``height`` - - - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``, - ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height - refers to the number of lines in the field, otherwise it refers to - the number of lines in the frame (which is twice the field height - for interlaced formats). - - - .. row 3 - - - :cspan:`2` Applications set these fields to request an image - size, drivers return the closest possible values. In case of - planar formats the ``width`` and ``height`` applies to the largest - plane. To avoid ambiguities drivers must return values rounded up - to a multiple of the scale factor of any smaller planes. For - example when the image format is YUV 4:2:0, ``width`` and - ``height`` must be multiples of two. - - - .. row 4 - - - __u32 - - - ``pixelformat`` - - - The pixel format or type of compression, set by the application. - This is a little endian - :ref:`four character code `. V4L2 defines standard - RGB formats in :ref:`rgb-formats`, YUV formats in - :ref:`yuv-formats`, and reserved codes in - :ref:`reserved-formats` - - - .. row 5 - - - enum :c:type::`v4l2_field` - - - ``field`` - - - Video images are typically interlaced. Applications can request to - capture or output only the top or bottom field, or both fields - interlaced or sequentially stored in one buffer or alternating in - separate buffers. Drivers return the actual field order selected. - For more details on fields see :ref:`field-order`. - - - .. row 6 - - - __u32 - - - ``bytesperline`` - - - Distance in bytes between the leftmost pixels in two adjacent - lines. - - - .. row 7 - - - :cspan:`2` - - Both applications and drivers can set this field to request - padding bytes at the end of each line. Drivers however may ignore - the value requested by the application, returning ``width`` times - bytes per pixel or a larger value required by the hardware. That - implies applications can just set this field to zero to get a - reasonable default. - - Video hardware may access padding bytes, therefore they must - reside in accessible memory. Consider cases where padding bytes - after the last line of an image cross a system page boundary. - Input devices may write padding bytes, the value is undefined. - Output devices ignore the contents of padding bytes. - - When the image format is planar the ``bytesperline`` value applies - to the first plane and is divided by the same factor as the - ``width`` field for the other planes. For example the Cb and Cr - planes of a YUV 4:2:0 image have half as many padding bytes - following each line as the Y plane. To avoid ambiguities drivers - must return a ``bytesperline`` value rounded up to a multiple of - the scale factor. - - For compressed formats the ``bytesperline`` value makes no sense. - Applications and drivers must set this to 0 in that case. - - - .. row 8 - - - __u32 - - - ``sizeimage`` - - - Size in bytes of the buffer to hold a complete image, set by the - driver. Usually this is ``bytesperline`` times ``height``. When - the image consists of variable length compressed data this is the - maximum number of bytes required to hold an image. - - - .. row 9 - - - enum :c:type:`v4l2_colorspace` - - - ``colorspace`` - - - This information supplements the ``pixelformat`` and must be set - by the driver for capture streams and by the application for - output streams, see :ref:`colorspaces`. - - - .. row 10 - - - __u32 - - - ``priv`` - - - This field indicates whether the remaining fields of the - struct :c:type:`v4l2_pix_format`, also called the - extended fields, are valid. When set to - ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields - have been correctly initialized. When set to any other value it - indicates that the extended fields contain undefined values. - - Applications that wish to use the pixel format extended fields - must first ensure that the feature is supported by querying the - device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT ` - capability. If the capability isn't set the pixel format extended - fields are not supported and using the extended fields will lead - to undefined results. - - To use the extended fields, applications must set the ``priv`` - field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended - fields and zero the unused bytes of the - struct :c:type:`v4l2_format` ``raw_data`` field. - - When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC`` - drivers must act as if all the extended fields were set to zero. - On return drivers must set the ``priv`` field to - ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to - applicable values. - - - .. row 11 - - - __u32 - - - ``flags`` - - - Flags set by the application or driver, see :ref:`format-flags`. - - - .. row 12 - - - enum :c:type:`v4l2_ycbcr_encoding` - - - ``ycbcr_enc`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 13 - - - enum :c:type:`v4l2_quantization` - - - ``quantization`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 14 - - - enum :c:type:`v4l2_xfer_func` - - - ``xfer_func`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. + When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC`` + drivers must act as if all the extended fields were set to zero. + On return drivers must set the ``priv`` field to + ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to + applicable values. + * - __u32 + - ``flags`` + - Flags set by the application or driver, see :ref:`format-flags`. + * - enum :c:type:`v4l2_ycbcr_encoding` + - ``ycbcr_enc`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - enum :c:type:`v4l2_quantization` + - ``quantization`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - enum :c:type:`v4l2_xfer_func` + - ``xfer_func`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. diff --git a/Documentation/media/uapi/v4l/pixfmt-003.rst b/Documentation/media/uapi/v4l/pixfmt-003.rst index a3c83df3bce5..ae9ea7a791de 100644 --- a/Documentation/media/uapi/v4l/pixfmt-003.rst +++ b/Documentation/media/uapi/v4l/pixfmt-003.rst @@ -21,32 +21,17 @@ describing all planes of that format. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``sizeimage`` - - - Maximum size in bytes required for image data in this plane. - - - .. row 2 - - - __u32 - - - ``bytesperline`` - - - Distance in bytes between the leftmost pixels in two adjacent - lines. See struct :c:type:`v4l2_pix_format`. - - - .. row 3 - - - __u16 - - - ``reserved[6]`` - - - Reserved for future extensions. Should be zeroed by drivers and - applications. + * - __u32 + - ``sizeimage`` + - Maximum size in bytes required for image data in this plane. + * - __u32 + - ``bytesperline`` + - Distance in bytes between the leftmost pixels in two adjacent + lines. See struct :c:type:`v4l2_pix_format`. + * - __u16 + - ``reserved[6]`` + - Reserved for future extensions. Should be zeroed by drivers and + applications. .. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}| @@ -58,112 +43,52 @@ describing all planes of that format. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``width`` - - - Image width in pixels. See struct - :c:type:`v4l2_pix_format`. - - - .. row 2 - - - __u32 - - - ``height`` - - - Image height in pixels. See struct - :c:type:`v4l2_pix_format`. - - - .. row 3 - - - __u32 - - - ``pixelformat`` - - - The pixel format. Both single- and multi-planar four character - codes can be used. - - - .. row 4 - - - enum :c:type:`v4l2_field` - - - ``field`` - - - See struct :c:type:`v4l2_pix_format`. - - - .. row 5 - - - enum :c:type:`v4l2_colorspace` - - - ``colorspace`` - - - See struct :c:type:`v4l2_pix_format`. - - - .. row 6 - - - struct :c:type:`v4l2_plane_pix_format` - - - ``plane_fmt[VIDEO_MAX_PLANES]`` - - - An array of structures describing format of each plane this pixel - format consists of. The number of valid entries in this array has - to be put in the ``num_planes`` field. - - - .. row 7 - - - __u8 - - - ``num_planes`` - - - Number of planes (i.e. separate memory buffers) for this format - and the number of valid entries in the ``plane_fmt`` array. - - - .. row 8 - - - __u8 - - - ``flags`` - - - Flags set by the application or driver, see :ref:`format-flags`. - - - .. row 9 - - - enum :c:type:`v4l2_ycbcr_encoding` - - - ``ycbcr_enc`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 10 - - - enum :c:type:`v4l2_quantization` - - - ``quantization`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 11 - - - enum :c:type:`v4l2_xfer_func` - - - ``xfer_func`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 12 - - - __u8 - - - ``reserved[7]`` - - - Reserved for future extensions. Should be zeroed by drivers and - applications. + * - __u32 + - ``width`` + - Image width in pixels. See struct + :c:type:`v4l2_pix_format`. + * - __u32 + - ``height`` + - Image height in pixels. See struct + :c:type:`v4l2_pix_format`. + * - __u32 + - ``pixelformat`` + - The pixel format. Both single- and multi-planar four character + codes can be used. + * - enum :c:type:`v4l2_field` + - ``field`` + - See struct :c:type:`v4l2_pix_format`. + * - enum :c:type:`v4l2_colorspace` + - ``colorspace`` + - See struct :c:type:`v4l2_pix_format`. + * - struct :c:type:`v4l2_plane_pix_format` + - ``plane_fmt[VIDEO_MAX_PLANES]`` + - An array of structures describing format of each plane this pixel + format consists of. The number of valid entries in this array has + to be put in the ``num_planes`` field. + * - __u8 + - ``num_planes`` + - Number of planes (i.e. separate memory buffers) for this format + and the number of valid entries in the ``plane_fmt`` array. + * - __u8 + - ``flags`` + - Flags set by the application or driver, see :ref:`format-flags`. + * - enum :c:type:`v4l2_ycbcr_encoding` + - ``ycbcr_enc`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - enum :c:type:`v4l2_quantization` + - ``quantization`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - enum :c:type:`v4l2_xfer_func` + - ``xfer_func`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - __u8 + - ``reserved[7]`` + - Reserved for future extensions. Should be zeroed by drivers and + applications. diff --git a/Documentation/media/uapi/v4l/pixfmt-006.rst b/Documentation/media/uapi/v4l/pixfmt-006.rst index 819299d0291a..a9890ff6038b 100644 --- a/Documentation/media/uapi/v4l/pixfmt-006.rst +++ b/Documentation/media/uapi/v4l/pixfmt-006.rst @@ -33,89 +33,37 @@ needs to be filled in. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Details - - - .. row 2 - - - ``V4L2_COLORSPACE_DEFAULT`` - - - The default colorspace. This can be used by applications to let - the driver fill in the colorspace. - - - .. row 3 - - - ``V4L2_COLORSPACE_SMPTE170M`` - - - See :ref:`col-smpte-170m`. - - - .. row 4 - - - ``V4L2_COLORSPACE_REC709`` - - - See :ref:`col-rec709`. - - - .. row 5 - - - ``V4L2_COLORSPACE_SRGB`` - - - See :ref:`col-srgb`. - - - .. row 6 - - - ``V4L2_COLORSPACE_ADOBERGB`` - - - See :ref:`col-adobergb`. - - - .. row 7 - - - ``V4L2_COLORSPACE_BT2020`` - - - See :ref:`col-bt2020`. - - - .. row 8 - - - ``V4L2_COLORSPACE_DCI_P3`` - - - See :ref:`col-dcip3`. - - - .. row 9 - - - ``V4L2_COLORSPACE_SMPTE240M`` - - - See :ref:`col-smpte-240m`. - - - .. row 10 - - - ``V4L2_COLORSPACE_470_SYSTEM_M`` - - - See :ref:`col-sysm`. - - - .. row 11 - - - ``V4L2_COLORSPACE_470_SYSTEM_BG`` - - - See :ref:`col-sysbg`. - - - .. row 12 - - - ``V4L2_COLORSPACE_JPEG`` - - - See :ref:`col-jpeg`. - - - .. row 13 - - - ``V4L2_COLORSPACE_RAW`` - - - The raw colorspace. This is used for raw image capture where the - image is minimally processed and is using the internal colorspace - of the device. The software that processes an image using this - 'colorspace' will have to know the internals of the capture - device. + * - Identifier + - Details + * - ``V4L2_COLORSPACE_DEFAULT`` + - The default colorspace. This can be used by applications to let + the driver fill in the colorspace. + * - ``V4L2_COLORSPACE_SMPTE170M`` + - See :ref:`col-smpte-170m`. + * - ``V4L2_COLORSPACE_REC709`` + - See :ref:`col-rec709`. + * - ``V4L2_COLORSPACE_SRGB`` + - See :ref:`col-srgb`. + * - ``V4L2_COLORSPACE_ADOBERGB`` + - See :ref:`col-adobergb`. + * - ``V4L2_COLORSPACE_BT2020`` + - See :ref:`col-bt2020`. + * - ``V4L2_COLORSPACE_DCI_P3`` + - See :ref:`col-dcip3`. + * - ``V4L2_COLORSPACE_SMPTE240M`` + - See :ref:`col-smpte-240m`. + * - ``V4L2_COLORSPACE_470_SYSTEM_M`` + - See :ref:`col-sysm`. + * - ``V4L2_COLORSPACE_470_SYSTEM_BG`` + - See :ref:`col-sysbg`. + * - ``V4L2_COLORSPACE_JPEG`` + - See :ref:`col-jpeg`. + * - ``V4L2_COLORSPACE_RAW`` + - The raw colorspace. This is used for raw image capture where the + image is minimally processed and is using the internal colorspace + of the device. The software that processes an image using this + 'colorspace' will have to know the internals of the capture + device. @@ -125,60 +73,24 @@ needs to be filled in. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Details - - - .. row 2 - - - ``V4L2_XFER_FUNC_DEFAULT`` - - - Use the default transfer function as defined by the colorspace. - - - .. row 3 - - - ``V4L2_XFER_FUNC_709`` - - - Use the Rec. 709 transfer function. - - - .. row 4 - - - ``V4L2_XFER_FUNC_SRGB`` - - - Use the sRGB transfer function. - - - .. row 5 - - - ``V4L2_XFER_FUNC_ADOBERGB`` - - - Use the AdobeRGB transfer function. - - - .. row 6 - - - ``V4L2_XFER_FUNC_SMPTE240M`` - - - Use the SMPTE 240M transfer function. - - - .. row 7 - - - ``V4L2_XFER_FUNC_NONE`` - - - Do not use a transfer function (i.e. use linear RGB values). - - - .. row 8 - - - ``V4L2_XFER_FUNC_DCI_P3`` - - - Use the DCI-P3 transfer function. - - - .. row 9 - - - ``V4L2_XFER_FUNC_SMPTE2084`` - - - Use the SMPTE 2084 transfer function. + * - Identifier + - Details + * - ``V4L2_XFER_FUNC_DEFAULT`` + - Use the default transfer function as defined by the colorspace. + * - ``V4L2_XFER_FUNC_709`` + - Use the Rec. 709 transfer function. + * - ``V4L2_XFER_FUNC_SRGB`` + - Use the sRGB transfer function. + * - ``V4L2_XFER_FUNC_ADOBERGB`` + - Use the AdobeRGB transfer function. + * - ``V4L2_XFER_FUNC_SMPTE240M`` + - Use the SMPTE 240M transfer function. + * - ``V4L2_XFER_FUNC_NONE`` + - Do not use a transfer function (i.e. use linear RGB values). + * - ``V4L2_XFER_FUNC_DCI_P3`` + - Use the DCI-P3 transfer function. + * - ``V4L2_XFER_FUNC_SMPTE2084`` + - Use the SMPTE 2084 transfer function. @@ -190,60 +102,24 @@ needs to be filled in. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Details - - - .. row 2 - - - ``V4L2_YCBCR_ENC_DEFAULT`` - - - Use the default Y'CbCr encoding as defined by the colorspace. - - - .. row 3 - - - ``V4L2_YCBCR_ENC_601`` - - - Use the BT.601 Y'CbCr encoding. - - - .. row 4 - - - ``V4L2_YCBCR_ENC_709`` - - - Use the Rec. 709 Y'CbCr encoding. - - - .. row 5 - - - ``V4L2_YCBCR_ENC_XV601`` - - - Use the extended gamut xvYCC BT.601 encoding. - - - .. row 6 - - - ``V4L2_YCBCR_ENC_XV709`` - - - Use the extended gamut xvYCC Rec. 709 encoding. - - - .. row 7 - - - ``V4L2_YCBCR_ENC_BT2020`` - - - Use the default non-constant luminance BT.2020 Y'CbCr encoding. - - - .. row 8 - - - ``V4L2_YCBCR_ENC_BT2020_CONST_LUM`` - - - Use the constant luminance BT.2020 Yc'CbcCrc encoding. - - - .. row 9 - - - ``V4L2_YCBCR_ENC_SMPTE_240M`` - - - Use the SMPTE 240M Y'CbCr encoding. + * - Identifier + - Details + * - ``V4L2_YCBCR_ENC_DEFAULT`` + - Use the default Y'CbCr encoding as defined by the colorspace. + * - ``V4L2_YCBCR_ENC_601`` + - Use the BT.601 Y'CbCr encoding. + * - ``V4L2_YCBCR_ENC_709`` + - Use the Rec. 709 Y'CbCr encoding. + * - ``V4L2_YCBCR_ENC_XV601`` + - Use the extended gamut xvYCC BT.601 encoding. + * - ``V4L2_YCBCR_ENC_XV709`` + - Use the extended gamut xvYCC Rec. 709 encoding. + * - ``V4L2_YCBCR_ENC_BT2020`` + - Use the default non-constant luminance BT.2020 Y'CbCr encoding. + * - ``V4L2_YCBCR_ENC_BT2020_CONST_LUM`` + - Use the constant luminance BT.2020 Yc'CbcCrc encoding. + * - ``V4L2_YCBCR_ENC_SMPTE_240M`` + - Use the SMPTE 240M Y'CbCr encoding. @@ -255,35 +131,19 @@ needs to be filled in. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Details - - - .. row 2 - - - ``V4L2_QUANTIZATION_DEFAULT`` - - - Use the default quantization encoding as defined by the - colorspace. This is always full range for R'G'B' (except for the - BT.2020 colorspace) and usually limited range for Y'CbCr. - - - .. row 3 - - - ``V4L2_QUANTIZATION_FULL_RANGE`` - - - Use the full range quantization encoding. I.e. the range [0…1] is - mapped to [0…255] (with possible clipping to [1…254] to avoid the - 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to - [0…255] (with possible clipping to [1…254] to avoid the 0x00 and - 0xff values). - - - .. row 4 - - - ``V4L2_QUANTIZATION_LIM_RANGE`` - - - Use the limited range quantization encoding. I.e. the range [0…1] - is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to - [16…240]. + * - Identifier + - Details + * - ``V4L2_QUANTIZATION_DEFAULT`` + - Use the default quantization encoding as defined by the + colorspace. This is always full range for R'G'B' (except for the + BT.2020 colorspace) and usually limited range for Y'CbCr. + * - ``V4L2_QUANTIZATION_FULL_RANGE`` + - Use the full range quantization encoding. I.e. the range [0…1] is + mapped to [0…255] (with possible clipping to [1…254] to avoid the + 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to + [0…255] (with possible clipping to [1…254] to avoid the 0x00 and + 0xff values). + * - ``V4L2_QUANTIZATION_LIM_RANGE`` + - Use the limited range quantization encoding. I.e. the range [0…1] + is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to + [16…240]. diff --git a/Documentation/media/uapi/v4l/pixfmt-007.rst b/Documentation/media/uapi/v4l/pixfmt-007.rst index f3e7f9e4c616..44bb5a7059b3 100644 --- a/Documentation/media/uapi/v4l/pixfmt-007.rst +++ b/Documentation/media/uapi/v4l/pixfmt-007.rst @@ -26,46 +26,21 @@ are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.630 - - - 0.340 - - - .. row 3 - - - Green - - - 0.310 - - - 0.595 - - - .. row 4 - - - Blue - - - 0.155 - - - 0.070 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.630 + - 0.340 + * - Green + - 0.310 + - 0.595 + * - Blue + - 0.155 + - 0.070 + * - White Reference (D65) + - 0.3127 + - 0.3290 The red, green and blue chromaticities are also often referred to as the @@ -132,46 +107,21 @@ and the white reference are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.640 - - - 0.330 - - - .. row 3 - - - Green - - - 0.300 - - - 0.600 - - - .. row 4 - - - Blue - - - 0.150 - - - 0.060 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.640 + - 0.330 + * - Green + - 0.300 + - 0.600 + * - Blue + - 0.150 + - 0.060 + * - White Reference (D65) + - 0.3127 + - 0.3290 The full name of this standard is Rec. ITU-R BT.709-5. @@ -273,46 +223,21 @@ The chromaticities of the primary colors and the white reference are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.640 - - - 0.330 - - - .. row 3 - - - Green - - - 0.300 - - - 0.600 - - - .. row 4 - - - Blue - - - 0.150 - - - 0.060 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.640 + - 0.330 + * - Green + - 0.300 + - 0.600 + * - Blue + - 0.150 + - 0.060 + * - White Reference (D65) + - 0.3127 + - 0.3290 These chromaticities are identical to the Rec. 709 colorspace. @@ -376,46 +301,21 @@ are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.6400 - - - 0.3300 - - - .. row 3 - - - Green - - - 0.2100 - - - 0.7100 - - - .. row 4 - - - Blue - - - 0.1500 - - - 0.0600 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.6400 + - 0.3300 + * - Green + - 0.2100 + - 0.7100 + * - Blue + - 0.1500 + - 0.0600 + * - White Reference (D65) + - 0.3127 + - 0.3290 @@ -468,46 +368,21 @@ of the primary colors and the white reference are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.708 - - - 0.292 - - - .. row 3 - - - Green - - - 0.170 - - - 0.797 - - - .. row 4 - - - Blue - - - 0.131 - - - 0.046 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.708 + - 0.292 + * - Green + - 0.170 + - 0.797 + * - Blue + - 0.131 + - 0.046 + * - White Reference (D65) + - 0.3127 + - 0.3290 @@ -592,46 +467,21 @@ The chromaticities of the primary colors and the white reference are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.6800 - - - 0.3200 - - - .. row 3 - - - Green - - - 0.2650 - - - 0.6900 - - - .. row 4 - - - Blue - - - 0.1500 - - - 0.0600 - - - .. row 5 - - - White Reference - - - 0.3140 - - - 0.3510 + * - Color + - x + - y + * - Red + - 0.6800 + - 0.3200 + * - Green + - 0.2650 + - 0.6900 + * - Blue + - 0.1500 + - 0.0600 + * - White Reference + - 0.3140 + - 0.3510 @@ -671,46 +521,21 @@ and the white reference are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.630 - - - 0.340 - - - .. row 3 - - - Green - - - 0.310 - - - 0.595 - - - .. row 4 - - - Blue - - - 0.155 - - - 0.070 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.630 + - 0.340 + * - Green + - 0.310 + - 0.595 + * - Blue + - 0.155 + - 0.070 + * - White Reference (D65) + - 0.3127 + - 0.3290 These chromaticities are identical to the SMPTE 170M colorspace. @@ -767,46 +592,21 @@ reference are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.67 - - - 0.33 - - - .. row 3 - - - Green - - - 0.21 - - - 0.71 - - - .. row 4 - - - Blue - - - 0.14 - - - 0.08 - - - .. row 5 - - - White Reference (C) - - - 0.310 - - - 0.316 + * - Color + - x + - y + * - Red + - 0.67 + - 0.33 + * - Green + - 0.21 + - 0.71 + * - Blue + - 0.14 + - 0.08 + * - White Reference (C) + - 0.310 + - 0.316 .. note:: @@ -871,46 +671,21 @@ are: :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Color - - - x - - - y - - - .. row 2 - - - Red - - - 0.64 - - - 0.33 - - - .. row 3 - - - Green - - - 0.29 - - - 0.60 - - - .. row 4 - - - Blue - - - 0.15 - - - 0.06 - - - .. row 5 - - - White Reference (D65) - - - 0.3127 - - - 0.3290 + * - Color + - x + - y + * - Red + - 0.64 + - 0.33 + * - Green + - 0.29 + - 0.60 + * - Blue + - 0.15 + - 0.06 + * - White Reference (D65) + - 0.3127 + - 0.3290 diff --git a/Documentation/media/uapi/v4l/pixfmt-013.rst b/Documentation/media/uapi/v4l/pixfmt-013.rst index bfef4f4ce6b1..542c087152e3 100644 --- a/Documentation/media/uapi/v4l/pixfmt-013.rst +++ b/Documentation/media/uapi/v4l/pixfmt-013.rst @@ -14,118 +14,74 @@ Compressed Formats :stub-columns: 0 :widths: 3 1 4 + * - Identifier + - Code + - Details + * .. _V4L2-PIX-FMT-JPEG: - - .. row 1 + - ``V4L2_PIX_FMT_JPEG`` + - 'JPEG' + - TBD. See also :ref:`VIDIOC_G_JPEGCOMP `, + :ref:`VIDIOC_S_JPEGCOMP `. + * .. _V4L2-PIX-FMT-MPEG: - - Identifier + - ``V4L2_PIX_FMT_MPEG`` + - 'MPEG' + - MPEG multiplexed stream. The actual format is determined by + extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see + :ref:`mpeg-control-id`. + * .. _V4L2-PIX-FMT-H264: - - Code + - ``V4L2_PIX_FMT_H264`` + - 'H264' + - H264 video elementary stream with start codes. + * .. _V4L2-PIX-FMT-H264-NO-SC: - - Details + - ``V4L2_PIX_FMT_H264_NO_SC`` + - 'AVC1' + - H264 video elementary stream without start codes. + * .. _V4L2-PIX-FMT-H264-MVC: - - .. _V4L2-PIX-FMT-JPEG: + - ``V4L2_PIX_FMT_H264_MVC`` + - 'M264' + - H264 MVC video elementary stream. + * .. _V4L2-PIX-FMT-H263: - - ``V4L2_PIX_FMT_JPEG`` + - ``V4L2_PIX_FMT_H263`` + - 'H263' + - H263 video elementary stream. + * .. _V4L2-PIX-FMT-MPEG1: - - 'JPEG' + - ``V4L2_PIX_FMT_MPEG1`` + - 'MPG1' + - MPEG1 video elementary stream. + * .. _V4L2-PIX-FMT-MPEG2: - - TBD. See also :ref:`VIDIOC_G_JPEGCOMP `, - :ref:`VIDIOC_S_JPEGCOMP `. + - ``V4L2_PIX_FMT_MPEG2`` + - 'MPG2' + - MPEG2 video elementary stream. + * .. _V4L2-PIX-FMT-MPEG4: - - .. _V4L2-PIX-FMT-MPEG: + - ``V4L2_PIX_FMT_MPEG4`` + - 'MPG4' + - MPEG4 video elementary stream. + * .. _V4L2-PIX-FMT-XVID: - - ``V4L2_PIX_FMT_MPEG`` + - ``V4L2_PIX_FMT_XVID`` + - 'XVID' + - Xvid video elementary stream. + * .. _V4L2-PIX-FMT-VC1-ANNEX-G: - - 'MPEG' + - ``V4L2_PIX_FMT_VC1_ANNEX_G`` + - 'VC1G' + - VC1, SMPTE 421M Annex G compliant stream. + * .. _V4L2-PIX-FMT-VC1-ANNEX-L: - - MPEG multiplexed stream. The actual format is determined by - extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see - :ref:`mpeg-control-id`. + - ``V4L2_PIX_FMT_VC1_ANNEX_L`` + - 'VC1L' + - VC1, SMPTE 421M Annex L compliant stream. + * .. _V4L2-PIX-FMT-VP8: - - .. _V4L2-PIX-FMT-H264: - - - ``V4L2_PIX_FMT_H264`` - - - 'H264' - - - H264 video elementary stream with start codes. - - - .. _V4L2-PIX-FMT-H264-NO-SC: - - - ``V4L2_PIX_FMT_H264_NO_SC`` - - - 'AVC1' - - - H264 video elementary stream without start codes. - - - .. _V4L2-PIX-FMT-H264-MVC: - - - ``V4L2_PIX_FMT_H264_MVC`` - - - 'M264' - - - H264 MVC video elementary stream. - - - .. _V4L2-PIX-FMT-H263: - - - ``V4L2_PIX_FMT_H263`` - - - 'H263' - - - H263 video elementary stream. - - - .. _V4L2-PIX-FMT-MPEG1: - - - ``V4L2_PIX_FMT_MPEG1`` - - - 'MPG1' - - - MPEG1 video elementary stream. - - - .. _V4L2-PIX-FMT-MPEG2: - - - ``V4L2_PIX_FMT_MPEG2`` - - - 'MPG2' - - - MPEG2 video elementary stream. - - - .. _V4L2-PIX-FMT-MPEG4: - - - ``V4L2_PIX_FMT_MPEG4`` - - - 'MPG4' - - - MPEG4 video elementary stream. - - - .. _V4L2-PIX-FMT-XVID: - - - ``V4L2_PIX_FMT_XVID`` - - - 'XVID' - - - Xvid video elementary stream. - - - .. _V4L2-PIX-FMT-VC1-ANNEX-G: - - - ``V4L2_PIX_FMT_VC1_ANNEX_G`` - - - 'VC1G' - - - VC1, SMPTE 421M Annex G compliant stream. - - - .. _V4L2-PIX-FMT-VC1-ANNEX-L: - - - ``V4L2_PIX_FMT_VC1_ANNEX_L`` - - - 'VC1L' - - - VC1, SMPTE 421M Annex L compliant stream. - - - .. _V4L2-PIX-FMT-VP8: - - - ``V4L2_PIX_FMT_VP8`` - - - 'VP80' - - - VP8 video elementary stream. + - ``V4L2_PIX_FMT_VP8`` + - 'VP80' + - VP8 video elementary stream. diff --git a/Documentation/media/uapi/v4l/pixfmt-grey.rst b/Documentation/media/uapi/v4l/pixfmt-grey.rst index fef58ca50f66..dad813819d3e 100644 --- a/Documentation/media/uapi/v4l/pixfmt-grey.rst +++ b/Documentation/media/uapi/v4l/pixfmt-grey.rst @@ -22,51 +22,23 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` diff --git a/Documentation/media/uapi/v4l/pixfmt-indexed.rst b/Documentation/media/uapi/v4l/pixfmt-indexed.rst index 99a780fe6b61..6edac54dad74 100644 --- a/Documentation/media/uapi/v4l/pixfmt-indexed.rst +++ b/Documentation/media/uapi/v4l/pixfmt-indexed.rst @@ -17,57 +17,31 @@ the palette, this must be done with ioctls of the Linux framebuffer API. :header-rows: 2 :stub-columns: 0 + * - Identifier + - Code + - + - :cspan:`7` Byte 0 + * - + - + - Bit + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _V4L2-PIX-FMT-PAL8: - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`7` Byte 0 - - - .. row 2 - - - - - - - Bit - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _V4L2-PIX-FMT-PAL8: - - - ``V4L2_PIX_FMT_PAL8`` - - - 'PAL8' - - - - - i\ :sub:`7` - - - i\ :sub:`6` - - - i\ :sub:`5` - - - i\ :sub:`4` - - - i\ :sub:`3` - - - i\ :sub:`2` - - - i\ :sub:`1` - - - i\ :sub:`0` + - ``V4L2_PIX_FMT_PAL8`` + - 'PAL8' + - + - i\ :sub:`7` + - i\ :sub:`6` + - i\ :sub:`5` + - i\ :sub:`4` + - i\ :sub:`3` + - i\ :sub:`2` + - i\ :sub:`1` + - i\ :sub:`0` diff --git a/Documentation/media/uapi/v4l/pixfmt-m420.rst b/Documentation/media/uapi/v4l/pixfmt-m420.rst index f4a21a8a6dcc..7dd47c071e2f 100644 --- a/Documentation/media/uapi/v4l/pixfmt-m420.rst +++ b/Documentation/media/uapi/v4l/pixfmt-m420.rst @@ -34,78 +34,36 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`01` - - - Cr\ :sub:`01` - - - .. row 4 - - - start + 16: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 5 - - - start + 20: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 6 - - - start + 24: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`11` - - - Cr\ :sub:`11` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start + 16: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 20: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 24: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` **Color Sample Location..** @@ -116,100 +74,53 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 5 - - - - - - .. row 6 - - - 2 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 7 - - - - - - - C - - - - - - - C - - - - - - .. row 8 - - - 3 - - - Y - - - - - Y - - - Y - - - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 1 + - Y + - + - Y + - Y + - + - Y + * - + * - 2 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 3 + - Y + - + - Y + - Y + - + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-nv12.rst b/Documentation/media/uapi/v4l/pixfmt-nv12.rst index 6bbdc01362af..5b45a6d2ac95 100644 --- a/Documentation/media/uapi/v4l/pixfmt-nv12.rst +++ b/Documentation/media/uapi/v4l/pixfmt-nv12.rst @@ -39,77 +39,36 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`01` - - - Cr\ :sub:`01` - - - .. row 6 - - - start + 20: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`11` - - - Cr\ :sub:`11` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start + 20: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` **Color Sample Location..** @@ -118,100 +77,53 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 5 - - - - - - .. row 6 - - - 2 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 7 - - - - - - - C - - - - - - - C - - - - - - .. row 8 - - - 3 - - - Y - - - - - Y - - - Y - - - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 1 + - Y + - + - Y + - Y + - + - Y + * - + * - 2 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 3 + - Y + - + - Y + - Y + - + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-nv12m.rst b/Documentation/media/uapi/v4l/pixfmt-nv12m.rst index 5c2e0648204b..de3051fd6b50 100644 --- a/Documentation/media/uapi/v4l/pixfmt-nv12m.rst +++ b/Documentation/media/uapi/v4l/pixfmt-nv12m.rst @@ -50,81 +50,37 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start0 + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start0 + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start0 + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start0 + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - - - - .. row 6 - - - start1 + 0: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`01` - - - Cr\ :sub:`01` - - - .. row 7 - - - start1 + 4: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`11` - - - Cr\ :sub:`11` + * - start0 + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start0 + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start0 + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start0 + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - + * - start1 + 0: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start1 + 4: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` **Color Sample Location..** @@ -135,101 +91,54 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 5 - - - - - - .. row 6 - - - 2 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 7 - - - - - - - C - - - - - - - - - C - - - - - - .. row 8 - - - 3 - - - Y - - - - - Y - - - Y - - - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 1 + - Y + - + - Y + - Y + - + - Y + * - + * - 2 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - + - C + - + * - 3 + - Y + - + - Y + - Y + - + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-nv16.rst b/Documentation/media/uapi/v4l/pixfmt-nv16.rst index e2ea0fcdccc7..8ceba79ff636 100644 --- a/Documentation/media/uapi/v4l/pixfmt-nv16.rst +++ b/Documentation/media/uapi/v4l/pixfmt-nv16.rst @@ -37,101 +37,46 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`01` - - - Cr\ :sub:`01` - - - .. row 6 - - - start + 20: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`11` - - - Cr\ :sub:`11` - - - .. row 7 - - - start + 24: - - - Cb\ :sub:`20` - - - Cr\ :sub:`20` - - - Cb\ :sub:`21` - - - Cr\ :sub:`21` - - - .. row 8 - - - start + 28: - - - Cb\ :sub:`30` - - - Cr\ :sub:`30` - - - Cb\ :sub:`31` - - - Cr\ :sub:`31` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start + 20: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` + * - start + 24: + - Cb\ :sub:`20` + - Cr\ :sub:`20` + - Cb\ :sub:`21` + - Cr\ :sub:`21` + * - start + 28: + - Cb\ :sub:`30` + - Cr\ :sub:`30` + - Cb\ :sub:`31` + - Cr\ :sub:`31` **Color Sample Location..** @@ -142,124 +87,67 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 5 - - - - - - - C - - - - - - - C - - - - - - .. row 6 - - - - - - .. row 7 - - - 2 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 8 - - - - - - - C - - - - - - - C - - - - - - .. row 9 - - - 3 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 10 - - - - - - - C - - - - - - - C - - - + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 1 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - + * - 2 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 3 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - diff --git a/Documentation/media/uapi/v4l/pixfmt-nv16m.rst b/Documentation/media/uapi/v4l/pixfmt-nv16m.rst index 5908b0437697..4d46ab39f9f1 100644 --- a/Documentation/media/uapi/v4l/pixfmt-nv16m.rst +++ b/Documentation/media/uapi/v4l/pixfmt-nv16m.rst @@ -40,105 +40,47 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start0 + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start0 + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start0 + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start0 + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - - - - .. row 6 - - - start1 + 0: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`02` - - - Cr\ :sub:`02` - - - .. row 7 - - - start1 + 4: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`12` - - - Cr\ :sub:`12` - - - .. row 8 - - - start1 + 8: - - - Cb\ :sub:`20` - - - Cr\ :sub:`20` - - - Cb\ :sub:`22` - - - Cr\ :sub:`22` - - - .. row 9 - - - start1 + 12: - - - Cb\ :sub:`30` - - - Cr\ :sub:`30` - - - Cb\ :sub:`32` - - - Cr\ :sub:`32` + * - start0 + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start0 + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start0 + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start0 + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - + * - start1 + 0: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`02` + - Cr\ :sub:`02` + * - start1 + 4: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`12` + - Cr\ :sub:`12` + * - start1 + 8: + - Cb\ :sub:`20` + - Cr\ :sub:`20` + - Cb\ :sub:`22` + - Cr\ :sub:`22` + * - start1 + 12: + - Cb\ :sub:`30` + - Cr\ :sub:`30` + - Cb\ :sub:`32` + - Cr\ :sub:`32` **Color Sample Location..** @@ -149,124 +91,67 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 5 - - - - - - - C - - - - - - - C - - - - - - .. row 6 - - - - - - .. row 7 - - - 2 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 8 - - - - - - - C - - - - - - - C - - - - - - .. row 9 - - - 3 - - - Y - - - - - Y - - - Y - - - - - Y - - - .. row 10 - - - - - - - C - - - - - - - C - - - + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 1 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - + * - 2 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - + * - 3 + - Y + - + - Y + - Y + - + - Y + * - + - + - C + - + - + - C + - diff --git a/Documentation/media/uapi/v4l/pixfmt-nv24.rst b/Documentation/media/uapi/v4l/pixfmt-nv24.rst index 67f3c53ac48d..bda973e86227 100644 --- a/Documentation/media/uapi/v4l/pixfmt-nv24.rst +++ b/Documentation/media/uapi/v4l/pixfmt-nv24.rst @@ -37,130 +37,59 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`01` - - - Cr\ :sub:`01` - - - Cb\ :sub:`02` - - - Cr\ :sub:`02` - - - Cb\ :sub:`03` - - - Cr\ :sub:`03` - - - .. row 6 - - - start + 24: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`11` - - - Cr\ :sub:`11` - - - Cb\ :sub:`12` - - - Cr\ :sub:`12` - - - Cb\ :sub:`13` - - - Cr\ :sub:`13` - - - .. row 7 - - - start + 32: - - - Cb\ :sub:`20` - - - Cr\ :sub:`20` - - - Cb\ :sub:`21` - - - Cr\ :sub:`21` - - - Cb\ :sub:`22` - - - Cr\ :sub:`22` - - - Cb\ :sub:`23` - - - Cr\ :sub:`23` - - - .. row 8 - - - start + 40: - - - Cb\ :sub:`30` - - - Cr\ :sub:`30` - - - Cb\ :sub:`31` - - - Cr\ :sub:`31` - - - Cb\ :sub:`32` - - - Cr\ :sub:`32` - - - Cb\ :sub:`33` - - - Cr\ :sub:`33` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + - Cb\ :sub:`02` + - Cr\ :sub:`02` + - Cb\ :sub:`03` + - Cr\ :sub:`03` + * - start + 24: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` + - Cb\ :sub:`12` + - Cr\ :sub:`12` + - Cb\ :sub:`13` + - Cr\ :sub:`13` + * - start + 32: + - Cb\ :sub:`20` + - Cr\ :sub:`20` + - Cb\ :sub:`21` + - Cr\ :sub:`21` + - Cb\ :sub:`22` + - Cr\ :sub:`22` + - Cb\ :sub:`23` + - Cr\ :sub:`23` + * - start + 40: + - Cb\ :sub:`30` + - Cr\ :sub:`30` + - Cb\ :sub:`31` + - Cr\ :sub:`31` + - Cb\ :sub:`32` + - Cr\ :sub:`32` + - Cb\ :sub:`33` + - Cr\ :sub:`33` diff --git a/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst b/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst index 4eba72266587..84fcbcb74171 100644 --- a/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst +++ b/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst @@ -26,924 +26,505 @@ next to each other in memory. :header-rows: 2 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`7` Byte 0 in memory - - - - - :cspan:`7` Byte 1 - - - - - :cspan:`7` Byte 2 - - - - - :cspan:`7` Byte 3 - - - .. row 2 - - - - - - - Bit - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _V4L2-PIX-FMT-RGB332: - - - ``V4L2_PIX_FMT_RGB332`` - - - 'RGB1' - - - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-ARGB444: - - - ``V4L2_PIX_FMT_ARGB444`` - - - 'AR12' - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _V4L2-PIX-FMT-XRGB444: - - - ``V4L2_PIX_FMT_XRGB444`` - - - 'XR12' - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - - - - - - - - - - - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _V4L2-PIX-FMT-ARGB555: - - - ``V4L2_PIX_FMT_ARGB555`` - - - 'AR15' - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - a - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _V4L2-PIX-FMT-XRGB555: - - - ``V4L2_PIX_FMT_XRGB555`` - - - 'XR15' - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _V4L2-PIX-FMT-RGB565: - - - ``V4L2_PIX_FMT_RGB565`` - - - 'RGBP' - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _V4L2-PIX-FMT-ARGB555X: - - - ``V4L2_PIX_FMT_ARGB555X`` - - - 'AR15' | (1 << 31) - - - - - a - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-XRGB555X: - - - ``V4L2_PIX_FMT_XRGB555X`` - - - 'XR15' | (1 << 31) - - - - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-RGB565X: - - - ``V4L2_PIX_FMT_RGB565X`` - - - 'RGBR' - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-BGR24: - - - ``V4L2_PIX_FMT_BGR24`` - - - 'BGR3' - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _V4L2-PIX-FMT-RGB24: - - - ``V4L2_PIX_FMT_RGB24`` - - - 'RGB3' - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-BGR666: - - - ``V4L2_PIX_FMT_BGR666`` - - - 'BGRH' - - - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .. _V4L2-PIX-FMT-ABGR32: - - - ``V4L2_PIX_FMT_ABGR32`` - - - 'AR24' - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - .. _V4L2-PIX-FMT-XBGR32: - - - ``V4L2_PIX_FMT_XBGR32`` - - - 'XR24' - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .. _V4L2-PIX-FMT-ARGB32: - - - ``V4L2_PIX_FMT_ARGB32`` - - - 'BA24' - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-XRGB32: - - - ``V4L2_PIX_FMT_XRGB32`` - - - 'BX24' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`7` Byte 0 in memory + - + - :cspan:`7` Byte 1 + - + - :cspan:`7` Byte 2 + - + - :cspan:`7` Byte 3 + * - + - + - Bit + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _V4L2-PIX-FMT-RGB332: + + - ``V4L2_PIX_FMT_RGB332`` + - 'RGB1' + - + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-ARGB444: + + - ``V4L2_PIX_FMT_ARGB444`` + - 'AR12' + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _V4L2-PIX-FMT-XRGB444: + + - ``V4L2_PIX_FMT_XRGB444`` + - 'XR12' + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - + - + - + - + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _V4L2-PIX-FMT-ARGB555: + + - ``V4L2_PIX_FMT_ARGB555`` + - 'AR15' + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - a + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _V4L2-PIX-FMT-XRGB555: + + - ``V4L2_PIX_FMT_XRGB555`` + - 'XR15' + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _V4L2-PIX-FMT-RGB565: + + - ``V4L2_PIX_FMT_RGB565`` + - 'RGBP' + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _V4L2-PIX-FMT-ARGB555X: + + - ``V4L2_PIX_FMT_ARGB555X`` + - 'AR15' | (1 << 31) + - + - a + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-XRGB555X: + + - ``V4L2_PIX_FMT_XRGB555X`` + - 'XR15' | (1 << 31) + - + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-RGB565X: + + - ``V4L2_PIX_FMT_RGB565X`` + - 'RGBR' + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-BGR24: + + - ``V4L2_PIX_FMT_BGR24`` + - 'BGR3' + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _V4L2-PIX-FMT-RGB24: + + - ``V4L2_PIX_FMT_RGB24`` + - 'RGB3' + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-BGR666: + + - ``V4L2_PIX_FMT_BGR666`` + - 'BGRH' + - + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - + - r\ :sub:`1` + - r\ :sub:`0` + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + * .. _V4L2-PIX-FMT-ABGR32: + + - ``V4L2_PIX_FMT_ABGR32`` + - 'AR24' + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + * .. _V4L2-PIX-FMT-XBGR32: + + - ``V4L2_PIX_FMT_XBGR32`` + - 'XR24' + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - + - + - + - + - + - + - + - + * .. _V4L2-PIX-FMT-ARGB32: + + - ``V4L2_PIX_FMT_ARGB32`` + - 'BA24' + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-XRGB32: + + - ``V4L2_PIX_FMT_XRGB32`` + - 'BX24' + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` .. raw:: latex @@ -990,118 +571,58 @@ Each cell is one byte. :stub-columns: 0 :widths: 11 3 3 3 3 3 3 3 3 3 3 3 3 - - - .. row 1 - - - start + 0: - - - B\ :sub:`00` - - - G\ :sub:`00` - - - R\ :sub:`00` - - - B\ :sub:`01` - - - G\ :sub:`01` - - - R\ :sub:`01` - - - B\ :sub:`02` - - - G\ :sub:`02` - - - R\ :sub:`02` - - - B\ :sub:`03` - - - G\ :sub:`03` - - - R\ :sub:`03` - - - .. row 2 - - - start + 12: - - - B\ :sub:`10` - - - G\ :sub:`10` - - - R\ :sub:`10` - - - B\ :sub:`11` - - - G\ :sub:`11` - - - R\ :sub:`11` - - - B\ :sub:`12` - - - G\ :sub:`12` - - - R\ :sub:`12` - - - B\ :sub:`13` - - - G\ :sub:`13` - - - R\ :sub:`13` - - - .. row 3 - - - start + 24: - - - B\ :sub:`20` - - - G\ :sub:`20` - - - R\ :sub:`20` - - - B\ :sub:`21` - - - G\ :sub:`21` - - - R\ :sub:`21` - - - B\ :sub:`22` - - - G\ :sub:`22` - - - R\ :sub:`22` - - - B\ :sub:`23` - - - G\ :sub:`23` - - - R\ :sub:`23` - - - .. row 4 - - - start + 36: - - - B\ :sub:`30` - - - G\ :sub:`30` - - - R\ :sub:`30` - - - B\ :sub:`31` - - - G\ :sub:`31` - - - R\ :sub:`31` - - - B\ :sub:`32` - - - G\ :sub:`32` - - - R\ :sub:`32` - - - B\ :sub:`33` - - - G\ :sub:`33` - - - R\ :sub:`33` + * - start + 0: + - B\ :sub:`00` + - G\ :sub:`00` + - R\ :sub:`00` + - B\ :sub:`01` + - G\ :sub:`01` + - R\ :sub:`01` + - B\ :sub:`02` + - G\ :sub:`02` + - R\ :sub:`02` + - B\ :sub:`03` + - G\ :sub:`03` + - R\ :sub:`03` + * - start + 12: + - B\ :sub:`10` + - G\ :sub:`10` + - R\ :sub:`10` + - B\ :sub:`11` + - G\ :sub:`11` + - R\ :sub:`11` + - B\ :sub:`12` + - G\ :sub:`12` + - R\ :sub:`12` + - B\ :sub:`13` + - G\ :sub:`13` + - R\ :sub:`13` + * - start + 24: + - B\ :sub:`20` + - G\ :sub:`20` + - R\ :sub:`20` + - B\ :sub:`21` + - G\ :sub:`21` + - R\ :sub:`21` + - B\ :sub:`22` + - G\ :sub:`22` + - R\ :sub:`22` + - B\ :sub:`23` + - G\ :sub:`23` + - R\ :sub:`23` + * - start + 36: + - B\ :sub:`30` + - G\ :sub:`30` + - R\ :sub:`30` + - B\ :sub:`31` + - G\ :sub:`31` + - R\ :sub:`31` + - B\ :sub:`32` + - G\ :sub:`32` + - R\ :sub:`32` + - B\ :sub:`33` + - G\ :sub:`33` + - R\ :sub:`33` .. raw:: latex @@ -1125,365 +646,200 @@ either the corresponding ARGB or XRGB format, depending on the driver. :header-rows: 2 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`7` Byte 0 in memory - - - - - :cspan:`7` Byte 1 - - - - - :cspan:`7` Byte 2 - - - - - :cspan:`7` Byte 3 - - - .. row 2 - - - - - - - Bit - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _V4L2-PIX-FMT-RGB444: - - - ``V4L2_PIX_FMT_RGB444`` - - - 'R444' - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _V4L2-PIX-FMT-RGB555: - - - ``V4L2_PIX_FMT_RGB555`` - - - 'RGBO' - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - a - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _V4L2-PIX-FMT-RGB555X: - - - ``V4L2_PIX_FMT_RGB555X`` - - - 'RGBQ' - - - - - a - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _V4L2-PIX-FMT-BGR32: - - - ``V4L2_PIX_FMT_BGR32`` - - - 'BGR4' - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - .. _V4L2-PIX-FMT-RGB32: - - - ``V4L2_PIX_FMT_RGB32`` - - - 'RGB4' - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`7` Byte 0 in memory + - + - :cspan:`7` Byte 1 + - + - :cspan:`7` Byte 2 + - + - :cspan:`7` Byte 3 + * - + - + - Bit + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _V4L2-PIX-FMT-RGB444: + + - ``V4L2_PIX_FMT_RGB444`` + - 'R444' + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _V4L2-PIX-FMT-RGB555: + + - ``V4L2_PIX_FMT_RGB555`` + - 'RGBO' + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - a + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _V4L2-PIX-FMT-RGB555X: + + - ``V4L2_PIX_FMT_RGB555X`` + - 'RGBQ' + - + - a + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _V4L2-PIX-FMT-BGR32: + + - ``V4L2_PIX_FMT_BGR32`` + - 'BGR4' + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + * .. _V4L2-PIX-FMT-RGB32: + + - ``V4L2_PIX_FMT_RGB32`` + - 'RGB4' + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` .. raw:: latex diff --git a/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst b/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst index 36a221753b37..ebc8fcc937ad 100644 --- a/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst +++ b/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst @@ -24,291 +24,160 @@ component of each pixel in one 16 or 32 bit word. :header-rows: 2 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`7` Byte 0 in memory - - - - - :cspan:`7` Byte 1 - - - - - :cspan:`7` Byte 2 - - - - - :cspan:`7` Byte 3 - - - .. row 2 - - - - - - - Bit - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _V4L2-PIX-FMT-YUV444: - - - ``V4L2_PIX_FMT_YUV444`` - - - 'Y444' - - - - - Cb\ :sub:`3` - - - Cb\ :sub:`2` - - - Cb\ :sub:`1` - - - Cb\ :sub:`0` - - - Cr\ :sub:`3` - - - Cr\ :sub:`2` - - - Cr\ :sub:`1` - - - Cr\ :sub:`0` - - - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - Y'\ :sub:`3` - - - Y'\ :sub:`2` - - - Y'\ :sub:`1` - - - Y'\ :sub:`0` - - - .. _V4L2-PIX-FMT-YUV555: - - - ``V4L2_PIX_FMT_YUV555`` - - - 'YUVO' - - - - - Cb\ :sub:`2` - - - Cb\ :sub:`1` - - - Cb\ :sub:`0` - - - Cr\ :sub:`4` - - - Cr\ :sub:`3` - - - Cr\ :sub:`2` - - - Cr\ :sub:`1` - - - Cr\ :sub:`0` - - - - - a - - - Y'\ :sub:`4` - - - Y'\ :sub:`3` - - - Y'\ :sub:`2` - - - Y'\ :sub:`1` - - - Y'\ :sub:`0` - - - Cb\ :sub:`4` - - - Cb\ :sub:`3` - - - .. _V4L2-PIX-FMT-YUV565: - - - ``V4L2_PIX_FMT_YUV565`` - - - 'YUVP' - - - - - Cb\ :sub:`2` - - - Cb\ :sub:`1` - - - Cb\ :sub:`0` - - - Cr\ :sub:`4` - - - Cr\ :sub:`3` - - - Cr\ :sub:`2` - - - Cr\ :sub:`1` - - - Cr\ :sub:`0` - - - - - Y'\ :sub:`4` - - - Y'\ :sub:`3` - - - Y'\ :sub:`2` - - - Y'\ :sub:`1` - - - Y'\ :sub:`0` - - - Cb\ :sub:`5` - - - Cb\ :sub:`4` - - - Cb\ :sub:`3` - - - .. _V4L2-PIX-FMT-YUV32: - - - ``V4L2_PIX_FMT_YUV32`` - - - 'YUV4' - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - - - Y'\ :sub:`7` - - - Y'\ :sub:`6` - - - Y'\ :sub:`5` - - - Y'\ :sub:`4` - - - Y'\ :sub:`3` - - - Y'\ :sub:`2` - - - Y'\ :sub:`1` - - - Y'\ :sub:`0` - - - - - Cb\ :sub:`7` - - - Cb\ :sub:`6` - - - Cb\ :sub:`5` - - - Cb\ :sub:`4` - - - Cb\ :sub:`3` - - - Cb\ :sub:`2` - - - Cb\ :sub:`1` - - - Cb\ :sub:`0` - - - - - Cr\ :sub:`7` - - - Cr\ :sub:`6` - - - Cr\ :sub:`5` - - - Cr\ :sub:`4` - - - Cr\ :sub:`3` - - - Cr\ :sub:`2` - - - Cr\ :sub:`1` - - - Cr\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`7` Byte 0 in memory + - + - :cspan:`7` Byte 1 + - + - :cspan:`7` Byte 2 + - + - :cspan:`7` Byte 3 + * - + - + - Bit + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + - + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _V4L2-PIX-FMT-YUV444: + + - ``V4L2_PIX_FMT_YUV444`` + - 'Y444' + - + - Cb\ :sub:`3` + - Cb\ :sub:`2` + - Cb\ :sub:`1` + - Cb\ :sub:`0` + - Cr\ :sub:`3` + - Cr\ :sub:`2` + - Cr\ :sub:`1` + - Cr\ :sub:`0` + - + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - Y'\ :sub:`3` + - Y'\ :sub:`2` + - Y'\ :sub:`1` + - Y'\ :sub:`0` + * .. _V4L2-PIX-FMT-YUV555: + + - ``V4L2_PIX_FMT_YUV555`` + - 'YUVO' + - + - Cb\ :sub:`2` + - Cb\ :sub:`1` + - Cb\ :sub:`0` + - Cr\ :sub:`4` + - Cr\ :sub:`3` + - Cr\ :sub:`2` + - Cr\ :sub:`1` + - Cr\ :sub:`0` + - + - a + - Y'\ :sub:`4` + - Y'\ :sub:`3` + - Y'\ :sub:`2` + - Y'\ :sub:`1` + - Y'\ :sub:`0` + - Cb\ :sub:`4` + - Cb\ :sub:`3` + * .. _V4L2-PIX-FMT-YUV565: + + - ``V4L2_PIX_FMT_YUV565`` + - 'YUVP' + - + - Cb\ :sub:`2` + - Cb\ :sub:`1` + - Cb\ :sub:`0` + - Cr\ :sub:`4` + - Cr\ :sub:`3` + - Cr\ :sub:`2` + - Cr\ :sub:`1` + - Cr\ :sub:`0` + - + - Y'\ :sub:`4` + - Y'\ :sub:`3` + - Y'\ :sub:`2` + - Y'\ :sub:`1` + - Y'\ :sub:`0` + - Cb\ :sub:`5` + - Cb\ :sub:`4` + - Cb\ :sub:`3` + * .. _V4L2-PIX-FMT-YUV32: + + - ``V4L2_PIX_FMT_YUV32`` + - 'YUV4' + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - + - Y'\ :sub:`7` + - Y'\ :sub:`6` + - Y'\ :sub:`5` + - Y'\ :sub:`4` + - Y'\ :sub:`3` + - Y'\ :sub:`2` + - Y'\ :sub:`1` + - Y'\ :sub:`0` + - + - Cb\ :sub:`7` + - Cb\ :sub:`6` + - Cb\ :sub:`5` + - Cb\ :sub:`4` + - Cb\ :sub:`3` + - Cb\ :sub:`2` + - Cb\ :sub:`1` + - Cb\ :sub:`0` + - + - Cr\ :sub:`7` + - Cr\ :sub:`6` + - Cr\ :sub:`5` + - Cr\ :sub:`4` + - Cr\ :sub:`3` + - Cr\ :sub:`2` + - Cr\ :sub:`1` + - Cr\ :sub:`0` .. raw:: latex diff --git a/Documentation/media/uapi/v4l/pixfmt-reserved.rst b/Documentation/media/uapi/v4l/pixfmt-reserved.rst index 0dd2f7fe096f..bd7bf3dae6af 100644 --- a/Documentation/media/uapi/v4l/pixfmt-reserved.rst +++ b/Documentation/media/uapi/v4l/pixfmt-reserved.rst @@ -26,318 +26,214 @@ please make a proposal on the linux-media mailing list. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - Identifier - - - Code - - - Details - - - .. _V4L2-PIX-FMT-DV: - - - ``V4L2_PIX_FMT_DV`` - - - 'dvsd' - - - unknown - - - .. _V4L2-PIX-FMT-ET61X251: - - - ``V4L2_PIX_FMT_ET61X251`` - - - 'E625' - - - Compressed format of the ET61X251 driver. - - - .. _V4L2-PIX-FMT-HI240: - - - ``V4L2_PIX_FMT_HI240`` - - - 'HI24' - - - 8 bit RGB format used by the BTTV driver. - - - .. _V4L2-PIX-FMT-HM12: - - - ``V4L2_PIX_FMT_HM12`` - - - 'HM12' - - - YUV 4:2:0 format used by the IVTV driver, - `http://www.ivtvdriver.org/ `__ - - The format is documented in the kernel sources in the file - ``Documentation/video4linux/cx2341x/README.hm12`` - - - .. _V4L2-PIX-FMT-CPIA1: - - - ``V4L2_PIX_FMT_CPIA1`` - - - 'CPIA' - - - YUV format used by the gspca cpia1 driver. - - - .. _V4L2-PIX-FMT-JPGL: - - - ``V4L2_PIX_FMT_JPGL`` - - - 'JPGL' - - - JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW - 80x. - - - .. _V4L2-PIX-FMT-SPCA501: - - - ``V4L2_PIX_FMT_SPCA501`` - - - 'S501' - - - YUYV per line used by the gspca driver. - - - .. _V4L2-PIX-FMT-SPCA505: - - - ``V4L2_PIX_FMT_SPCA505`` - - - 'S505' - - - YYUV per line used by the gspca driver. - - - .. _V4L2-PIX-FMT-SPCA508: - - - ``V4L2_PIX_FMT_SPCA508`` - - - 'S508' - - - YUVY per line used by the gspca driver. - - - .. _V4L2-PIX-FMT-SPCA561: - - - ``V4L2_PIX_FMT_SPCA561`` - - - 'S561' - - - Compressed GBRG Bayer format used by the gspca driver. - - - .. _V4L2-PIX-FMT-PAC207: - - - ``V4L2_PIX_FMT_PAC207`` - - - 'P207' - - - Compressed BGGR Bayer format used by the gspca driver. - - - .. _V4L2-PIX-FMT-MR97310A: - - - ``V4L2_PIX_FMT_MR97310A`` - - - 'M310' - - - Compressed BGGR Bayer format used by the gspca driver. - - - .. _V4L2-PIX-FMT-JL2005BCD: - - - ``V4L2_PIX_FMT_JL2005BCD`` - - - 'JL20' - - - JPEG compressed RGGB Bayer format used by the gspca driver. - - - .. _V4L2-PIX-FMT-OV511: - - - ``V4L2_PIX_FMT_OV511`` - - - 'O511' - - - OV511 JPEG format used by the gspca driver. - - - .. _V4L2-PIX-FMT-OV518: - - - ``V4L2_PIX_FMT_OV518`` - - - 'O518' - - - OV518 JPEG format used by the gspca driver. - - - .. _V4L2-PIX-FMT-PJPG: - - - ``V4L2_PIX_FMT_PJPG`` - - - 'PJPG' - - - Pixart 73xx JPEG format used by the gspca driver. - - - .. _V4L2-PIX-FMT-SE401: - - - ``V4L2_PIX_FMT_SE401`` - - - 'S401' - - - Compressed RGB format used by the gspca se401 driver - - - .. _V4L2-PIX-FMT-SQ905C: - - - ``V4L2_PIX_FMT_SQ905C`` - - - '905C' - - - Compressed RGGB bayer format used by the gspca driver. - - - .. _V4L2-PIX-FMT-MJPEG: - - - ``V4L2_PIX_FMT_MJPEG`` - - - 'MJPG' - - - Compressed format used by the Zoran driver - - - .. _V4L2-PIX-FMT-PWC1: - - - ``V4L2_PIX_FMT_PWC1`` - - - 'PWC1' - - - Compressed format of the PWC driver. - - - .. _V4L2-PIX-FMT-PWC2: - - - ``V4L2_PIX_FMT_PWC2`` - - - 'PWC2' - - - Compressed format of the PWC driver. - - - .. _V4L2-PIX-FMT-SN9C10X: - - - ``V4L2_PIX_FMT_SN9C10X`` - - - 'S910' - - - Compressed format of the SN9C102 driver. - - - .. _V4L2-PIX-FMT-SN9C20X-I420: - - - ``V4L2_PIX_FMT_SN9C20X_I420`` - - - 'S920' - - - YUV 4:2:0 format of the gspca sn9c20x driver. - - - .. _V4L2-PIX-FMT-SN9C2028: - - - ``V4L2_PIX_FMT_SN9C2028`` - - - 'SONX' - - - Compressed GBRG bayer format of the gspca sn9c2028 driver. - - - .. _V4L2-PIX-FMT-STV0680: - - - ``V4L2_PIX_FMT_STV0680`` - - - 'S680' - - - Bayer format of the gspca stv0680 driver. - - - .. _V4L2-PIX-FMT-WNVA: - - - ``V4L2_PIX_FMT_WNVA`` - - - 'WNVA' - - - Used by the Winnov Videum driver, - `http://www.thedirks.org/winnov/ `__ - - - .. _V4L2-PIX-FMT-TM6000: - - - ``V4L2_PIX_FMT_TM6000`` - - - 'TM60' - - - Used by Trident tm6000 - - - .. _V4L2-PIX-FMT-CIT-YYVYUY: - - - ``V4L2_PIX_FMT_CIT_YYVYUY`` - - - 'CITV' - - - Used by xirlink CIT, found at IBM webcams. - - Uses one line of Y then 1 line of VYUY - - - .. _V4L2-PIX-FMT-KONICA420: - - - ``V4L2_PIX_FMT_KONICA420`` - - - 'KONI' - - - Used by Konica webcams. - - YUV420 planar in blocks of 256 pixels. - - - .. _V4L2-PIX-FMT-YYUV: - - - ``V4L2_PIX_FMT_YYUV`` - - - 'YYUV' - - - unknown - - - .. _V4L2-PIX-FMT-Y4: - - - ``V4L2_PIX_FMT_Y4`` - - - 'Y04 ' - - - Old 4-bit greyscale format. Only the most significant 4 bits of - each byte are used, the other bits are set to 0. - - - .. _V4L2-PIX-FMT-Y6: - - - ``V4L2_PIX_FMT_Y6`` - - - 'Y06 ' - - - Old 6-bit greyscale format. Only the most significant 6 bits of - each byte are used, the other bits are set to 0. - - - .. _V4L2-PIX-FMT-S5C-UYVY-JPG: - - - ``V4L2_PIX_FMT_S5C_UYVY_JPG`` - - - 'S5CI' - - - Two-planar format used by Samsung S5C73MX cameras. The first plane - contains interleaved JPEG and UYVY image data, followed by meta - data in form of an array of offsets to the UYVY data blocks. The - actual pointer array follows immediately the interleaved JPEG/UYVY - data, the number of entries in this array equals the height of the - UYVY image. Each entry is a 4-byte unsigned integer in big endian - order and it's an offset to a single pixel line of the UYVY image. - The first plane can start either with JPEG or UYVY data chunk. The - size of a single UYVY block equals the UYVY image's width - multiplied by 2. The size of a JPEG chunk depends on the image and - can vary with each line. - - The second plane, at an offset of 4084 bytes, contains a 4-byte - offset to the pointer array in the first plane. This offset is - followed by a 4-byte value indicating size of the pointer array. - All numbers in the second plane are also in big endian order. - Remaining data in the second plane is undefined. The information - in the second plane allows to easily find location of the pointer - array, which can be different for each frame. The size of the - pointer array is constant for given UYVY image height. - - In order to extract UYVY and JPEG frames an application can - initially set a data pointer to the start of first plane and then - add an offset from the first entry of the pointers table. Such a - pointer indicates start of an UYVY image pixel line. Whole UYVY - line can be copied to a separate buffer. These steps should be - repeated for each line, i.e. the number of entries in the pointer - array. Anything what's in between the UYVY lines is JPEG data and - should be concatenated to form the JPEG stream. + * - Identifier + - Code + - Details + * .. _V4L2-PIX-FMT-DV: + + - ``V4L2_PIX_FMT_DV`` + - 'dvsd' + - unknown + * .. _V4L2-PIX-FMT-ET61X251: + + - ``V4L2_PIX_FMT_ET61X251`` + - 'E625' + - Compressed format of the ET61X251 driver. + * .. _V4L2-PIX-FMT-HI240: + + - ``V4L2_PIX_FMT_HI240`` + - 'HI24' + - 8 bit RGB format used by the BTTV driver. + * .. _V4L2-PIX-FMT-HM12: + + - ``V4L2_PIX_FMT_HM12`` + - 'HM12' + - YUV 4:2:0 format used by the IVTV driver, + `http://www.ivtvdriver.org/ `__ + + The format is documented in the kernel sources in the file + ``Documentation/video4linux/cx2341x/README.hm12`` + * .. _V4L2-PIX-FMT-CPIA1: + + - ``V4L2_PIX_FMT_CPIA1`` + - 'CPIA' + - YUV format used by the gspca cpia1 driver. + * .. _V4L2-PIX-FMT-JPGL: + + - ``V4L2_PIX_FMT_JPGL`` + - 'JPGL' + - JPEG-Light format (Pegasus Lossless JPEG) used in Divio webcams NW + 80x. + * .. _V4L2-PIX-FMT-SPCA501: + + - ``V4L2_PIX_FMT_SPCA501`` + - 'S501' + - YUYV per line used by the gspca driver. + * .. _V4L2-PIX-FMT-SPCA505: + + - ``V4L2_PIX_FMT_SPCA505`` + - 'S505' + - YYUV per line used by the gspca driver. + * .. _V4L2-PIX-FMT-SPCA508: + + - ``V4L2_PIX_FMT_SPCA508`` + - 'S508' + - YUVY per line used by the gspca driver. + * .. _V4L2-PIX-FMT-SPCA561: + + - ``V4L2_PIX_FMT_SPCA561`` + - 'S561' + - Compressed GBRG Bayer format used by the gspca driver. + * .. _V4L2-PIX-FMT-PAC207: + + - ``V4L2_PIX_FMT_PAC207`` + - 'P207' + - Compressed BGGR Bayer format used by the gspca driver. + * .. _V4L2-PIX-FMT-MR97310A: + + - ``V4L2_PIX_FMT_MR97310A`` + - 'M310' + - Compressed BGGR Bayer format used by the gspca driver. + * .. _V4L2-PIX-FMT-JL2005BCD: + + - ``V4L2_PIX_FMT_JL2005BCD`` + - 'JL20' + - JPEG compressed RGGB Bayer format used by the gspca driver. + * .. _V4L2-PIX-FMT-OV511: + + - ``V4L2_PIX_FMT_OV511`` + - 'O511' + - OV511 JPEG format used by the gspca driver. + * .. _V4L2-PIX-FMT-OV518: + + - ``V4L2_PIX_FMT_OV518`` + - 'O518' + - OV518 JPEG format used by the gspca driver. + * .. _V4L2-PIX-FMT-PJPG: + + - ``V4L2_PIX_FMT_PJPG`` + - 'PJPG' + - Pixart 73xx JPEG format used by the gspca driver. + * .. _V4L2-PIX-FMT-SE401: + + - ``V4L2_PIX_FMT_SE401`` + - 'S401' + - Compressed RGB format used by the gspca se401 driver + * .. _V4L2-PIX-FMT-SQ905C: + + - ``V4L2_PIX_FMT_SQ905C`` + - '905C' + - Compressed RGGB bayer format used by the gspca driver. + * .. _V4L2-PIX-FMT-MJPEG: + + - ``V4L2_PIX_FMT_MJPEG`` + - 'MJPG' + - Compressed format used by the Zoran driver + * .. _V4L2-PIX-FMT-PWC1: + + - ``V4L2_PIX_FMT_PWC1`` + - 'PWC1' + - Compressed format of the PWC driver. + * .. _V4L2-PIX-FMT-PWC2: + + - ``V4L2_PIX_FMT_PWC2`` + - 'PWC2' + - Compressed format of the PWC driver. + * .. _V4L2-PIX-FMT-SN9C10X: + + - ``V4L2_PIX_FMT_SN9C10X`` + - 'S910' + - Compressed format of the SN9C102 driver. + * .. _V4L2-PIX-FMT-SN9C20X-I420: + + - ``V4L2_PIX_FMT_SN9C20X_I420`` + - 'S920' + - YUV 4:2:0 format of the gspca sn9c20x driver. + * .. _V4L2-PIX-FMT-SN9C2028: + + - ``V4L2_PIX_FMT_SN9C2028`` + - 'SONX' + - Compressed GBRG bayer format of the gspca sn9c2028 driver. + * .. _V4L2-PIX-FMT-STV0680: + + - ``V4L2_PIX_FMT_STV0680`` + - 'S680' + - Bayer format of the gspca stv0680 driver. + * .. _V4L2-PIX-FMT-WNVA: + + - ``V4L2_PIX_FMT_WNVA`` + - 'WNVA' + - Used by the Winnov Videum driver, + `http://www.thedirks.org/winnov/ `__ + * .. _V4L2-PIX-FMT-TM6000: + + - ``V4L2_PIX_FMT_TM6000`` + - 'TM60' + - Used by Trident tm6000 + * .. _V4L2-PIX-FMT-CIT-YYVYUY: + + - ``V4L2_PIX_FMT_CIT_YYVYUY`` + - 'CITV' + - Used by xirlink CIT, found at IBM webcams. + + Uses one line of Y then 1 line of VYUY + * .. _V4L2-PIX-FMT-KONICA420: + + - ``V4L2_PIX_FMT_KONICA420`` + - 'KONI' + - Used by Konica webcams. + + YUV420 planar in blocks of 256 pixels. + * .. _V4L2-PIX-FMT-YYUV: + + - ``V4L2_PIX_FMT_YYUV`` + - 'YYUV' + - unknown + * .. _V4L2-PIX-FMT-Y4: + + - ``V4L2_PIX_FMT_Y4`` + - 'Y04 ' + - Old 4-bit greyscale format. Only the most significant 4 bits of + each byte are used, the other bits are set to 0. + * .. _V4L2-PIX-FMT-Y6: + + - ``V4L2_PIX_FMT_Y6`` + - 'Y06 ' + - Old 6-bit greyscale format. Only the most significant 6 bits of + each byte are used, the other bits are set to 0. + * .. _V4L2-PIX-FMT-S5C-UYVY-JPG: + + - ``V4L2_PIX_FMT_S5C_UYVY_JPG`` + - 'S5CI' + - Two-planar format used by Samsung S5C73MX cameras. The first plane + contains interleaved JPEG and UYVY image data, followed by meta + data in form of an array of offsets to the UYVY data blocks. The + actual pointer array follows immediately the interleaved JPEG/UYVY + data, the number of entries in this array equals the height of the + UYVY image. Each entry is a 4-byte unsigned integer in big endian + order and it's an offset to a single pixel line of the UYVY image. + The first plane can start either with JPEG or UYVY data chunk. The + size of a single UYVY block equals the UYVY image's width + multiplied by 2. The size of a JPEG chunk depends on the image and + can vary with each line. + + The second plane, at an offset of 4084 bytes, contains a 4-byte + offset to the pointer array in the first plane. This offset is + followed by a 4-byte value indicating size of the pointer array. + All numbers in the second plane are also in big endian order. + Remaining data in the second plane is undefined. The information + in the second plane allows to easily find location of the pointer + array, which can be different for each frame. The size of the + pointer array is constant for given UYVY image height. + + In order to extract UYVY and JPEG frames an application can + initially set a data pointer to the start of first plane and then + add an offset from the first entry of the pointers table. Such a + pointer indicates start of an UYVY image pixel line. Whole UYVY + line can be copied to a separate buffer. These steps should be + repeated for each line, i.e. the number of entries in the pointer + array. Anything what's in between the UYVY lines is JPEG data and + should be concatenated to form the JPEG stream. @@ -350,15 +246,10 @@ please make a proposal on the linux-media mailing list. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_PIX_FMT_FLAG_PREMUL_ALPHA`` - - - 0x00000001 - - - The color values are premultiplied by the alpha channel value. For - example, if a light blue pixel with 50% transparency was described - by RGBA values (128, 192, 255, 128), the same pixel described with - premultiplied colors would be described by RGBA values (64, 96, - 128, 128) + * - ``V4L2_PIX_FMT_FLAG_PREMUL_ALPHA`` + - 0x00000001 + - The color values are premultiplied by the alpha channel value. For + example, if a light blue pixel with 50% transparency was described + by RGBA values (128, 192, 255, 128), the same pixel described with + premultiplied colors would be described by RGBA values (64, 96, + 128, 128) diff --git a/Documentation/media/uapi/v4l/pixfmt-sbggr16.rst b/Documentation/media/uapi/v4l/pixfmt-sbggr16.rst index e3b53e3b7f2e..6f7f327db85c 100644 --- a/Documentation/media/uapi/v4l/pixfmt-sbggr16.rst +++ b/Documentation/media/uapi/v4l/pixfmt-sbggr16.rst @@ -24,82 +24,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - B\ :sub:`00low` - - - B\ :sub:`00high` - - - G\ :sub:`01low` - - - G\ :sub:`01high` - - - B\ :sub:`02low` - - - B\ :sub:`02high` - - - G\ :sub:`03low` - - - G\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - G\ :sub:`10low` - - - G\ :sub:`10high` - - - R\ :sub:`11low` - - - R\ :sub:`11high` - - - G\ :sub:`12low` - - - G\ :sub:`12high` - - - R\ :sub:`13low` - - - R\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - B\ :sub:`20low` - - - B\ :sub:`20high` - - - G\ :sub:`21low` - - - G\ :sub:`21high` - - - B\ :sub:`22low` - - - B\ :sub:`22high` - - - G\ :sub:`23low` - - - G\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - G\ :sub:`30low` - - - G\ :sub:`30high` - - - R\ :sub:`31low` - - - R\ :sub:`31high` - - - G\ :sub:`32low` - - - G\ :sub:`32high` - - - R\ :sub:`33low` - - - R\ :sub:`33high` + * - start + 0: + - B\ :sub:`00low` + - B\ :sub:`00high` + - G\ :sub:`01low` + - G\ :sub:`01high` + - B\ :sub:`02low` + - B\ :sub:`02high` + - G\ :sub:`03low` + - G\ :sub:`03high` + * - start + 8: + - G\ :sub:`10low` + - G\ :sub:`10high` + - R\ :sub:`11low` + - R\ :sub:`11high` + - G\ :sub:`12low` + - G\ :sub:`12high` + - R\ :sub:`13low` + - R\ :sub:`13high` + * - start + 16: + - B\ :sub:`20low` + - B\ :sub:`20high` + - G\ :sub:`21low` + - G\ :sub:`21high` + - B\ :sub:`22low` + - B\ :sub:`22high` + - G\ :sub:`23low` + - G\ :sub:`23high` + * - start + 24: + - G\ :sub:`30low` + - G\ :sub:`30high` + - R\ :sub:`31low` + - R\ :sub:`31high` + - G\ :sub:`32low` + - G\ :sub:`32high` + - R\ :sub:`33low` + - R\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst b/Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst index 82b9995155fa..179894f6f8fb 100644 --- a/Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst +++ b/Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst @@ -24,15 +24,7 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - I'\ :sub:`0` - - - .. row 2 - - - start + 1: - - - Q'\ :sub:`0` + * - start + 0: + - I'\ :sub:`0` + * - start + 1: + - Q'\ :sub:`0` diff --git a/Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst b/Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst index f06cbeb15dc2..5cf7d387447c 100644 --- a/Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst +++ b/Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst @@ -26,18 +26,9 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - I'\ :sub:`0[7:0]` - - - I'\ :sub:`0[13:8]` - - - .. row 2 - - - start + 2: - - - Q'\ :sub:`0[7:0]` - - - Q'\ :sub:`0[13:8]` + * - start + 0: + - I'\ :sub:`0[7:0]` + - I'\ :sub:`0[13:8]` + * - start + 2: + - Q'\ :sub:`0[7:0]` + - Q'\ :sub:`0[13:8]` diff --git a/Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst b/Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst index bd81eb2e0549..fd915b7629b7 100644 --- a/Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst +++ b/Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst @@ -24,14 +24,7 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - I'\ :sub:`0` - - - .. row 2 - - - start + 1: - - - Q'\ :sub:`0` + * - start + 0: + - I'\ :sub:`0` + * - start + 1: + - Q'\ :sub:`0` diff --git a/Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst b/Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst index c72587de4a8d..8922f5b35457 100644 --- a/Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst +++ b/Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst @@ -26,18 +26,9 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - start + 0: - - - I'\ :sub:`0[7:0]` - - - I'\ :sub:`0[15:8]` - - - .. row 2 - - - start + 2: - - - Q'\ :sub:`0[7:0]` - - - Q'\ :sub:`0[15:8]` + * - start + 0: + - I'\ :sub:`0[7:0]` + - I'\ :sub:`0[15:8]` + * - start + 2: + - Q'\ :sub:`0[7:0]` + - Q'\ :sub:`0[15:8]` diff --git a/Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst b/Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst index b5f0ca0f0c45..5e383382802f 100644 --- a/Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst +++ b/Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst @@ -27,11 +27,6 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - I'\ :sub:`0[7:0]` - - - I'\ :sub:`0[11:8]` + * - start + 0: + - I'\ :sub:`0[7:0]` + - I'\ :sub:`0[11:8]` diff --git a/Documentation/media/uapi/v4l/pixfmt-srggb10.rst b/Documentation/media/uapi/v4l/pixfmt-srggb10.rst index b145c75d19bc..af2538ce34e5 100644 --- a/Documentation/media/uapi/v4l/pixfmt-srggb10.rst +++ b/Documentation/media/uapi/v4l/pixfmt-srggb10.rst @@ -38,83 +38,39 @@ are 0. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - B\ :sub:`00low` - - - B\ :sub:`00high` - - - G\ :sub:`01low` - - - G\ :sub:`01high` - - - B\ :sub:`02low` - - - B\ :sub:`02high` - - - G\ :sub:`03low` - - - G\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - G\ :sub:`10low` - - - G\ :sub:`10high` - - - R\ :sub:`11low` - - - R\ :sub:`11high` - - - G\ :sub:`12low` - - - G\ :sub:`12high` - - - R\ :sub:`13low` - - - R\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - B\ :sub:`20low` - - - B\ :sub:`20high` - - - G\ :sub:`21low` - - - G\ :sub:`21high` - - - B\ :sub:`22low` - - - B\ :sub:`22high` - - - G\ :sub:`23low` - - - G\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - G\ :sub:`30low` - - - G\ :sub:`30high` - - - R\ :sub:`31low` - - - R\ :sub:`31high` - - - G\ :sub:`32low` - - - G\ :sub:`32high` - - - R\ :sub:`33low` - - - R\ :sub:`33high` + * - start + 0: + - B\ :sub:`00low` + - B\ :sub:`00high` + - G\ :sub:`01low` + - G\ :sub:`01high` + - B\ :sub:`02low` + - B\ :sub:`02high` + - G\ :sub:`03low` + - G\ :sub:`03high` + * - start + 8: + - G\ :sub:`10low` + - G\ :sub:`10high` + - R\ :sub:`11low` + - R\ :sub:`11high` + - G\ :sub:`12low` + - G\ :sub:`12high` + - R\ :sub:`13low` + - R\ :sub:`13high` + * - start + 16: + - B\ :sub:`20low` + - B\ :sub:`20high` + - G\ :sub:`21low` + - G\ :sub:`21high` + - B\ :sub:`22low` + - B\ :sub:`22high` + - G\ :sub:`23low` + - G\ :sub:`23high` + * - start + 24: + - G\ :sub:`30low` + - G\ :sub:`30high` + - R\ :sub:`31low` + - R\ :sub:`31high` + - G\ :sub:`32low` + - G\ :sub:`32high` + - R\ :sub:`33low` + - R\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/pixfmt-srggb10p.rst b/Documentation/media/uapi/v4l/pixfmt-srggb10p.rst index 80e345704ae7..9a41c8d811d0 100644 --- a/Documentation/media/uapi/v4l/pixfmt-srggb10p.rst +++ b/Documentation/media/uapi/v4l/pixfmt-srggb10p.rst @@ -44,65 +44,34 @@ Each cell is one byte. :stub-columns: 0 :widths: 12 8 8 8 8 68 - - .. row 1 - - - start + 0: - - - B\ :sub:`00high` - - - G\ :sub:`01high` - - - B\ :sub:`02high` - - - G\ :sub:`03high` - - - G\ :sub:`03low`\ (bits 7--6) B\ :sub:`02low`\ (bits 5--4) - G\ :sub:`01low`\ (bits 3--2) B\ :sub:`00low`\ (bits 1--0) - - - .. row 2 - - - start + 5: - - - G\ :sub:`10high` - - - R\ :sub:`11high` - - - G\ :sub:`12high` - - - R\ :sub:`13high` - - - R\ :sub:`13low`\ (bits 7--6) G\ :sub:`12low`\ (bits 5--4) - R\ :sub:`11low`\ (bits 3--2) G\ :sub:`10low`\ (bits 1--0) - - - .. row 3 - - - start + 10: - - - B\ :sub:`20high` - - - G\ :sub:`21high` - - - B\ :sub:`22high` - - - G\ :sub:`23high` - - - G\ :sub:`23low`\ (bits 7--6) B\ :sub:`22low`\ (bits 5--4) - G\ :sub:`21low`\ (bits 3--2) B\ :sub:`20low`\ (bits 1--0) - - - .. row 4 - - - start + 15: - - - G\ :sub:`30high` - - - R\ :sub:`31high` - - - G\ :sub:`32high` - - - R\ :sub:`33high` - - - R\ :sub:`33low`\ (bits 7--6) G\ :sub:`32low`\ (bits 5--4) - R\ :sub:`31low`\ (bits 3--2) G\ :sub:`30low`\ (bits 1--0) + * - start + 0: + - B\ :sub:`00high` + - G\ :sub:`01high` + - B\ :sub:`02high` + - G\ :sub:`03high` + - G\ :sub:`03low`\ (bits 7--6) B\ :sub:`02low`\ (bits 5--4) + G\ :sub:`01low`\ (bits 3--2) B\ :sub:`00low`\ (bits 1--0) + * - start + 5: + - G\ :sub:`10high` + - R\ :sub:`11high` + - G\ :sub:`12high` + - R\ :sub:`13high` + - R\ :sub:`13low`\ (bits 7--6) G\ :sub:`12low`\ (bits 5--4) + R\ :sub:`11low`\ (bits 3--2) G\ :sub:`10low`\ (bits 1--0) + * - start + 10: + - B\ :sub:`20high` + - G\ :sub:`21high` + - B\ :sub:`22high` + - G\ :sub:`23high` + - G\ :sub:`23low`\ (bits 7--6) B\ :sub:`22low`\ (bits 5--4) + G\ :sub:`21low`\ (bits 3--2) B\ :sub:`20low`\ (bits 1--0) + * - start + 15: + - G\ :sub:`30high` + - R\ :sub:`31high` + - G\ :sub:`32high` + - R\ :sub:`33high` + - R\ :sub:`33low`\ (bits 7--6) G\ :sub:`32low`\ (bits 5--4) + R\ :sub:`31low`\ (bits 3--2) G\ :sub:`30low`\ (bits 1--0) .. raw:: latex diff --git a/Documentation/media/uapi/v4l/pixfmt-srggb12.rst b/Documentation/media/uapi/v4l/pixfmt-srggb12.rst index 4776f3fb28f1..a50ee143cb08 100644 --- a/Documentation/media/uapi/v4l/pixfmt-srggb12.rst +++ b/Documentation/media/uapi/v4l/pixfmt-srggb12.rst @@ -39,83 +39,39 @@ Each cell is one byte, the 4 most significant bits in the high bytes are :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - B\ :sub:`00low` - - - B\ :sub:`00high` - - - G\ :sub:`01low` - - - G\ :sub:`01high` - - - B\ :sub:`02low` - - - B\ :sub:`02high` - - - G\ :sub:`03low` - - - G\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - G\ :sub:`10low` - - - G\ :sub:`10high` - - - R\ :sub:`11low` - - - R\ :sub:`11high` - - - G\ :sub:`12low` - - - G\ :sub:`12high` - - - R\ :sub:`13low` - - - R\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - B\ :sub:`20low` - - - B\ :sub:`20high` - - - G\ :sub:`21low` - - - G\ :sub:`21high` - - - B\ :sub:`22low` - - - B\ :sub:`22high` - - - G\ :sub:`23low` - - - G\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - G\ :sub:`30low` - - - G\ :sub:`30high` - - - R\ :sub:`31low` - - - R\ :sub:`31high` - - - G\ :sub:`32low` - - - G\ :sub:`32high` - - - R\ :sub:`33low` - - - R\ :sub:`33high` + * - start + 0: + - B\ :sub:`00low` + - B\ :sub:`00high` + - G\ :sub:`01low` + - G\ :sub:`01high` + - B\ :sub:`02low` + - B\ :sub:`02high` + - G\ :sub:`03low` + - G\ :sub:`03high` + * - start + 8: + - G\ :sub:`10low` + - G\ :sub:`10high` + - R\ :sub:`11low` + - R\ :sub:`11high` + - G\ :sub:`12low` + - G\ :sub:`12high` + - R\ :sub:`13low` + - R\ :sub:`13high` + * - start + 16: + - B\ :sub:`20low` + - B\ :sub:`20high` + - G\ :sub:`21low` + - G\ :sub:`21high` + - B\ :sub:`22low` + - B\ :sub:`22high` + - G\ :sub:`23low` + - G\ :sub:`23high` + * - start + 24: + - G\ :sub:`30low` + - G\ :sub:`30high` + - R\ :sub:`31low` + - R\ :sub:`31high` + - G\ :sub:`32low` + - G\ :sub:`32high` + - R\ :sub:`33low` + - R\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/pixfmt-srggb8.rst b/Documentation/media/uapi/v4l/pixfmt-srggb8.rst index 55a1751bfe87..a3987d2e97fd 100644 --- a/Documentation/media/uapi/v4l/pixfmt-srggb8.rst +++ b/Documentation/media/uapi/v4l/pixfmt-srggb8.rst @@ -32,51 +32,23 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - B\ :sub:`00` - - - G\ :sub:`01` - - - B\ :sub:`02` - - - G\ :sub:`03` - - - .. row 2 - - - start + 4: - - - G\ :sub:`10` - - - R\ :sub:`11` - - - G\ :sub:`12` - - - R\ :sub:`13` - - - .. row 3 - - - start + 8: - - - B\ :sub:`20` - - - G\ :sub:`21` - - - B\ :sub:`22` - - - G\ :sub:`23` - - - .. row 4 - - - start + 12: - - - G\ :sub:`30` - - - R\ :sub:`31` - - - G\ :sub:`32` - - - R\ :sub:`33` + * - start + 0: + - B\ :sub:`00` + - G\ :sub:`01` + - B\ :sub:`02` + - G\ :sub:`03` + * - start + 4: + - G\ :sub:`10` + - R\ :sub:`11` + - G\ :sub:`12` + - R\ :sub:`13` + * - start + 8: + - B\ :sub:`20` + - G\ :sub:`21` + - B\ :sub:`22` + - G\ :sub:`23` + * - start + 12: + - G\ :sub:`30` + - R\ :sub:`31` + - G\ :sub:`32` + - R\ :sub:`33` diff --git a/Documentation/media/uapi/v4l/pixfmt-tch-td08.rst b/Documentation/media/uapi/v4l/pixfmt-tch-td08.rst index e1d1b75454cd..07834cd1249e 100644 --- a/Documentation/media/uapi/v4l/pixfmt-tch-td08.rst +++ b/Documentation/media/uapi/v4l/pixfmt-tch-td08.rst @@ -30,51 +30,23 @@ Each cell is one byte. :stub-columns: 0 :widths: 2 1 1 1 1 - - - .. row 1 - - - start + 0: - - - D'\ :sub:`00` - - - D'\ :sub:`01` - - - D'\ :sub:`02` - - - D'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - D'\ :sub:`10` - - - D'\ :sub:`11` - - - D'\ :sub:`12` - - - D'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - D'\ :sub:`20` - - - D'\ :sub:`21` - - - D'\ :sub:`22` - - - D'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - D'\ :sub:`30` - - - D'\ :sub:`31` - - - D'\ :sub:`32` - - - D'\ :sub:`33` + * - start + 0: + - D'\ :sub:`00` + - D'\ :sub:`01` + - D'\ :sub:`02` + - D'\ :sub:`03` + * - start + 4: + - D'\ :sub:`10` + - D'\ :sub:`11` + - D'\ :sub:`12` + - D'\ :sub:`13` + * - start + 8: + - D'\ :sub:`20` + - D'\ :sub:`21` + - D'\ :sub:`22` + - D'\ :sub:`23` + * - start + 12: + - D'\ :sub:`30` + - D'\ :sub:`31` + - D'\ :sub:`32` + - D'\ :sub:`33` diff --git a/Documentation/media/uapi/v4l/pixfmt-tch-td16.rst b/Documentation/media/uapi/v4l/pixfmt-tch-td16.rst index dfbbc405f889..29ebcf40a989 100644 --- a/Documentation/media/uapi/v4l/pixfmt-tch-td16.rst +++ b/Documentation/media/uapi/v4l/pixfmt-tch-td16.rst @@ -29,83 +29,39 @@ Each cell is one byte. :stub-columns: 0 :widths: 2 1 1 1 1 1 1 1 1 - - - .. row 1 - - - start + 0: - - - D'\ :sub:`00high` - - - D'\ :sub:`00low` - - - D'\ :sub:`01high` - - - D'\ :sub:`01low` - - - D'\ :sub:`02high` - - - D'\ :sub:`02low` - - - D'\ :sub:`03high` - - - D'\ :sub:`03low` - - - .. row 2 - - - start + 8: - - - D'\ :sub:`10high` - - - D'\ :sub:`10low` - - - D'\ :sub:`11high` - - - D'\ :sub:`11low` - - - D'\ :sub:`12high` - - - D'\ :sub:`12low` - - - D'\ :sub:`13high` - - - D'\ :sub:`13low` - - - .. row 3 - - - start + 16: - - - D'\ :sub:`20high` - - - D'\ :sub:`20low` - - - D'\ :sub:`21high` - - - D'\ :sub:`21low` - - - D'\ :sub:`22high` - - - D'\ :sub:`22low` - - - D'\ :sub:`23high` - - - D'\ :sub:`23low` - - - .. row 4 - - - start + 24: - - - D'\ :sub:`30high` - - - D'\ :sub:`30low` - - - D'\ :sub:`31high` - - - D'\ :sub:`31low` - - - D'\ :sub:`32high` - - - D'\ :sub:`32low` - - - D'\ :sub:`33high` - - - D'\ :sub:`33low` + * - start + 0: + - D'\ :sub:`00high` + - D'\ :sub:`00low` + - D'\ :sub:`01high` + - D'\ :sub:`01low` + - D'\ :sub:`02high` + - D'\ :sub:`02low` + - D'\ :sub:`03high` + - D'\ :sub:`03low` + * - start + 8: + - D'\ :sub:`10high` + - D'\ :sub:`10low` + - D'\ :sub:`11high` + - D'\ :sub:`11low` + - D'\ :sub:`12high` + - D'\ :sub:`12low` + - D'\ :sub:`13high` + - D'\ :sub:`13low` + * - start + 16: + - D'\ :sub:`20high` + - D'\ :sub:`20low` + - D'\ :sub:`21high` + - D'\ :sub:`21low` + - D'\ :sub:`22high` + - D'\ :sub:`22low` + - D'\ :sub:`23high` + - D'\ :sub:`23low` + * - start + 24: + - D'\ :sub:`30high` + - D'\ :sub:`30low` + - D'\ :sub:`31high` + - D'\ :sub:`31low` + - D'\ :sub:`32high` + - D'\ :sub:`32low` + - D'\ :sub:`33high` + - D'\ :sub:`33low` diff --git a/Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst b/Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst index 18408afe39f5..e7fb7ddd191b 100644 --- a/Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst +++ b/Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst @@ -28,51 +28,23 @@ Each cell is one byte. :stub-columns: 0 :widths: 2 1 1 1 1 - - - .. row 1 - - - start + 0: - - - R'\ :sub:`00` - - - R'\ :sub:`01` - - - R'\ :sub:`02` - - - R'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - R'\ :sub:`10` - - - R'\ :sub:`11` - - - R'\ :sub:`12` - - - R'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - R'\ :sub:`20` - - - R'\ :sub:`21` - - - R'\ :sub:`22` - - - R'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - R'\ :sub:`30` - - - R'\ :sub:`31` - - - R'\ :sub:`32` - - - R'\ :sub:`33` + * - start + 0: + - R'\ :sub:`00` + - R'\ :sub:`01` + - R'\ :sub:`02` + - R'\ :sub:`03` + * - start + 4: + - R'\ :sub:`10` + - R'\ :sub:`11` + - R'\ :sub:`12` + - R'\ :sub:`13` + * - start + 8: + - R'\ :sub:`20` + - R'\ :sub:`21` + - R'\ :sub:`22` + - R'\ :sub:`23` + * - start + 12: + - R'\ :sub:`30` + - R'\ :sub:`31` + - R'\ :sub:`32` + - R'\ :sub:`33` diff --git a/Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst b/Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst index 67be13d9e550..1588fcc3f1e7 100644 --- a/Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst +++ b/Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst @@ -28,83 +28,39 @@ Each cell is one byte. :stub-columns: 0 :widths: 2 1 1 1 1 1 1 1 1 - - - .. row 1 - - - start + 0: - - - R'\ :sub:`00high` - - - R'\ :sub:`00low` - - - R'\ :sub:`01high` - - - R'\ :sub:`01low` - - - R'\ :sub:`02high` - - - R'\ :sub:`02low` - - - R'\ :sub:`03high` - - - R'\ :sub:`03low` - - - .. row 2 - - - start + 8: - - - R'\ :sub:`10high` - - - R'\ :sub:`10low` - - - R'\ :sub:`11high` - - - R'\ :sub:`11low` - - - R'\ :sub:`12high` - - - R'\ :sub:`12low` - - - R'\ :sub:`13high` - - - R'\ :sub:`13low` - - - .. row 3 - - - start + 16: - - - R'\ :sub:`20high` - - - R'\ :sub:`20low` - - - R'\ :sub:`21high` - - - R'\ :sub:`21low` - - - R'\ :sub:`22high` - - - R'\ :sub:`22low` - - - R'\ :sub:`23high` - - - R'\ :sub:`23low` - - - .. row 4 - - - start + 24: - - - R'\ :sub:`30high` - - - R'\ :sub:`30low` - - - R'\ :sub:`31high` - - - R'\ :sub:`31low` - - - R'\ :sub:`32high` - - - R'\ :sub:`32low` - - - R'\ :sub:`33high` - - - R'\ :sub:`33low` + * - start + 0: + - R'\ :sub:`00high` + - R'\ :sub:`00low` + - R'\ :sub:`01high` + - R'\ :sub:`01low` + - R'\ :sub:`02high` + - R'\ :sub:`02low` + - R'\ :sub:`03high` + - R'\ :sub:`03low` + * - start + 8: + - R'\ :sub:`10high` + - R'\ :sub:`10low` + - R'\ :sub:`11high` + - R'\ :sub:`11low` + - R'\ :sub:`12high` + - R'\ :sub:`12low` + - R'\ :sub:`13high` + - R'\ :sub:`13low` + * - start + 16: + - R'\ :sub:`20high` + - R'\ :sub:`20low` + - R'\ :sub:`21high` + - R'\ :sub:`21low` + - R'\ :sub:`22high` + - R'\ :sub:`22low` + - R'\ :sub:`23high` + - R'\ :sub:`23low` + * - start + 24: + - R'\ :sub:`30high` + - R'\ :sub:`30low` + - R'\ :sub:`31high` + - R'\ :sub:`31low` + - R'\ :sub:`32high` + - R'\ :sub:`32low` + - R'\ :sub:`33high` + - R'\ :sub:`33low` diff --git a/Documentation/media/uapi/v4l/pixfmt-uv8.rst b/Documentation/media/uapi/v4l/pixfmt-uv8.rst index 8c4ebbf79ca0..c449231b51bb 100644 --- a/Documentation/media/uapi/v4l/pixfmt-uv8.rst +++ b/Documentation/media/uapi/v4l/pixfmt-uv8.rst @@ -25,51 +25,23 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Cb\ :sub:`00` - - - Cr\ :sub:`00` - - - Cb\ :sub:`01` - - - Cr\ :sub:`01` - - - .. row 2 - - - start + 4: - - - Cb\ :sub:`10` - - - Cr\ :sub:`10` - - - Cb\ :sub:`11` - - - Cr\ :sub:`11` - - - .. row 3 - - - start + 8: - - - Cb\ :sub:`20` - - - Cr\ :sub:`20` - - - Cb\ :sub:`21` - - - Cr\ :sub:`21` - - - .. row 4 - - - start + 12: - - - Cb\ :sub:`30` - - - Cr\ :sub:`30` - - - Cb\ :sub:`31` - - - Cr\ :sub:`31` + * - start + 0: + - Cb\ :sub:`00` + - Cr\ :sub:`00` + - Cb\ :sub:`01` + - Cr\ :sub:`01` + * - start + 4: + - Cb\ :sub:`10` + - Cr\ :sub:`10` + - Cb\ :sub:`11` + - Cr\ :sub:`11` + * - start + 8: + - Cb\ :sub:`20` + - Cr\ :sub:`20` + - Cb\ :sub:`21` + - Cr\ :sub:`21` + * - start + 12: + - Cb\ :sub:`30` + - Cr\ :sub:`30` + - Cb\ :sub:`31` + - Cr\ :sub:`31` diff --git a/Documentation/media/uapi/v4l/pixfmt-uyvy.rst b/Documentation/media/uapi/v4l/pixfmt-uyvy.rst index ed8ccf52b1db..30660e04dd0e 100644 --- a/Documentation/media/uapi/v4l/pixfmt-uyvy.rst +++ b/Documentation/media/uapi/v4l/pixfmt-uyvy.rst @@ -27,86 +27,42 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Cb\ :sub:`00` - - - Y'\ :sub:`00` - - - Cr\ :sub:`00` - - - Y'\ :sub:`01` - - - Cb\ :sub:`01` - - - Y'\ :sub:`02` - - - Cr\ :sub:`01` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 8: - - - Cb\ :sub:`10` - - - Y'\ :sub:`10` - - - Cr\ :sub:`10` - - - Y'\ :sub:`11` - - - Cb\ :sub:`11` - - - Y'\ :sub:`12` - - - Cr\ :sub:`11` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 16: - - - Cb\ :sub:`20` - - - Y'\ :sub:`20` - - - Cr\ :sub:`20` - - - Y'\ :sub:`21` - - - Cb\ :sub:`21` - - - Y'\ :sub:`22` - - - Cr\ :sub:`21` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 24: - - - Cb\ :sub:`30` - - - Y'\ :sub:`30` - - - Cr\ :sub:`30` - - - Y'\ :sub:`31` - - - Cb\ :sub:`31` - - - Y'\ :sub:`32` - - - Cr\ :sub:`31` - - - Y'\ :sub:`33` + * - start + 0: + - Cb\ :sub:`00` + - Y'\ :sub:`00` + - Cr\ :sub:`00` + - Y'\ :sub:`01` + - Cb\ :sub:`01` + - Y'\ :sub:`02` + - Cr\ :sub:`01` + - Y'\ :sub:`03` + * - start + 8: + - Cb\ :sub:`10` + - Y'\ :sub:`10` + - Cr\ :sub:`10` + - Y'\ :sub:`11` + - Cb\ :sub:`11` + - Y'\ :sub:`12` + - Cr\ :sub:`11` + - Y'\ :sub:`13` + * - start + 16: + - Cb\ :sub:`20` + - Y'\ :sub:`20` + - Cr\ :sub:`20` + - Y'\ :sub:`21` + - Cb\ :sub:`21` + - Y'\ :sub:`22` + - Cr\ :sub:`21` + - Y'\ :sub:`23` + * - start + 24: + - Cb\ :sub:`30` + - Y'\ :sub:`30` + - Cr\ :sub:`30` + - Y'\ :sub:`31` + - Cb\ :sub:`31` + - Y'\ :sub:`32` + - Cr\ :sub:`31` + - Y'\ :sub:`33` **Color Sample Location..** @@ -117,80 +73,38 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 3 - - - 1 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 4 - - - 2 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 5 - - - 3 - - - Y - - - C - - - Y - - - Y - - - C - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - C + - Y + - Y + - C + - Y + * - 1 + - Y + - C + - Y + - Y + - C + - Y + * - 2 + - Y + - C + - Y + - Y + - C + - Y + * - 3 + - Y + - C + - Y + - Y + - C + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-vyuy.rst b/Documentation/media/uapi/v4l/pixfmt-vyuy.rst index d62c1ac4ed08..a3f61f280b94 100644 --- a/Documentation/media/uapi/v4l/pixfmt-vyuy.rst +++ b/Documentation/media/uapi/v4l/pixfmt-vyuy.rst @@ -27,86 +27,42 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Cr\ :sub:`00` - - - Y'\ :sub:`00` - - - Cb\ :sub:`00` - - - Y'\ :sub:`01` - - - Cr\ :sub:`01` - - - Y'\ :sub:`02` - - - Cb\ :sub:`01` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 8: - - - Cr\ :sub:`10` - - - Y'\ :sub:`10` - - - Cb\ :sub:`10` - - - Y'\ :sub:`11` - - - Cr\ :sub:`11` - - - Y'\ :sub:`12` - - - Cb\ :sub:`11` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 16: - - - Cr\ :sub:`20` - - - Y'\ :sub:`20` - - - Cb\ :sub:`20` - - - Y'\ :sub:`21` - - - Cr\ :sub:`21` - - - Y'\ :sub:`22` - - - Cb\ :sub:`21` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 24: - - - Cr\ :sub:`30` - - - Y'\ :sub:`30` - - - Cb\ :sub:`30` - - - Y'\ :sub:`31` - - - Cr\ :sub:`31` - - - Y'\ :sub:`32` - - - Cb\ :sub:`31` - - - Y'\ :sub:`33` + * - start + 0: + - Cr\ :sub:`00` + - Y'\ :sub:`00` + - Cb\ :sub:`00` + - Y'\ :sub:`01` + - Cr\ :sub:`01` + - Y'\ :sub:`02` + - Cb\ :sub:`01` + - Y'\ :sub:`03` + * - start + 8: + - Cr\ :sub:`10` + - Y'\ :sub:`10` + - Cb\ :sub:`10` + - Y'\ :sub:`11` + - Cr\ :sub:`11` + - Y'\ :sub:`12` + - Cb\ :sub:`11` + - Y'\ :sub:`13` + * - start + 16: + - Cr\ :sub:`20` + - Y'\ :sub:`20` + - Cb\ :sub:`20` + - Y'\ :sub:`21` + - Cr\ :sub:`21` + - Y'\ :sub:`22` + - Cb\ :sub:`21` + - Y'\ :sub:`23` + * - start + 24: + - Cr\ :sub:`30` + - Y'\ :sub:`30` + - Cb\ :sub:`30` + - Y'\ :sub:`31` + - Cr\ :sub:`31` + - Y'\ :sub:`32` + - Cb\ :sub:`31` + - Y'\ :sub:`33` **Color Sample Location..** @@ -115,80 +71,38 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - - - 2 - - - 3 - - - .. row 2 - - - 0 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 3 - - - 1 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 4 - - - 2 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 5 - - - 3 - - - Y - - - C - - - Y - - - Y - - - C - - - Y + * - + - 0 + - + - 1 + - + - 2 + - 3 + * - 0 + - Y + - C + - Y + - Y + - C + - Y + * - 1 + - Y + - C + - Y + - Y + - C + - Y + * - 2 + - Y + - C + - Y + - Y + - C + - Y + * - 3 + - Y + - C + - Y + - Y + - C + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-y10.rst b/Documentation/media/uapi/v4l/pixfmt-y10.rst index cb78e365a84c..89e22899cd81 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y10.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y10.rst @@ -27,83 +27,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00low` - - - Y'\ :sub:`00high` - - - Y'\ :sub:`01low` - - - Y'\ :sub:`01high` - - - Y'\ :sub:`02low` - - - Y'\ :sub:`02high` - - - Y'\ :sub:`03low` - - - Y'\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10low` - - - Y'\ :sub:`10high` - - - Y'\ :sub:`11low` - - - Y'\ :sub:`11high` - - - Y'\ :sub:`12low` - - - Y'\ :sub:`12high` - - - Y'\ :sub:`13low` - - - Y'\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20low` - - - Y'\ :sub:`20high` - - - Y'\ :sub:`21low` - - - Y'\ :sub:`21high` - - - Y'\ :sub:`22low` - - - Y'\ :sub:`22high` - - - Y'\ :sub:`23low` - - - Y'\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30low` - - - Y'\ :sub:`30high` - - - Y'\ :sub:`31low` - - - Y'\ :sub:`31high` - - - Y'\ :sub:`32low` - - - Y'\ :sub:`32high` - - - Y'\ :sub:`33low` - - - Y'\ :sub:`33high` + * - start + 0: + - Y'\ :sub:`00low` + - Y'\ :sub:`00high` + - Y'\ :sub:`01low` + - Y'\ :sub:`01high` + - Y'\ :sub:`02low` + - Y'\ :sub:`02high` + - Y'\ :sub:`03low` + - Y'\ :sub:`03high` + * - start + 8: + - Y'\ :sub:`10low` + - Y'\ :sub:`10high` + - Y'\ :sub:`11low` + - Y'\ :sub:`11high` + - Y'\ :sub:`12low` + - Y'\ :sub:`12high` + - Y'\ :sub:`13low` + - Y'\ :sub:`13high` + * - start + 16: + - Y'\ :sub:`20low` + - Y'\ :sub:`20high` + - Y'\ :sub:`21low` + - Y'\ :sub:`21high` + - Y'\ :sub:`22low` + - Y'\ :sub:`22high` + - Y'\ :sub:`23low` + - Y'\ :sub:`23high` + * - start + 24: + - Y'\ :sub:`30low` + - Y'\ :sub:`30high` + - Y'\ :sub:`31low` + - Y'\ :sub:`31high` + - Y'\ :sub:`32low` + - Y'\ :sub:`32high` + - Y'\ :sub:`33low` + - Y'\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/pixfmt-y10b.rst b/Documentation/media/uapi/v4l/pixfmt-y10b.rst index e89850bfef58..9feddf3ae07b 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y10b.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y10b.rst @@ -26,14 +26,8 @@ pixels. :header-rows: 0 :stub-columns: 0 - - .. row 1 - - - Y'\ :sub:`00[9:2]` - - - Y'\ :sub:`00[1:0]`\ Y'\ :sub:`01[9:4]` - - - Y'\ :sub:`01[3:0]`\ Y'\ :sub:`02[9:6]` - - - Y'\ :sub:`02[5:0]`\ Y'\ :sub:`03[9:8]` - - - Y'\ :sub:`03[7:0]` + * - Y'\ :sub:`00[9:2]` + - Y'\ :sub:`00[1:0]`\ Y'\ :sub:`01[9:4]` + - Y'\ :sub:`01[3:0]`\ Y'\ :sub:`02[9:6]` + - Y'\ :sub:`02[5:0]`\ Y'\ :sub:`03[9:8]` + - Y'\ :sub:`03[7:0]` diff --git a/Documentation/media/uapi/v4l/pixfmt-y12.rst b/Documentation/media/uapi/v4l/pixfmt-y12.rst index 0958e87b6d22..0f230713290b 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y12.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y12.rst @@ -27,83 +27,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00low` - - - Y'\ :sub:`00high` - - - Y'\ :sub:`01low` - - - Y'\ :sub:`01high` - - - Y'\ :sub:`02low` - - - Y'\ :sub:`02high` - - - Y'\ :sub:`03low` - - - Y'\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10low` - - - Y'\ :sub:`10high` - - - Y'\ :sub:`11low` - - - Y'\ :sub:`11high` - - - Y'\ :sub:`12low` - - - Y'\ :sub:`12high` - - - Y'\ :sub:`13low` - - - Y'\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20low` - - - Y'\ :sub:`20high` - - - Y'\ :sub:`21low` - - - Y'\ :sub:`21high` - - - Y'\ :sub:`22low` - - - Y'\ :sub:`22high` - - - Y'\ :sub:`23low` - - - Y'\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30low` - - - Y'\ :sub:`30high` - - - Y'\ :sub:`31low` - - - Y'\ :sub:`31high` - - - Y'\ :sub:`32low` - - - Y'\ :sub:`32high` - - - Y'\ :sub:`33low` - - - Y'\ :sub:`33high` + * - start + 0: + - Y'\ :sub:`00low` + - Y'\ :sub:`00high` + - Y'\ :sub:`01low` + - Y'\ :sub:`01high` + - Y'\ :sub:`02low` + - Y'\ :sub:`02high` + - Y'\ :sub:`03low` + - Y'\ :sub:`03high` + * - start + 8: + - Y'\ :sub:`10low` + - Y'\ :sub:`10high` + - Y'\ :sub:`11low` + - Y'\ :sub:`11high` + - Y'\ :sub:`12low` + - Y'\ :sub:`12high` + - Y'\ :sub:`13low` + - Y'\ :sub:`13high` + * - start + 16: + - Y'\ :sub:`20low` + - Y'\ :sub:`20high` + - Y'\ :sub:`21low` + - Y'\ :sub:`21high` + - Y'\ :sub:`22low` + - Y'\ :sub:`22high` + - Y'\ :sub:`23low` + - Y'\ :sub:`23high` + * - start + 24: + - Y'\ :sub:`30low` + - Y'\ :sub:`30high` + - Y'\ :sub:`31low` + - Y'\ :sub:`31high` + - Y'\ :sub:`32low` + - Y'\ :sub:`32high` + - Y'\ :sub:`33low` + - Y'\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/pixfmt-y12i.rst b/Documentation/media/uapi/v4l/pixfmt-y12i.rst index e66d8bcdb410..bb39a2463564 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y12i.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y12i.rst @@ -31,11 +31,6 @@ interleaved pixel. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Y'\ :sub:`0left[7:0]` - - - Y'\ :sub:`0right[3:0]`\ Y'\ :sub:`0left[11:8]` - - - Y'\ :sub:`0right[11:4]` + * - Y'\ :sub:`0left[7:0]` + - Y'\ :sub:`0right[3:0]`\ Y'\ :sub:`0left[11:8]` + - Y'\ :sub:`0right[11:4]` diff --git a/Documentation/media/uapi/v4l/pixfmt-y16-be.rst b/Documentation/media/uapi/v4l/pixfmt-y16-be.rst index fc23c6b12193..54ce35ef84b7 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y16-be.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y16-be.rst @@ -31,83 +31,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00high` - - - Y'\ :sub:`00low` - - - Y'\ :sub:`01high` - - - Y'\ :sub:`01low` - - - Y'\ :sub:`02high` - - - Y'\ :sub:`02low` - - - Y'\ :sub:`03high` - - - Y'\ :sub:`03low` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10high` - - - Y'\ :sub:`10low` - - - Y'\ :sub:`11high` - - - Y'\ :sub:`11low` - - - Y'\ :sub:`12high` - - - Y'\ :sub:`12low` - - - Y'\ :sub:`13high` - - - Y'\ :sub:`13low` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20high` - - - Y'\ :sub:`20low` - - - Y'\ :sub:`21high` - - - Y'\ :sub:`21low` - - - Y'\ :sub:`22high` - - - Y'\ :sub:`22low` - - - Y'\ :sub:`23high` - - - Y'\ :sub:`23low` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30high` - - - Y'\ :sub:`30low` - - - Y'\ :sub:`31high` - - - Y'\ :sub:`31low` - - - Y'\ :sub:`32high` - - - Y'\ :sub:`32low` - - - Y'\ :sub:`33high` - - - Y'\ :sub:`33low` + * - start + 0: + - Y'\ :sub:`00high` + - Y'\ :sub:`00low` + - Y'\ :sub:`01high` + - Y'\ :sub:`01low` + - Y'\ :sub:`02high` + - Y'\ :sub:`02low` + - Y'\ :sub:`03high` + - Y'\ :sub:`03low` + * - start + 8: + - Y'\ :sub:`10high` + - Y'\ :sub:`10low` + - Y'\ :sub:`11high` + - Y'\ :sub:`11low` + - Y'\ :sub:`12high` + - Y'\ :sub:`12low` + - Y'\ :sub:`13high` + - Y'\ :sub:`13low` + * - start + 16: + - Y'\ :sub:`20high` + - Y'\ :sub:`20low` + - Y'\ :sub:`21high` + - Y'\ :sub:`21low` + - Y'\ :sub:`22high` + - Y'\ :sub:`22low` + - Y'\ :sub:`23high` + - Y'\ :sub:`23low` + * - start + 24: + - Y'\ :sub:`30high` + - Y'\ :sub:`30low` + - Y'\ :sub:`31high` + - Y'\ :sub:`31low` + - Y'\ :sub:`32high` + - Y'\ :sub:`32low` + - Y'\ :sub:`33high` + - Y'\ :sub:`33low` diff --git a/Documentation/media/uapi/v4l/pixfmt-y16.rst b/Documentation/media/uapi/v4l/pixfmt-y16.rst index 6b4edc4e34e5..bcbd52de3aca 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y16.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y16.rst @@ -31,83 +31,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00low` - - - Y'\ :sub:`00high` - - - Y'\ :sub:`01low` - - - Y'\ :sub:`01high` - - - Y'\ :sub:`02low` - - - Y'\ :sub:`02high` - - - Y'\ :sub:`03low` - - - Y'\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10low` - - - Y'\ :sub:`10high` - - - Y'\ :sub:`11low` - - - Y'\ :sub:`11high` - - - Y'\ :sub:`12low` - - - Y'\ :sub:`12high` - - - Y'\ :sub:`13low` - - - Y'\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20low` - - - Y'\ :sub:`20high` - - - Y'\ :sub:`21low` - - - Y'\ :sub:`21high` - - - Y'\ :sub:`22low` - - - Y'\ :sub:`22high` - - - Y'\ :sub:`23low` - - - Y'\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30low` - - - Y'\ :sub:`30high` - - - Y'\ :sub:`31low` - - - Y'\ :sub:`31high` - - - Y'\ :sub:`32low` - - - Y'\ :sub:`32high` - - - Y'\ :sub:`33low` - - - Y'\ :sub:`33high` + * - start + 0: + - Y'\ :sub:`00low` + - Y'\ :sub:`00high` + - Y'\ :sub:`01low` + - Y'\ :sub:`01high` + - Y'\ :sub:`02low` + - Y'\ :sub:`02high` + - Y'\ :sub:`03low` + - Y'\ :sub:`03high` + * - start + 8: + - Y'\ :sub:`10low` + - Y'\ :sub:`10high` + - Y'\ :sub:`11low` + - Y'\ :sub:`11high` + - Y'\ :sub:`12low` + - Y'\ :sub:`12high` + - Y'\ :sub:`13low` + - Y'\ :sub:`13high` + * - start + 16: + - Y'\ :sub:`20low` + - Y'\ :sub:`20high` + - Y'\ :sub:`21low` + - Y'\ :sub:`21high` + - Y'\ :sub:`22low` + - Y'\ :sub:`22high` + - Y'\ :sub:`23low` + - Y'\ :sub:`23high` + * - start + 24: + - Y'\ :sub:`30low` + - Y'\ :sub:`30high` + - Y'\ :sub:`31low` + - Y'\ :sub:`31high` + - Y'\ :sub:`32low` + - Y'\ :sub:`32high` + - Y'\ :sub:`33low` + - Y'\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/pixfmt-y41p.rst b/Documentation/media/uapi/v4l/pixfmt-y41p.rst index 9c3194bbf77e..05d040c46a47 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y41p.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y41p.rst @@ -34,118 +34,58 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Cb\ :sub:`00` - - - Y'\ :sub:`00` - - - Cr\ :sub:`00` - - - Y'\ :sub:`01` - - - Cb\ :sub:`01` - - - Y'\ :sub:`02` - - - Cr\ :sub:`01` - - - Y'\ :sub:`03` - - - Y'\ :sub:`04` - - - Y'\ :sub:`05` - - - Y'\ :sub:`06` - - - Y'\ :sub:`07` - - - .. row 2 - - - start + 12: - - - Cb\ :sub:`10` - - - Y'\ :sub:`10` - - - Cr\ :sub:`10` - - - Y'\ :sub:`11` - - - Cb\ :sub:`11` - - - Y'\ :sub:`12` - - - Cr\ :sub:`11` - - - Y'\ :sub:`13` - - - Y'\ :sub:`14` - - - Y'\ :sub:`15` - - - Y'\ :sub:`16` - - - Y'\ :sub:`17` - - - .. row 3 - - - start + 24: - - - Cb\ :sub:`20` - - - Y'\ :sub:`20` - - - Cr\ :sub:`20` - - - Y'\ :sub:`21` - - - Cb\ :sub:`21` - - - Y'\ :sub:`22` - - - Cr\ :sub:`21` - - - Y'\ :sub:`23` - - - Y'\ :sub:`24` - - - Y'\ :sub:`25` - - - Y'\ :sub:`26` - - - Y'\ :sub:`27` - - - .. row 4 - - - start + 36: - - - Cb\ :sub:`30` - - - Y'\ :sub:`30` - - - Cr\ :sub:`30` - - - Y'\ :sub:`31` - - - Cb\ :sub:`31` - - - Y'\ :sub:`32` - - - Cr\ :sub:`31` - - - Y'\ :sub:`33` - - - Y'\ :sub:`34` - - - Y'\ :sub:`35` - - - Y'\ :sub:`36` - - - Y'\ :sub:`37` + * - start + 0: + - Cb\ :sub:`00` + - Y'\ :sub:`00` + - Cr\ :sub:`00` + - Y'\ :sub:`01` + - Cb\ :sub:`01` + - Y'\ :sub:`02` + - Cr\ :sub:`01` + - Y'\ :sub:`03` + - Y'\ :sub:`04` + - Y'\ :sub:`05` + - Y'\ :sub:`06` + - Y'\ :sub:`07` + * - start + 12: + - Cb\ :sub:`10` + - Y'\ :sub:`10` + - Cr\ :sub:`10` + - Y'\ :sub:`11` + - Cb\ :sub:`11` + - Y'\ :sub:`12` + - Cr\ :sub:`11` + - Y'\ :sub:`13` + - Y'\ :sub:`14` + - Y'\ :sub:`15` + - Y'\ :sub:`16` + - Y'\ :sub:`17` + * - start + 24: + - Cb\ :sub:`20` + - Y'\ :sub:`20` + - Cr\ :sub:`20` + - Y'\ :sub:`21` + - Cb\ :sub:`21` + - Y'\ :sub:`22` + - Cr\ :sub:`21` + - Y'\ :sub:`23` + - Y'\ :sub:`24` + - Y'\ :sub:`25` + - Y'\ :sub:`26` + - Y'\ :sub:`27` + * - start + 36: + - Cb\ :sub:`30` + - Y'\ :sub:`30` + - Cr\ :sub:`30` + - Y'\ :sub:`31` + - Cb\ :sub:`31` + - Y'\ :sub:`32` + - Cr\ :sub:`31` + - Y'\ :sub:`33` + - Y'\ :sub:`34` + - Y'\ :sub:`35` + - Y'\ :sub:`36` + - Y'\ :sub:`37` **Color Sample Location..** @@ -154,120 +94,58 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - 1 - - - - - 2 - - - 3 - - - 4 - - - 5 - - - - - 6 - - - 7 - - - .. row 2 - - - 0 - - - Y - - - Y - - - C - - - Y - - - Y - - - Y - - - Y - - - C - - - Y - - - Y - - - .. row 3 - - - 1 - - - Y - - - Y - - - C - - - Y - - - Y - - - Y - - - Y - - - C - - - Y - - - Y - - - .. row 4 - - - 2 - - - Y - - - Y - - - C - - - Y - - - Y - - - Y - - - Y - - - C - - - Y - - - Y - - - .. row 5 - - - 3 - - - Y - - - Y - - - C - - - Y - - - Y - - - Y - - - Y - - - C - - - Y - - - Y + * - + - 0 + - 1 + - + - 2 + - 3 + - 4 + - 5 + - + - 6 + - 7 + * - 0 + - Y + - Y + - C + - Y + - Y + - Y + - Y + - C + - Y + - Y + * - 1 + - Y + - Y + - C + - Y + - Y + - Y + - Y + - C + - Y + - Y + * - 2 + - Y + - Y + - C + - Y + - Y + - Y + - Y + - C + - Y + - Y + * - 3 + - Y + - Y + - C + - Y + - Y + - Y + - Y + - C + - Y + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-y8i.rst b/Documentation/media/uapi/v4l/pixfmt-y8i.rst index 16bdfbbe6915..fd8ed23dd342 100644 --- a/Documentation/media/uapi/v4l/pixfmt-y8i.rst +++ b/Documentation/media/uapi/v4l/pixfmt-y8i.rst @@ -28,83 +28,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00left` - - - Y'\ :sub:`00right` - - - Y'\ :sub:`01left` - - - Y'\ :sub:`01right` - - - Y'\ :sub:`02left` - - - Y'\ :sub:`02right` - - - Y'\ :sub:`03left` - - - Y'\ :sub:`03right` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10left` - - - Y'\ :sub:`10right` - - - Y'\ :sub:`11left` - - - Y'\ :sub:`11right` - - - Y'\ :sub:`12left` - - - Y'\ :sub:`12right` - - - Y'\ :sub:`13left` - - - Y'\ :sub:`13right` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20left` - - - Y'\ :sub:`20right` - - - Y'\ :sub:`21left` - - - Y'\ :sub:`21right` - - - Y'\ :sub:`22left` - - - Y'\ :sub:`22right` - - - Y'\ :sub:`23left` - - - Y'\ :sub:`23right` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30left` - - - Y'\ :sub:`30right` - - - Y'\ :sub:`31left` - - - Y'\ :sub:`31right` - - - Y'\ :sub:`32left` - - - Y'\ :sub:`32right` - - - Y'\ :sub:`33left` - - - Y'\ :sub:`33right` + * - start + 0: + - Y'\ :sub:`00left` + - Y'\ :sub:`00right` + - Y'\ :sub:`01left` + - Y'\ :sub:`01right` + - Y'\ :sub:`02left` + - Y'\ :sub:`02right` + - Y'\ :sub:`03left` + - Y'\ :sub:`03right` + * - start + 8: + - Y'\ :sub:`10left` + - Y'\ :sub:`10right` + - Y'\ :sub:`11left` + - Y'\ :sub:`11right` + - Y'\ :sub:`12left` + - Y'\ :sub:`12right` + - Y'\ :sub:`13left` + - Y'\ :sub:`13right` + * - start + 16: + - Y'\ :sub:`20left` + - Y'\ :sub:`20right` + - Y'\ :sub:`21left` + - Y'\ :sub:`21right` + - Y'\ :sub:`22left` + - Y'\ :sub:`22right` + - Y'\ :sub:`23left` + - Y'\ :sub:`23right` + * - start + 24: + - Y'\ :sub:`30left` + - Y'\ :sub:`30right` + - Y'\ :sub:`31left` + - Y'\ :sub:`31right` + - Y'\ :sub:`32left` + - Y'\ :sub:`32right` + - Y'\ :sub:`33left` + - Y'\ :sub:`33right` diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv410.rst b/Documentation/media/uapi/v4l/pixfmt-yuv410.rst index 54909839b0d1..0c49915af850 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv410.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv410.rst @@ -41,66 +41,30 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cr\ :sub:`00` - - - .. row 6 - - - start + 17: - - - Cb\ :sub:`00` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cr\ :sub:`00` + * - start + 17: + - Cb\ :sub:`00` **Color Sample Location..** @@ -111,97 +75,53 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 3 - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 5 - - - - - - - - - - - C - - - - - - - - - - .. row 6 - - - 2 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 7 - - - - - - .. row 8 - - - 3 - - - Y - - - - - Y - - - - - Y - - - - - Y + * - + - 0 + - + - 1 + - + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - + - Y + - + - Y + * - + * - 1 + - Y + - + - Y + - + - Y + - + - Y + * - + - + - + - + - C + - + - + - + * - 2 + - Y + - + - Y + - + - Y + - + - Y + * - + * - 3 + - Y + - + - Y + - + - Y + - + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv411p.rst b/Documentation/media/uapi/v4l/pixfmt-yuv411p.rst index 913f68fe2536..2cf33fad7254 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv411p.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv411p.rst @@ -37,102 +37,42 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cb\ :sub:`00` - - - .. row 6 - - - start + 17: - - - Cb\ :sub:`10` - - - .. row 7 - - - start + 18: - - - Cb\ :sub:`20` - - - .. row 8 - - - start + 19: - - - Cb\ :sub:`30` - - - .. row 9 - - - start + 20: - - - Cr\ :sub:`00` - - - .. row 10 - - - start + 21: - - - Cr\ :sub:`10` - - - .. row 11 - - - start + 22: - - - Cr\ :sub:`20` - - - .. row 12 - - - start + 23: - - - Cr\ :sub:`30` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cb\ :sub:`00` + * - start + 17: + - Cb\ :sub:`10` + * - start + 18: + - Cb\ :sub:`20` + * - start + 19: + - Cb\ :sub:`30` + * - start + 20: + - Cr\ :sub:`00` + * - start + 21: + - Cr\ :sub:`10` + * - start + 22: + - Cr\ :sub:`20` + * - start + 23: + - Cr\ :sub:`30` **Color Sample Location..** @@ -143,71 +83,33 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - 1 - - - - - 2 - - - 3 - - - .. row 2 - - - 0 - - - Y - - - Y - - - C - - - Y - - - Y - - - .. row 3 - - - 1 - - - Y - - - Y - - - C - - - Y - - - Y - - - .. row 4 - - - 2 - - - Y - - - Y - - - C - - - Y - - - Y - - - .. row 5 - - - 3 - - - Y - - - Y - - - C - - - Y - - - Y + * - + - 0 + - 1 + - + - 2 + - 3 + * - 0 + - Y + - Y + - C + - Y + - Y + * - 1 + - Y + - Y + - C + - Y + - Y + * - 2 + - Y + - Y + - C + - Y + - Y + * - 3 + - Y + - Y + - C + - Y + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv420.rst b/Documentation/media/uapi/v4l/pixfmt-yuv420.rst index a7f17e40b59e..fd98904058ed 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv420.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv420.rst @@ -42,86 +42,38 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cr\ :sub:`00` - - - Cr\ :sub:`01` - - - .. row 6 - - - start + 18: - - - Cr\ :sub:`10` - - - Cr\ :sub:`11` - - - .. row 7 - - - start + 20: - - - Cb\ :sub:`00` - - - Cb\ :sub:`01` - - - .. row 8 - - - start + 22: - - - Cb\ :sub:`10` - - - Cb\ :sub:`11` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cr\ :sub:`00` + - Cr\ :sub:`01` + * - start + 18: + - Cr\ :sub:`10` + - Cr\ :sub:`11` + * - start + 20: + - Cb\ :sub:`00` + - Cb\ :sub:`01` + * - start + 22: + - Cb\ :sub:`10` + - Cb\ :sub:`11` **Color Sample Location..** @@ -132,107 +84,60 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 5 - - - - - - .. row 6 - - - 2 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 7 - - - - - - - C - - - - - - - - - C - - - - - - .. row 8 - - - 3 - - - Y - - - - - Y - - - - - Y - - - - - Y + * - + - 0 + - + - 1 + - + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - + - Y + - + - Y + * - + - + - C + - + - + - + - C + - + * - 1 + - Y + - + - Y + - + - Y + - + - Y + * - + * - 2 + - Y + - + - Y + - + - Y + - + - Y + * - + - + - C + - + - + - + - C + - + * - 3 + - Y + - + - Y + - + - Y + - + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv420m.rst b/Documentation/media/uapi/v4l/pixfmt-yuv420m.rst index 588784512944..cce8c477fdfc 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv420m.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv420m.rst @@ -49,94 +49,40 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start0 + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start0 + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start0 + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start0 + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - - - - .. row 6 - - - start1 + 0: - - - Cb\ :sub:`00` - - - Cb\ :sub:`01` - - - .. row 7 - - - start1 + 2: - - - Cb\ :sub:`10` - - - Cb\ :sub:`11` - - - .. row 8 - - - - - - .. row 9 - - - start2 + 0: - - - Cr\ :sub:`00` - - - Cr\ :sub:`01` - - - .. row 10 - - - start2 + 2: - - - Cr\ :sub:`10` - - - Cr\ :sub:`11` + * - start0 + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start0 + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start0 + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start0 + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - + * - start1 + 0: + - Cb\ :sub:`00` + - Cb\ :sub:`01` + * - start1 + 2: + - Cb\ :sub:`10` + - Cb\ :sub:`11` + * - + * - start2 + 0: + - Cr\ :sub:`00` + - Cr\ :sub:`01` + * - start2 + 2: + - Cr\ :sub:`10` + - Cr\ :sub:`11` **Color Sample Location..** @@ -147,107 +93,60 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 3 - - - - - - - C - - - - - - - - - C - - - - - - .. row 4 - - - 1 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 5 - - - - - - .. row 6 - - - 2 - - - Y - - - - - Y - - - - - Y - - - - - Y - - - .. row 7 - - - - - - - C - - - - - - - - - C - - - - - - .. row 8 - - - 3 - - - Y - - - - - Y - - - - - Y - - - - - Y + * - + - 0 + - + - 1 + - + - 2 + - + - 3 + * - 0 + - Y + - + - Y + - + - Y + - + - Y + * - + - + - C + - + - + - + - C + - + * - 1 + - Y + - + - Y + - + - Y + - + - Y + * - + * - 2 + - Y + - + - Y + - + - Y + - + - Y + * - + - + - C + - + - + - + - C + - + * - 3 + - Y + - + - Y + - + - Y + - + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv422m.rst b/Documentation/media/uapi/v4l/pixfmt-yuv422m.rst index 0c0a462c4dde..d986393aa934 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv422m.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv422m.rst @@ -48,126 +48,52 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start0 + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start0 + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start0 + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start0 + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - - - - .. row 6 - - - start1 + 0: - - - Cb\ :sub:`00` - - - Cb\ :sub:`01` - - - .. row 7 - - - start1 + 2: - - - Cb\ :sub:`10` - - - Cb\ :sub:`11` - - - .. row 8 - - - start1 + 4: - - - Cb\ :sub:`20` - - - Cb\ :sub:`21` - - - .. row 9 - - - start1 + 6: - - - Cb\ :sub:`30` - - - Cb\ :sub:`31` - - - .. row 10 - - - - - - .. row 11 - - - start2 + 0: - - - Cr\ :sub:`00` - - - Cr\ :sub:`01` - - - .. row 12 - - - start2 + 2: - - - Cr\ :sub:`10` - - - Cr\ :sub:`11` - - - .. row 13 - - - start2 + 4: - - - Cr\ :sub:`20` - - - Cr\ :sub:`21` - - - .. row 14 - - - start2 + 6: - - - Cr\ :sub:`30` - - - Cr\ :sub:`31` + * - start0 + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start0 + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start0 + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start0 + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - + * - start1 + 0: + - Cb\ :sub:`00` + - Cb\ :sub:`01` + * - start1 + 2: + - Cb\ :sub:`10` + - Cb\ :sub:`11` + * - start1 + 4: + - Cb\ :sub:`20` + - Cb\ :sub:`21` + * - start1 + 6: + - Cb\ :sub:`30` + - Cb\ :sub:`31` + * - + * - start2 + 0: + - Cr\ :sub:`00` + - Cr\ :sub:`01` + * - start2 + 2: + - Cr\ :sub:`10` + - Cr\ :sub:`11` + * - start2 + 4: + - Cr\ :sub:`20` + - Cr\ :sub:`21` + * - start2 + 6: + - Cr\ :sub:`30` + - Cr\ :sub:`31` **Color Sample Location..** @@ -178,80 +104,38 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 3 - - - 1 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 4 - - - 2 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 5 - - - 3 - - - Y - - - C - - - Y - - - Y - - - C - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - C + - Y + - Y + - C + - Y + * - 1 + - Y + - C + - Y + - Y + - C + - Y + * - 2 + - Y + - C + - Y + - Y + - C + - Y + * - 3 + - Y + - C + - Y + - Y + - C + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv422p.rst b/Documentation/media/uapi/v4l/pixfmt-yuv422p.rst index 9618f0d24265..e6f5de546dba 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv422p.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv422p.rst @@ -38,118 +38,50 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - start + 16: - - - Cb\ :sub:`00` - - - Cb\ :sub:`01` - - - .. row 6 - - - start + 18: - - - Cb\ :sub:`10` - - - Cb\ :sub:`11` - - - .. row 7 - - - start + 20: - - - Cb\ :sub:`20` - - - Cb\ :sub:`21` - - - .. row 8 - - - start + 22: - - - Cb\ :sub:`30` - - - Cb\ :sub:`31` - - - .. row 9 - - - start + 24: - - - Cr\ :sub:`00` - - - Cr\ :sub:`01` - - - .. row 10 - - - start + 26: - - - Cr\ :sub:`10` - - - Cr\ :sub:`11` - - - .. row 11 - - - start + 28: - - - Cr\ :sub:`20` - - - Cr\ :sub:`21` - - - .. row 12 - - - start + 30: - - - Cr\ :sub:`30` - - - Cr\ :sub:`31` + * - start + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - start + 16: + - Cb\ :sub:`00` + - Cb\ :sub:`01` + * - start + 18: + - Cb\ :sub:`10` + - Cb\ :sub:`11` + * - start + 20: + - Cb\ :sub:`20` + - Cb\ :sub:`21` + * - start + 22: + - Cb\ :sub:`30` + - Cb\ :sub:`31` + * - start + 24: + - Cr\ :sub:`00` + - Cr\ :sub:`01` + * - start + 26: + - Cr\ :sub:`10` + - Cr\ :sub:`11` + * - start + 28: + - Cr\ :sub:`20` + - Cr\ :sub:`21` + * - start + 30: + - Cr\ :sub:`30` + - Cr\ :sub:`31` **Color Sample Location..** @@ -160,80 +92,38 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 3 - - - 1 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 4 - - - 2 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 5 - - - 3 - - - Y - - - C - - - Y - - - Y - - - C - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - C + - Y + - Y + - C + - Y + * - 1 + - Y + - C + - Y + - Y + - C + - Y + * - 2 + - Y + - C + - Y + - Y + - C + - Y + * - 3 + - Y + - C + - Y + - Y + - C + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yuv444m.rst b/Documentation/media/uapi/v4l/pixfmt-yuv444m.rst index 5985d45efb2c..830fbf6fcd1d 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuv444m.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuv444m.rst @@ -42,158 +42,68 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start0 + 0: - - - Y'\ :sub:`00` - - - Y'\ :sub:`01` - - - Y'\ :sub:`02` - - - Y'\ :sub:`03` - - - .. row 2 - - - start0 + 4: - - - Y'\ :sub:`10` - - - Y'\ :sub:`11` - - - Y'\ :sub:`12` - - - Y'\ :sub:`13` - - - .. row 3 - - - start0 + 8: - - - Y'\ :sub:`20` - - - Y'\ :sub:`21` - - - Y'\ :sub:`22` - - - Y'\ :sub:`23` - - - .. row 4 - - - start0 + 12: - - - Y'\ :sub:`30` - - - Y'\ :sub:`31` - - - Y'\ :sub:`32` - - - Y'\ :sub:`33` - - - .. row 5 - - - - - - .. row 6 - - - start1 + 0: - - - Cb\ :sub:`00` - - - Cb\ :sub:`01` - - - Cb\ :sub:`02` - - - Cb\ :sub:`03` - - - .. row 7 - - - start1 + 4: - - - Cb\ :sub:`10` - - - Cb\ :sub:`11` - - - Cb\ :sub:`12` - - - Cb\ :sub:`13` - - - .. row 8 - - - start1 + 8: - - - Cb\ :sub:`20` - - - Cb\ :sub:`21` - - - Cb\ :sub:`22` - - - Cb\ :sub:`23` - - - .. row 9 - - - start1 + 12: - - - Cb\ :sub:`20` - - - Cb\ :sub:`21` - - - Cb\ :sub:`32` - - - Cb\ :sub:`33` - - - .. row 10 - - - - - - .. row 11 - - - start2 + 0: - - - Cr\ :sub:`00` - - - Cr\ :sub:`01` - - - Cr\ :sub:`02` - - - Cr\ :sub:`03` - - - .. row 12 - - - start2 + 4: - - - Cr\ :sub:`10` - - - Cr\ :sub:`11` - - - Cr\ :sub:`12` - - - Cr\ :sub:`13` - - - .. row 13 - - - start2 + 8: - - - Cr\ :sub:`20` - - - Cr\ :sub:`21` - - - Cr\ :sub:`22` - - - Cr\ :sub:`23` - - - .. row 14 - - - start2 + 12: - - - Cr\ :sub:`30` - - - Cr\ :sub:`31` - - - Cr\ :sub:`32` - - - Cr\ :sub:`33` + * - start0 + 0: + - Y'\ :sub:`00` + - Y'\ :sub:`01` + - Y'\ :sub:`02` + - Y'\ :sub:`03` + * - start0 + 4: + - Y'\ :sub:`10` + - Y'\ :sub:`11` + - Y'\ :sub:`12` + - Y'\ :sub:`13` + * - start0 + 8: + - Y'\ :sub:`20` + - Y'\ :sub:`21` + - Y'\ :sub:`22` + - Y'\ :sub:`23` + * - start0 + 12: + - Y'\ :sub:`30` + - Y'\ :sub:`31` + - Y'\ :sub:`32` + - Y'\ :sub:`33` + * - + * - start1 + 0: + - Cb\ :sub:`00` + - Cb\ :sub:`01` + - Cb\ :sub:`02` + - Cb\ :sub:`03` + * - start1 + 4: + - Cb\ :sub:`10` + - Cb\ :sub:`11` + - Cb\ :sub:`12` + - Cb\ :sub:`13` + * - start1 + 8: + - Cb\ :sub:`20` + - Cb\ :sub:`21` + - Cb\ :sub:`22` + - Cb\ :sub:`23` + * - start1 + 12: + - Cb\ :sub:`20` + - Cb\ :sub:`21` + - Cb\ :sub:`32` + - Cb\ :sub:`33` + * - + * - start2 + 0: + - Cr\ :sub:`00` + - Cr\ :sub:`01` + - Cr\ :sub:`02` + - Cr\ :sub:`03` + * - start2 + 4: + - Cr\ :sub:`10` + - Cr\ :sub:`11` + - Cr\ :sub:`12` + - Cr\ :sub:`13` + * - start2 + 8: + - Cr\ :sub:`20` + - Cr\ :sub:`21` + - Cr\ :sub:`22` + - Cr\ :sub:`23` + * - start2 + 12: + - Cr\ :sub:`30` + - Cr\ :sub:`31` + - Cr\ :sub:`32` + - Cr\ :sub:`33` **Color Sample Location..** @@ -204,62 +114,28 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - 1 - - - 2 - - - 3 - - - .. row 2 - - - 0 - - - YC - - - YC - - - YC - - - YC - - - .. row 3 - - - 1 - - - YC - - - YC - - - YC - - - YC - - - .. row 4 - - - 2 - - - YC - - - YC - - - YC - - - YC - - - .. row 5 - - - 3 - - - YC - - - YC - - - YC - - - YC + * - + - 0 + - 1 + - 2 + - 3 + * - 0 + - YC + - YC + - YC + - YC + * - 1 + - YC + - YC + - YC + - YC + * - 2 + - YC + - YC + - YC + - YC + * - 3 + - YC + - YC + - YC + - YC diff --git a/Documentation/media/uapi/v4l/pixfmt-yuyv.rst b/Documentation/media/uapi/v4l/pixfmt-yuyv.rst index 10deab080d51..e1bdd6b1aefc 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yuyv.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yuyv.rst @@ -30,86 +30,42 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Cb\ :sub:`00` - - - Y'\ :sub:`01` - - - Cr\ :sub:`00` - - - Y'\ :sub:`02` - - - Cb\ :sub:`01` - - - Y'\ :sub:`03` - - - Cr\ :sub:`01` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10` - - - Cb\ :sub:`10` - - - Y'\ :sub:`11` - - - Cr\ :sub:`10` - - - Y'\ :sub:`12` - - - Cb\ :sub:`11` - - - Y'\ :sub:`13` - - - Cr\ :sub:`11` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20` - - - Cb\ :sub:`20` - - - Y'\ :sub:`21` - - - Cr\ :sub:`20` - - - Y'\ :sub:`22` - - - Cb\ :sub:`21` - - - Y'\ :sub:`23` - - - Cr\ :sub:`21` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30` - - - Cb\ :sub:`30` - - - Y'\ :sub:`31` - - - Cr\ :sub:`30` - - - Y'\ :sub:`32` - - - Cb\ :sub:`31` - - - Y'\ :sub:`33` - - - Cr\ :sub:`31` + * - start + 0: + - Y'\ :sub:`00` + - Cb\ :sub:`00` + - Y'\ :sub:`01` + - Cr\ :sub:`00` + - Y'\ :sub:`02` + - Cb\ :sub:`01` + - Y'\ :sub:`03` + - Cr\ :sub:`01` + * - start + 8: + - Y'\ :sub:`10` + - Cb\ :sub:`10` + - Y'\ :sub:`11` + - Cr\ :sub:`10` + - Y'\ :sub:`12` + - Cb\ :sub:`11` + - Y'\ :sub:`13` + - Cr\ :sub:`11` + * - start + 16: + - Y'\ :sub:`20` + - Cb\ :sub:`20` + - Y'\ :sub:`21` + - Cr\ :sub:`20` + - Y'\ :sub:`22` + - Cb\ :sub:`21` + - Y'\ :sub:`23` + - Cr\ :sub:`21` + * - start + 24: + - Y'\ :sub:`30` + - Cb\ :sub:`30` + - Y'\ :sub:`31` + - Cr\ :sub:`30` + - Y'\ :sub:`32` + - Cb\ :sub:`31` + - Y'\ :sub:`33` + - Cr\ :sub:`31` **Color Sample Location..** @@ -120,85 +76,43 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - C - - - Y - - - - - Y - - - C - - - Y - - - .. row 3 - - - 1 - - - Y - - - C - - - Y - - - - - Y - - - C - - - Y - - - .. row 4 - - - 2 - - - Y - - - C - - - Y - - - - - Y - - - C - - - Y - - - .. row 5 - - - 3 - - - Y - - - C - - - Y - - - - - Y - - - C - - - Y + * - + - 0 + - + - 1 + - + - 2 + - + - 3 + * - 0 + - Y + - C + - Y + - + - Y + - C + - Y + * - 1 + - Y + - C + - Y + - + - Y + - C + - Y + * - 2 + - Y + - C + - Y + - + - Y + - C + - Y + * - 3 + - Y + - C + - Y + - + - Y + - C + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-yvyu.rst b/Documentation/media/uapi/v4l/pixfmt-yvyu.rst index d126f08c1adc..0244ce6741a6 100644 --- a/Documentation/media/uapi/v4l/pixfmt-yvyu.rst +++ b/Documentation/media/uapi/v4l/pixfmt-yvyu.rst @@ -27,86 +27,42 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Y'\ :sub:`00` - - - Cr\ :sub:`00` - - - Y'\ :sub:`01` - - - Cb\ :sub:`00` - - - Y'\ :sub:`02` - - - Cr\ :sub:`01` - - - Y'\ :sub:`03` - - - Cb\ :sub:`01` - - - .. row 2 - - - start + 8: - - - Y'\ :sub:`10` - - - Cr\ :sub:`10` - - - Y'\ :sub:`11` - - - Cb\ :sub:`10` - - - Y'\ :sub:`12` - - - Cr\ :sub:`11` - - - Y'\ :sub:`13` - - - Cb\ :sub:`11` - - - .. row 3 - - - start + 16: - - - Y'\ :sub:`20` - - - Cr\ :sub:`20` - - - Y'\ :sub:`21` - - - Cb\ :sub:`20` - - - Y'\ :sub:`22` - - - Cr\ :sub:`21` - - - Y'\ :sub:`23` - - - Cb\ :sub:`21` - - - .. row 4 - - - start + 24: - - - Y'\ :sub:`30` - - - Cr\ :sub:`30` - - - Y'\ :sub:`31` - - - Cb\ :sub:`30` - - - Y'\ :sub:`32` - - - Cr\ :sub:`31` - - - Y'\ :sub:`33` - - - Cb\ :sub:`31` + * - start + 0: + - Y'\ :sub:`00` + - Cr\ :sub:`00` + - Y'\ :sub:`01` + - Cb\ :sub:`00` + - Y'\ :sub:`02` + - Cr\ :sub:`01` + - Y'\ :sub:`03` + - Cb\ :sub:`01` + * - start + 8: + - Y'\ :sub:`10` + - Cr\ :sub:`10` + - Y'\ :sub:`11` + - Cb\ :sub:`10` + - Y'\ :sub:`12` + - Cr\ :sub:`11` + - Y'\ :sub:`13` + - Cb\ :sub:`11` + * - start + 16: + - Y'\ :sub:`20` + - Cr\ :sub:`20` + - Y'\ :sub:`21` + - Cb\ :sub:`20` + - Y'\ :sub:`22` + - Cr\ :sub:`21` + - Y'\ :sub:`23` + - Cb\ :sub:`21` + * - start + 24: + - Y'\ :sub:`30` + - Cr\ :sub:`30` + - Y'\ :sub:`31` + - Cb\ :sub:`30` + - Y'\ :sub:`32` + - Cr\ :sub:`31` + - Y'\ :sub:`33` + - Cb\ :sub:`31` **Color Sample Location..** @@ -115,80 +71,38 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - - - 0 - - - - - 1 - - - 2 - - - - - 3 - - - .. row 2 - - - 0 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 3 - - - 1 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 4 - - - 2 - - - Y - - - C - - - Y - - - Y - - - C - - - Y - - - .. row 5 - - - 3 - - - Y - - - C - - - Y - - - Y - - - C - - - Y + * - + - 0 + - + - 1 + - 2 + - + - 3 + * - 0 + - Y + - C + - Y + - Y + - C + - Y + * - 1 + - Y + - C + - Y + - Y + - C + - Y + * - 2 + - Y + - C + - Y + - Y + - C + - Y + * - 3 + - Y + - C + - Y + - Y + - C + - Y diff --git a/Documentation/media/uapi/v4l/pixfmt-z16.rst b/Documentation/media/uapi/v4l/pixfmt-z16.rst index 97fe1483a481..eb713a9bccae 100644 --- a/Documentation/media/uapi/v4l/pixfmt-z16.rst +++ b/Documentation/media/uapi/v4l/pixfmt-z16.rst @@ -28,83 +28,39 @@ Each cell is one byte. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - start + 0: - - - Z\ :sub:`00low` - - - Z\ :sub:`00high` - - - Z\ :sub:`01low` - - - Z\ :sub:`01high` - - - Z\ :sub:`02low` - - - Z\ :sub:`02high` - - - Z\ :sub:`03low` - - - Z\ :sub:`03high` - - - .. row 2 - - - start + 8: - - - Z\ :sub:`10low` - - - Z\ :sub:`10high` - - - Z\ :sub:`11low` - - - Z\ :sub:`11high` - - - Z\ :sub:`12low` - - - Z\ :sub:`12high` - - - Z\ :sub:`13low` - - - Z\ :sub:`13high` - - - .. row 3 - - - start + 16: - - - Z\ :sub:`20low` - - - Z\ :sub:`20high` - - - Z\ :sub:`21low` - - - Z\ :sub:`21high` - - - Z\ :sub:`22low` - - - Z\ :sub:`22high` - - - Z\ :sub:`23low` - - - Z\ :sub:`23high` - - - .. row 4 - - - start + 24: - - - Z\ :sub:`30low` - - - Z\ :sub:`30high` - - - Z\ :sub:`31low` - - - Z\ :sub:`31high` - - - Z\ :sub:`32low` - - - Z\ :sub:`32high` - - - Z\ :sub:`33low` - - - Z\ :sub:`33high` + * - start + 0: + - Z\ :sub:`00low` + - Z\ :sub:`00high` + - Z\ :sub:`01low` + - Z\ :sub:`01high` + - Z\ :sub:`02low` + - Z\ :sub:`02high` + - Z\ :sub:`03low` + - Z\ :sub:`03high` + * - start + 8: + - Z\ :sub:`10low` + - Z\ :sub:`10high` + - Z\ :sub:`11low` + - Z\ :sub:`11high` + - Z\ :sub:`12low` + - Z\ :sub:`12high` + - Z\ :sub:`13low` + - Z\ :sub:`13high` + * - start + 16: + - Z\ :sub:`20low` + - Z\ :sub:`20high` + - Z\ :sub:`21low` + - Z\ :sub:`21high` + - Z\ :sub:`22low` + - Z\ :sub:`22high` + - Z\ :sub:`23low` + - Z\ :sub:`23high` + * - start + 24: + - Z\ :sub:`30low` + - Z\ :sub:`30high` + - Z\ :sub:`31low` + - Z\ :sub:`31high` + - Z\ :sub:`32low` + - Z\ :sub:`32high` + - Z\ :sub:`33low` + - Z\ :sub:`33high` diff --git a/Documentation/media/uapi/v4l/subdev-formats.rst b/Documentation/media/uapi/v4l/subdev-formats.rst index 08d6532b0a26..e144370f62a0 100644 --- a/Documentation/media/uapi/v4l/subdev-formats.rst +++ b/Documentation/media/uapi/v4l/subdev-formats.rst @@ -14,89 +14,44 @@ Media Bus Formats :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``width`` - - - Image width, in pixels. - - - .. row 2 - - - __u32 - - - ``height`` - - - Image height, in pixels. - - - .. row 3 - - - __u32 - - - ``code`` - - - Format code, from enum - :ref:`v4l2_mbus_pixelcode `. - - - .. row 4 - - - __u32 - - - ``field`` - - - Field order, from enum :c:type:`v4l2_field`. See - :ref:`field-order` for details. - - - .. row 5 - - - __u32 - - - ``colorspace`` - - - Image colorspace, from enum - :c:type:`v4l2_colorspace`. See - :ref:`colorspaces` for details. - - - .. row 6 - - - enum :c:type:`v4l2_ycbcr_encoding` - - - ``ycbcr_enc`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 7 - - - enum :c:type:`v4l2_quantization` - - - ``quantization`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 8 - - - enum :c:type:`v4l2_xfer_func` - - - ``xfer_func`` - - - This information supplements the ``colorspace`` and must be set by - the driver for capture streams and by the application for output - streams, see :ref:`colorspaces`. - - - .. row 9 - - - __u16 - - - ``reserved``\ [11] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``width`` + - Image width, in pixels. + * - __u32 + - ``height`` + - Image height, in pixels. + * - __u32 + - ``code`` + - Format code, from enum + :ref:`v4l2_mbus_pixelcode `. + * - __u32 + - ``field`` + - Field order, from enum :c:type:`v4l2_field`. See + :ref:`field-order` for details. + * - __u32 + - ``colorspace`` + - Image colorspace, from enum + :c:type:`v4l2_colorspace`. See + :ref:`colorspaces` for details. + * - enum :c:type:`v4l2_ycbcr_encoding` + - ``ycbcr_enc`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - enum :c:type:`v4l2_quantization` + - ``quantization`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - enum :c:type:`v4l2_xfer_func` + - ``xfer_func`` + - This information supplements the ``colorspace`` and must be set by + the driver for capture streams and by the application for output + streams, see :ref:`colorspaces`. + * - __u16 + - ``reserved``\ [11] + - Reserved for future extensions. Applications and drivers must set + the array to zero. @@ -174,2194 +129,1135 @@ The following tables list existing packed RGB formats. :stub-columns: 0 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`31` Data organization - - - .. row 2 - - - - - - - Bit - - - 31 - - - 30 - - - 29 - - - 28 - - - 27 - - - 26 - - - 25 - - - 24 - - - 23 - - - 22 - - - 21 - - - 20 - - - 19 - - - 18 - - - 17 - - - 16 - - - 15 - - - 14 - - - 13 - - - 12 - - - 11 - - - 10 - - - 9 - - - 8 - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _MEDIA-BUS-FMT-RGB444-1X12: - - - MEDIA_BUS_FMT_RGB444_1X12 - - - 0x1016 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB444-2X8-PADHI-BE: - - - MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE - - - 0x1001 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. row 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB444-2X8-PADHI-LE: - - - MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE - - - 0x1002 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. row 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB555-2X8-PADHI-BE: - - - MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE - - - 0x1003 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. row 9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB555-2X8-PADHI-LE: - - - MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE - - - 0x1004 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. row 11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _MEDIA-BUS-FMT-RGB565-1X16: - - - MEDIA_BUS_FMT_RGB565_1X16 - - - 0x1017 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-BGR565-2X8-BE: - - - MEDIA_BUS_FMT_BGR565_2X8_BE - - - 0x1005 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. row 14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-BGR565-2X8-LE: - - - MEDIA_BUS_FMT_BGR565_2X8_LE - - - 0x1006 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. row 16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _MEDIA-BUS-FMT-RGB565-2X8-BE: - - - MEDIA_BUS_FMT_RGB565_2X8_BE - - - 0x1007 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. row 18 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB565-2X8-LE: - - - MEDIA_BUS_FMT_RGB565_2X8_LE - - - 0x1008 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. row 20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - .. _MEDIA-BUS-FMT-RGB666-1X18: - - - MEDIA_BUS_FMT_RGB666_1X18 - - - 0x1009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RBG888-1X24: - - - MEDIA_BUS_FMT_RBG888_1X24 - - - 0x100e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB666-1X24_CPADHI: - - - MEDIA_BUS_FMT_RGB666_1X24_CPADHI - - - 0x1015 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - 0 - - - 0 - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - 0 - - - 0 - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-BGR888-1X24: - - - MEDIA_BUS_FMT_BGR888_1X24 - - - 0x1013 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-GBR888-1X24: - - - MEDIA_BUS_FMT_GBR888_1X24 - - - 0x1014 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB888-1X24: - - - MEDIA_BUS_FMT_RGB888_1X24 - - - 0x100a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB888-2X12-BE: - - - MEDIA_BUS_FMT_RGB888_2X12_BE - - - 0x100b - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - .. row 28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB888-2X12-LE: - - - MEDIA_BUS_FMT_RGB888_2X12_LE - - - 0x100c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. row 30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - .. _MEDIA-BUS-FMT-ARGB888-1X32: - - - MEDIA_BUS_FMT_ARGB888_1X32 - - - 0x100d - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB888-1X32-PADHI: - - - MEDIA_BUS_FMT_RGB888_1X32_PADHI - - - 0x100f - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`31` Data organization + * - + - + - Bit + - 31 + - 30 + - 29 + - 28 + - 27 + - 26 + - 25 + - 24 + - 23 + - 22 + - 21 + - 20 + - 19 + - 18 + - 17 + - 16 + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _MEDIA-BUS-FMT-RGB444-1X12: + + - MEDIA_BUS_FMT_RGB444_1X12 + - 0x1016 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB444-2X8-PADHI-BE: + + - MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE + - 0x1001 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - 0 + - 0 + - 0 + - 0 + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB444-2X8-PADHI-LE: + + - MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE + - 0x1002 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - 0 + - 0 + - 0 + - 0 + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB555-2X8-PADHI-BE: + + - MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE + - 0x1003 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - 0 + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB555-2X8-PADHI-LE: + + - MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE + - 0x1004 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - 0 + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _MEDIA-BUS-FMT-RGB565-1X16: + + - MEDIA_BUS_FMT_RGB565_1X16 + - 0x1017 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-BGR565-2X8-BE: + + - MEDIA_BUS_FMT_BGR565_2X8_BE + - 0x1005 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-BGR565-2X8-LE: + + - MEDIA_BUS_FMT_BGR565_2X8_LE + - 0x1006 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _MEDIA-BUS-FMT-RGB565-2X8-BE: + + - MEDIA_BUS_FMT_RGB565_2X8_BE + - 0x1007 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB565-2X8-LE: + + - MEDIA_BUS_FMT_RGB565_2X8_LE + - 0x1008 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + * .. _MEDIA-BUS-FMT-RGB666-1X18: + + - MEDIA_BUS_FMT_RGB666_1X18 + - 0x1009 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RBG888-1X24: + + - MEDIA_BUS_FMT_RBG888_1X24 + - 0x100e + - + - + - + - + - + - + - + - + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB666-1X24_CPADHI: + + - MEDIA_BUS_FMT_RGB666_1X24_CPADHI + - 0x1015 + - + - + - + - + - + - + - + - + - + - 0 + - 0 + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - 0 + - 0 + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - 0 + - 0 + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-BGR888-1X24: + + - MEDIA_BUS_FMT_BGR888_1X24 + - 0x1013 + - + - + - + - + - + - + - + - + - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-GBR888-1X24: + + - MEDIA_BUS_FMT_GBR888_1X24 + - 0x1014 + - + - + - + - + - + - + - + - + - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB888-1X24: + + - MEDIA_BUS_FMT_RGB888_1X24 + - 0x100a + - + - + - + - + - + - + - + - + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB888-2X12-BE: + + - MEDIA_BUS_FMT_RGB888_2X12_BE + - 0x100b + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB888-2X12-LE: + + - MEDIA_BUS_FMT_RGB888_2X12_LE + - 0x100c + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + * .. _MEDIA-BUS-FMT-ARGB888-1X32: + + - MEDIA_BUS_FMT_ARGB888_1X32 + - 0x100d + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB888-1X32-PADHI: + + - MEDIA_BUS_FMT_RGB888_1X32_PADHI + - 0x100f + - + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` .. raw:: latex @@ -2385,353 +1281,193 @@ JEIDA defined bit mapping will be named :header-rows: 2 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Code - - - - - - - :cspan:`3` Data organization - - - .. row 2 - - - - - - - Timeslot - - - Lane - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _MEDIA-BUS-FMT-RGB666-1X7X3-SPWG: - - - MEDIA_BUS_FMT_RGB666_1X7X3_SPWG - - - 0x1010 - - - 0 - - - - - - - - d - - - b\ :sub:`1` - - - g\ :sub:`0` - - - .. row 4 - - - - - - - 1 - - - - - - - - d - - - b\ :sub:`0` - - - r\ :sub:`5` - - - .. row 5 - - - - - - - 2 - - - - - - - - d - - - g\ :sub:`5` - - - r\ :sub:`4` - - - .. row 6 - - - - - - - 3 - - - - - - - - b\ :sub:`5` - - - g\ :sub:`4` - - - r\ :sub:`3` - - - .. row 7 - - - - - - - 4 - - - - - - - - b\ :sub:`4` - - - g\ :sub:`3` - - - r\ :sub:`2` - - - .. row 8 - - - - - - - 5 - - - - - - - - b\ :sub:`3` - - - g\ :sub:`2` - - - r\ :sub:`1` - - - .. row 9 - - - - - - - 6 - - - - - - - - b\ :sub:`2` - - - g\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB888-1X7X4-SPWG: - - - MEDIA_BUS_FMT_RGB888_1X7X4_SPWG - - - 0x1011 - - - 0 - - - - - d - - - d - - - b\ :sub:`1` - - - g\ :sub:`0` - - - .. row 11 - - - - - - - 1 - - - - - b\ :sub:`7` - - - d - - - b\ :sub:`0` - - - r\ :sub:`5` - - - .. row 12 - - - - - - - 2 - - - - - b\ :sub:`6` - - - d - - - g\ :sub:`5` - - - r\ :sub:`4` - - - .. row 13 - - - - - - - 3 - - - - - g\ :sub:`7` - - - b\ :sub:`5` - - - g\ :sub:`4` - - - r\ :sub:`3` - - - .. row 14 - - - - - - - 4 - - - - - g\ :sub:`6` - - - b\ :sub:`4` - - - g\ :sub:`3` - - - r\ :sub:`2` - - - .. row 15 - - - - - - - 5 - - - - - r\ :sub:`7` - - - b\ :sub:`3` - - - g\ :sub:`2` - - - r\ :sub:`1` - - - .. row 16 - - - - - - - 6 - - - - - r\ :sub:`6` - - - b\ :sub:`2` - - - g\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-RGB888-1X7X4-JEIDA: - - - MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA - - - 0x1012 - - - 0 - - - - - d - - - d - - - b\ :sub:`3` - - - g\ :sub:`2` - - - .. row 18 - - - - - - - 1 - - - - - b\ :sub:`1` - - - d - - - b\ :sub:`2` - - - r\ :sub:`7` - - - .. row 19 - - - - - - - 2 - - - - - b\ :sub:`0` - - - d - - - g\ :sub:`7` - - - r\ :sub:`6` - - - .. row 20 - - - - - - - 3 - - - - - g\ :sub:`1` - - - b\ :sub:`7` - - - g\ :sub:`6` - - - r\ :sub:`5` - - - .. row 21 - - - - - - - 4 - - - - - g\ :sub:`0` - - - b\ :sub:`6` - - - g\ :sub:`5` - - - r\ :sub:`4` - - - .. row 22 - - - - - - - 5 - - - - - r\ :sub:`1` - - - b\ :sub:`5` - - - g\ :sub:`4` - - - r\ :sub:`3` - - - .. row 23 - - - - - - - 6 - - - - - r\ :sub:`0` - - - b\ :sub:`4` - - - g\ :sub:`3` - - - r\ :sub:`2` + * - Identifier + - Code + - + - + - :cspan:`3` Data organization + * - + - + - Timeslot + - Lane + - 3 + - 2 + - 1 + - 0 + * .. _MEDIA-BUS-FMT-RGB666-1X7X3-SPWG: + + - MEDIA_BUS_FMT_RGB666_1X7X3_SPWG + - 0x1010 + - 0 + - + - + - d + - b\ :sub:`1` + - g\ :sub:`0` + * - + - + - 1 + - + - + - d + - b\ :sub:`0` + - r\ :sub:`5` + * - + - + - 2 + - + - + - d + - g\ :sub:`5` + - r\ :sub:`4` + * - + - + - 3 + - + - + - b\ :sub:`5` + - g\ :sub:`4` + - r\ :sub:`3` + * - + - + - 4 + - + - + - b\ :sub:`4` + - g\ :sub:`3` + - r\ :sub:`2` + * - + - + - 5 + - + - + - b\ :sub:`3` + - g\ :sub:`2` + - r\ :sub:`1` + * - + - + - 6 + - + - + - b\ :sub:`2` + - g\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB888-1X7X4-SPWG: + + - MEDIA_BUS_FMT_RGB888_1X7X4_SPWG + - 0x1011 + - 0 + - + - d + - d + - b\ :sub:`1` + - g\ :sub:`0` + * - + - + - 1 + - + - b\ :sub:`7` + - d + - b\ :sub:`0` + - r\ :sub:`5` + * - + - + - 2 + - + - b\ :sub:`6` + - d + - g\ :sub:`5` + - r\ :sub:`4` + * - + - + - 3 + - + - g\ :sub:`7` + - b\ :sub:`5` + - g\ :sub:`4` + - r\ :sub:`3` + * - + - + - 4 + - + - g\ :sub:`6` + - b\ :sub:`4` + - g\ :sub:`3` + - r\ :sub:`2` + * - + - + - 5 + - + - r\ :sub:`7` + - b\ :sub:`3` + - g\ :sub:`2` + - r\ :sub:`1` + * - + - + - 6 + - + - r\ :sub:`6` + - b\ :sub:`2` + - g\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-RGB888-1X7X4-JEIDA: + + - MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA + - 0x1012 + - 0 + - + - d + - d + - b\ :sub:`3` + - g\ :sub:`2` + * - + - + - 1 + - + - b\ :sub:`1` + - d + - b\ :sub:`2` + - r\ :sub:`7` + * - + - + - 2 + - + - b\ :sub:`0` + - d + - g\ :sub:`7` + - r\ :sub:`6` + * - + - + - 3 + - + - g\ :sub:`1` + - b\ :sub:`7` + - g\ :sub:`6` + - r\ :sub:`5` + * - + - + - 4 + - + - g\ :sub:`0` + - b\ :sub:`6` + - g\ :sub:`5` + - r\ :sub:`4` + * - + - + - 5 + - + - r\ :sub:`1` + - b\ :sub:`5` + - g\ :sub:`4` + - r\ :sub:`3` + * - + - + - 6 + - + - r\ :sub:`0` + - b\ :sub:`4` + - g\ :sub:`3` + - r\ :sub:`2` .. raw:: latex @@ -2804,1449 +1540,777 @@ organization is given as an example for the first pixel only. :header-rows: 2 :stub-columns: 0 - - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`15` Data organization - - - .. row 2 - - - - - - - Bit - - - 15 - - - 14 - - - 13 - - - 12 - - - 11 - - - 10 - - - 9 - - - 8 - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _MEDIA-BUS-FMT-SBGGR8-1X8: - - - MEDIA_BUS_FMT_SBGGR8_1X8 - - - 0x3001 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG8-1X8: - - - MEDIA_BUS_FMT_SGBRG8_1X8 - - - 0x3013 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG8-1X8: - - - MEDIA_BUS_FMT_SGRBG8_1X8 - - - 0x3002 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB8-1X8: - - - MEDIA_BUS_FMT_SRGGB8_1X8 - - - 0x3014 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR10-ALAW8-1X8: - - - MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8 - - - 0x3015 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG10-ALAW8-1X8: - - - MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8 - - - 0x3016 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG10-ALAW8-1X8: - - - MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8 - - - 0x3017 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB10-ALAW8-1X8: - - - MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8 - - - 0x3018 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR10-DPCM8-1X8: - - - MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8 - - - 0x300b - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG10-DPCM8-1X8: - - - MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8 - - - 0x300c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG10-DPCM8-1X8: - - - MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8 - - - 0x3009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB10-DPCM8-1X8: - - - MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8 - - - 0x300d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADHI-BE: - - - MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE - - - 0x3003 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - b\ :sub:`9` - - - b\ :sub:`8` - - - .. row 16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADHI-LE: - - - MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE - - - 0x3004 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. row 18 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - b\ :sub:`9` - - - b\ :sub:`8` - - - .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADLO-BE: - - - MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE - - - 0x3005 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`9` - - - b\ :sub:`8` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - .. row 20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`1` - - - b\ :sub:`0` - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADLO-LE: - - - MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE - - - 0x3006 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`1` - - - b\ :sub:`0` - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - .. row 22 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`9` - - - b\ :sub:`8` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - .. _MEDIA-BUS-FMT-SBGGR10-1X10: - - - MEDIA_BUS_FMT_SBGGR10_1X10 - - - 0x3007 - - - - - - - - - - - - - - - - - - - - - - - - - - - b\ :sub:`9` - - - b\ :sub:`8` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG10-1X10: - - - MEDIA_BUS_FMT_SGBRG10_1X10 - - - 0x300e - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG10-1X10: - - - MEDIA_BUS_FMT_SGRBG10_1X10 - - - 0x300a - - - - - - - - - - - - - - - - - - - - - - - - - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB10-1X10: - - - MEDIA_BUS_FMT_SRGGB10_1X10 - - - 0x300f - - - - - - - - - - - - - - - - - - - - - - - - - - - r\ :sub:`9` - - - r\ :sub:`8` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR12-1X12: - - - MEDIA_BUS_FMT_SBGGR12_1X12 - - - 0x3008 - - - - - - - - - - - - - - - - - - - - - b\ :sub:`11` - - - b\ :sub:`10` - - - b\ :sub:`9` - - - b\ :sub:`8` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG12-1X12: - - - MEDIA_BUS_FMT_SGBRG12_1X12 - - - 0x3010 - - - - - - - - - - - - - - - - - - - - - g\ :sub:`11` - - - g\ :sub:`10` - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG12-1X12: - - - MEDIA_BUS_FMT_SGRBG12_1X12 - - - 0x3011 - - - - - - - - - - - - - - - - - - - - - g\ :sub:`11` - - - g\ :sub:`10` - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB12-1X12: - - - MEDIA_BUS_FMT_SRGGB12_1X12 - - - 0x3012 - - - - - - - - - - - - - - - - - - - - - r\ :sub:`11` - - - r\ :sub:`10` - - - r\ :sub:`9` - - - r\ :sub:`8` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR14-1X14: - - - MEDIA_BUS_FMT_SBGGR14_1X14 - - - 0x3019 - - - - - - - - - - - - - b\ :sub:`13` - - - b\ :sub:`12` - - - b\ :sub:`11` - - - b\ :sub:`10` - - - b\ :sub:`9` - - - b\ :sub:`8` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG14-1X14: - - - MEDIA_BUS_FMT_SGBRG14_1X14 - - - 0x301a - - - - - - - - - - - - - g\ :sub:`13` - - - g\ :sub:`12` - - - g\ :sub:`11` - - - g\ :sub:`10` - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG14-1X14: - - - MEDIA_BUS_FMT_SGRBG14_1X14 - - - 0x301b - - - - - - - - - - - - - g\ :sub:`13` - - - g\ :sub:`12` - - - g\ :sub:`11` - - - g\ :sub:`10` - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB14-1X14: - - - MEDIA_BUS_FMT_SRGGB14_1X14 - - - 0x301c - - - - - - - - - - - - - r\ :sub:`13` - - - r\ :sub:`12` - - - r\ :sub:`11` - - - r\ :sub:`10` - - - r\ :sub:`9` - - - r\ :sub:`8` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SBGGR16-1X16: - - - MEDIA_BUS_FMT_SBGGR16_1X16 - - - 0x301d - - - - - b\ :sub:`15` - - - b\ :sub:`14` - - - b\ :sub:`13` - - - b\ :sub:`12` - - - b\ :sub:`11` - - - b\ :sub:`10` - - - b\ :sub:`9` - - - b\ :sub:`8` - - - b\ :sub:`7` - - - b\ :sub:`6` - - - b\ :sub:`5` - - - b\ :sub:`4` - - - b\ :sub:`3` - - - b\ :sub:`2` - - - b\ :sub:`1` - - - b\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGBRG16-1X16: - - - MEDIA_BUS_FMT_SGBRG16_1X16 - - - 0x301e - - - - - g\ :sub:`15` - - - g\ :sub:`14` - - - g\ :sub:`13` - - - g\ :sub:`12` - - - g\ :sub:`11` - - - g\ :sub:`10` - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SGRBG16-1X16: - - - MEDIA_BUS_FMT_SGRBG16_1X16 - - - 0x301f - - - - - g\ :sub:`15` - - - g\ :sub:`14` - - - g\ :sub:`13` - - - g\ :sub:`12` - - - g\ :sub:`11` - - - g\ :sub:`10` - - - g\ :sub:`9` - - - g\ :sub:`8` - - - g\ :sub:`7` - - - g\ :sub:`6` - - - g\ :sub:`5` - - - g\ :sub:`4` - - - g\ :sub:`3` - - - g\ :sub:`2` - - - g\ :sub:`1` - - - g\ :sub:`0` - - - .. _MEDIA-BUS-FMT-SRGGB16-1X16: - - - MEDIA_BUS_FMT_SRGGB16_1X16 - - - 0x3020 - - - - - r\ :sub:`15` - - - r\ :sub:`14` - - - r\ :sub:`13` - - - r\ :sub:`12` - - - r\ :sub:`11` - - - r\ :sub:`10` - - - r\ :sub:`9` - - - r\ :sub:`8` - - - r\ :sub:`7` - - - r\ :sub:`6` - - - r\ :sub:`5` - - - r\ :sub:`4` - - - r\ :sub:`3` - - - r\ :sub:`2` - - - r\ :sub:`1` - - - r\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`15` Data organization + * - + - + - Bit + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _MEDIA-BUS-FMT-SBGGR8-1X8: + + - MEDIA_BUS_FMT_SBGGR8_1X8 + - 0x3001 + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG8-1X8: + + - MEDIA_BUS_FMT_SGBRG8_1X8 + - 0x3013 + - + - + - + - + - + - - + - - + - - + - - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG8-1X8: + + - MEDIA_BUS_FMT_SGRBG8_1X8 + - 0x3002 + - + - + - + - + - + - - + - - + - - + - - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB8-1X8: + + - MEDIA_BUS_FMT_SRGGB8_1X8 + - 0x3014 + - + - + - + - + - + - - + - - + - - + - - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR10-ALAW8-1X8: + + - MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8 + - 0x3015 + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG10-ALAW8-1X8: + + - MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8 + - 0x3016 + - + - + - + - + - + - - + - - + - - + - - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG10-ALAW8-1X8: + + - MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8 + - 0x3017 + - + - + - + - + - + - - + - - + - - + - - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB10-ALAW8-1X8: + + - MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8 + - 0x3018 + - + - + - + - + - + - - + - - + - - + - - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR10-DPCM8-1X8: + + - MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8 + - 0x300b + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG10-DPCM8-1X8: + + - MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8 + - 0x300c + - + - + - + - + - + - - + - - + - - + - - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG10-DPCM8-1X8: + + - MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8 + - 0x3009 + - + - + - + - + - + - - + - - + - - + - - + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB10-DPCM8-1X8: + + - MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8 + - 0x300d + - + - + - + - + - + - - + - - + - - + - - + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADHI-BE: + + - MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE + - 0x3003 + - + - + - + - + - + - - + - - + - - + - - + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - b\ :sub:`9` + - b\ :sub:`8` + * - + - + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADHI-LE: + + - MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE + - 0x3004 + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * - + - + - + - + - + - + - + - - + - - + - - + - - + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - b\ :sub:`9` + - b\ :sub:`8` + * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADLO-BE: + + - MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE + - 0x3005 + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`9` + - b\ :sub:`8` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + * - + - + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`1` + - b\ :sub:`0` + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + * .. _MEDIA-BUS-FMT-SBGGR10-2X8-PADLO-LE: + + - MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE + - 0x3006 + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`1` + - b\ :sub:`0` + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + * - + - + - + - + - + - + - + - - + - - + - - + - - + - b\ :sub:`9` + - b\ :sub:`8` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + * .. _MEDIA-BUS-FMT-SBGGR10-1X10: + + - MEDIA_BUS_FMT_SBGGR10_1X10 + - 0x3007 + - + - + - + - - + - - + - - + - - + - b\ :sub:`9` + - b\ :sub:`8` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG10-1X10: + + - MEDIA_BUS_FMT_SGBRG10_1X10 + - 0x300e + - + - + - + - - + - - + - - + - - + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG10-1X10: + + - MEDIA_BUS_FMT_SGRBG10_1X10 + - 0x300a + - + - + - + - - + - - + - - + - - + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB10-1X10: + + - MEDIA_BUS_FMT_SRGGB10_1X10 + - 0x300f + - + - + - + - - + - - + - - + - - + - r\ :sub:`9` + - r\ :sub:`8` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR12-1X12: + + - MEDIA_BUS_FMT_SBGGR12_1X12 + - 0x3008 + - + - - + - - + - - + - - + - b\ :sub:`11` + - b\ :sub:`10` + - b\ :sub:`9` + - b\ :sub:`8` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG12-1X12: + + - MEDIA_BUS_FMT_SGBRG12_1X12 + - 0x3010 + - + - - + - - + - - + - - + - g\ :sub:`11` + - g\ :sub:`10` + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG12-1X12: + + - MEDIA_BUS_FMT_SGRBG12_1X12 + - 0x3011 + - + - - + - - + - - + - - + - g\ :sub:`11` + - g\ :sub:`10` + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB12-1X12: + + - MEDIA_BUS_FMT_SRGGB12_1X12 + - 0x3012 + - + - - + - - + - - + - - + - r\ :sub:`11` + - r\ :sub:`10` + - r\ :sub:`9` + - r\ :sub:`8` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR14-1X14: + + - MEDIA_BUS_FMT_SBGGR14_1X14 + - 0x3019 + - + - - + - - + - b\ :sub:`13` + - b\ :sub:`12` + - b\ :sub:`11` + - b\ :sub:`10` + - b\ :sub:`9` + - b\ :sub:`8` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG14-1X14: + + - MEDIA_BUS_FMT_SGBRG14_1X14 + - 0x301a + - + - - + - - + - g\ :sub:`13` + - g\ :sub:`12` + - g\ :sub:`11` + - g\ :sub:`10` + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG14-1X14: + + - MEDIA_BUS_FMT_SGRBG14_1X14 + - 0x301b + - + - - + - - + - g\ :sub:`13` + - g\ :sub:`12` + - g\ :sub:`11` + - g\ :sub:`10` + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB14-1X14: + + - MEDIA_BUS_FMT_SRGGB14_1X14 + - 0x301c + - + - - + - - + - r\ :sub:`13` + - r\ :sub:`12` + - r\ :sub:`11` + - r\ :sub:`10` + - r\ :sub:`9` + - r\ :sub:`8` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` + * .. _MEDIA-BUS-FMT-SBGGR16-1X16: + + - MEDIA_BUS_FMT_SBGGR16_1X16 + - 0x301d + - + - b\ :sub:`15` + - b\ :sub:`14` + - b\ :sub:`13` + - b\ :sub:`12` + - b\ :sub:`11` + - b\ :sub:`10` + - b\ :sub:`9` + - b\ :sub:`8` + - b\ :sub:`7` + - b\ :sub:`6` + - b\ :sub:`5` + - b\ :sub:`4` + - b\ :sub:`3` + - b\ :sub:`2` + - b\ :sub:`1` + - b\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGBRG16-1X16: + + - MEDIA_BUS_FMT_SGBRG16_1X16 + - 0x301e + - + - g\ :sub:`15` + - g\ :sub:`14` + - g\ :sub:`13` + - g\ :sub:`12` + - g\ :sub:`11` + - g\ :sub:`10` + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SGRBG16-1X16: + + - MEDIA_BUS_FMT_SGRBG16_1X16 + - 0x301f + - + - g\ :sub:`15` + - g\ :sub:`14` + - g\ :sub:`13` + - g\ :sub:`12` + - g\ :sub:`11` + - g\ :sub:`10` + - g\ :sub:`9` + - g\ :sub:`8` + - g\ :sub:`7` + - g\ :sub:`6` + - g\ :sub:`5` + - g\ :sub:`4` + - g\ :sub:`3` + - g\ :sub:`2` + - g\ :sub:`1` + - g\ :sub:`0` + * .. _MEDIA-BUS-FMT-SRGGB16-1X16: + + - MEDIA_BUS_FMT_SRGGB16_1X16 + - 0x3020 + - + - r\ :sub:`15` + - r\ :sub:`14` + - r\ :sub:`13` + - r\ :sub:`12` + - r\ :sub:`11` + - r\ :sub:`10` + - r\ :sub:`9` + - r\ :sub:`8` + - r\ :sub:`7` + - r\ :sub:`6` + - r\ :sub:`5` + - r\ :sub:`4` + - r\ :sub:`3` + - r\ :sub:`2` + - r\ :sub:`1` + - r\ :sub:`0` .. raw:: latex @@ -4327,7679 +2391,3934 @@ the following codes. :stub-columns: 0 :widths: 36 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`31` Data organization - - - .. row 2 - - - - - - - Bit - - - 31 - - - 30 - - - 29 - - - 28 - - - 27 - - - 26 - - - 25 - - - 24 - - - 23 - - - 22 - - - 21 - - - 10 - - - 19 - - - 18 - - - 17 - - - 16 - - - 15 - - - 14 - - - 13 - - - 12 - - - 11 - - - 10 - - - 9 - - - 8 - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _MEDIA-BUS-FMT-Y8-1X8: - - - MEDIA_BUS_FMT_Y8_1X8 - - - 0x2001 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UV8-1X8: - - - MEDIA_BUS_FMT_UV8_1X8 - - - 0x2015 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY8-1_5X8: - - - MEDIA_BUS_FMT_UYVY8_1_5X8 - - - 0x2002 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY8-1_5X8: - - - MEDIA_BUS_FMT_VYUY8_1_5X8 - - - 0x2003 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 17 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV8-1_5X8: - - - MEDIA_BUS_FMT_YUYV8_1_5X8 - - - 0x2004 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 19 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 21 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 22 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU8-1_5X8: - - - MEDIA_BUS_FMT_YVYU8_1_5X8 - - - 0x2005 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 25 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 29 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY8-2X8: - - - MEDIA_BUS_FMT_UYVY8_2X8 - - - 0x2006 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 31 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 33 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY8-2X8: - - - MEDIA_BUS_FMT_VYUY8_2X8 - - - 0x2007 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 35 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 36 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV8-2X8: - - - MEDIA_BUS_FMT_YUYV8_2X8 - - - 0x2008 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 39 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 40 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 41 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU8-2X8: - - - MEDIA_BUS_FMT_YVYU8_2X8 - - - 0x2009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 43 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 44 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 45 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-Y10-1X10: - - - MEDIA_BUS_FMT_Y10_1X10 - - - 0x200a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY10-2X10: - - - MEDIA_BUS_FMT_UYVY10_2X10 - - - 0x2018 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 48 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 49 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY10-2X10: - - - MEDIA_BUS_FMT_VYUY10_2X10 - - - 0x2019 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 52 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 54 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV10-2X10: - - - MEDIA_BUS_FMT_YUYV10_2X10 - - - 0x200b - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 56 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 57 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 58 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU10-2X10: - - - MEDIA_BUS_FMT_YVYU10_2X10 - - - 0x200c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 60 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 61 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 62 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-Y12-1X12: - - - MEDIA_BUS_FMT_Y12_1X12 - - - 0x2013 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY12-2X12: - - - MEDIA_BUS_FMT_UYVY12_2X12 - - - 0x201c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 65 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 66 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 67 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY12-2X12: - - - MEDIA_BUS_FMT_VYUY12_2X12 - - - 0x201d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 69 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 70 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 71 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV12-2X12: - - - MEDIA_BUS_FMT_YUYV12_2X12 - - - 0x201e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 73 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 74 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 75 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU12-2X12: - - - MEDIA_BUS_FMT_YVYU12_2X12 - - - 0x201f - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 77 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 78 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 79 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY8-1X16: - - - MEDIA_BUS_FMT_UYVY8_1X16 - - - 0x200f - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY8-1X16: - - - MEDIA_BUS_FMT_VYUY8_1X16 - - - 0x2010 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 83 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV8-1X16: - - - MEDIA_BUS_FMT_YUYV8_1X16 - - - 0x2011 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 85 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU8-1X16: - - - MEDIA_BUS_FMT_YVYU8_1X16 - - - 0x2012 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 87 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YDYUYDYV8-1X16: - - - MEDIA_BUS_FMT_YDYUYDYV8_1X16 - - - 0x2014 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - d - - - d - - - d - - - d - - - d - - - d - - - d - - - d - - - .. row 89 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 90 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - d - - - d - - - d - - - d - - - d - - - d - - - d - - - d - - - .. row 91 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY10-1X20: - - - MEDIA_BUS_FMT_UYVY10_1X20 - - - 0x201a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 93 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY10-1X20: - - - MEDIA_BUS_FMT_VYUY10_1X20 - - - 0x201b - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 95 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV10-1X20: - - - MEDIA_BUS_FMT_YUYV10_1X20 - - - 0x200d - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 97 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU10-1X20: - - - MEDIA_BUS_FMT_YVYU10_1X20 - - - 0x200e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 99 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VUY8-1X24: - - - MEDIA_BUS_FMT_VUY8_1X24 - - - 0x201a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUV8-1X24: - - - MEDIA_BUS_FMT_YUV8_1X24 - - - 0x2025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-UYVY12-1X24: - - - MEDIA_BUS_FMT_UYVY12_1X24 - - - 0x2020 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 103 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-VYUY12-1X24: - - - MEDIA_BUS_FMT_VYUY12_1X24 - - - 0x2021 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. row 105 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUYV12-1X24: - - - MEDIA_BUS_FMT_YUYV12_1X24 - - - 0x2022 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. row 107 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YVYU12-1X24: - - - MEDIA_BUS_FMT_YVYU12_1X24 - - - 0x2023 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - v\ :sub:`11` - - - v\ :sub:`10` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. row 109 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y\ :sub:`11` - - - y\ :sub:`10` - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`11` - - - u\ :sub:`10` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - .. _MEDIA-BUS-FMT-YUV10-1X30: - - - MEDIA_BUS_FMT_YUV10_1X30 - - - 0x2016 - - - - - - - - - - - y\ :sub:`9` - - - y\ :sub:`8` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`9` - - - u\ :sub:`8` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - v\ :sub:`9` - - - v\ :sub:`8` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` - - - .. _MEDIA-BUS-FMT-AYUV8-1X32: - - - MEDIA_BUS_FMT_AYUV8_1X32 - - - 0x2017 - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - y\ :sub:`7` - - - y\ :sub:`6` - - - y\ :sub:`5` - - - y\ :sub:`4` - - - y\ :sub:`3` - - - y\ :sub:`2` - - - y\ :sub:`1` - - - y\ :sub:`0` - - - u\ :sub:`7` - - - u\ :sub:`6` - - - u\ :sub:`5` - - - u\ :sub:`4` - - - u\ :sub:`3` - - - u\ :sub:`2` - - - u\ :sub:`1` - - - u\ :sub:`0` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`31` Data organization + * - + - + - Bit + - 31 + - 30 + - 29 + - 28 + - 27 + - 26 + - 25 + - 24 + - 23 + - 22 + - 21 + - 10 + - 19 + - 18 + - 17 + - 16 + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _MEDIA-BUS-FMT-Y8-1X8: + + - MEDIA_BUS_FMT_Y8_1X8 + - 0x2001 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-UV8-1X8: + + - MEDIA_BUS_FMT_UV8_1X8 + - 0x2015 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY8-1_5X8: + + - MEDIA_BUS_FMT_UYVY8_1_5X8 + - 0x2002 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY8-1_5X8: + + - MEDIA_BUS_FMT_VYUY8_1_5X8 + - 0x2003 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV8-1_5X8: + + - MEDIA_BUS_FMT_YUYV8_1_5X8 + - 0x2004 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU8-1_5X8: + + - MEDIA_BUS_FMT_YVYU8_1_5X8 + - 0x2005 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY8-2X8: + + - MEDIA_BUS_FMT_UYVY8_2X8 + - 0x2006 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY8-2X8: + + - MEDIA_BUS_FMT_VYUY8_2X8 + - 0x2007 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV8-2X8: + + - MEDIA_BUS_FMT_YUYV8_2X8 + - 0x2008 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU8-2X8: + + - MEDIA_BUS_FMT_YVYU8_2X8 + - 0x2009 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-Y10-1X10: + + - MEDIA_BUS_FMT_Y10_1X10 + - 0x200a + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY10-2X10: + + - MEDIA_BUS_FMT_UYVY10_2X10 + - 0x2018 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY10-2X10: + + - MEDIA_BUS_FMT_VYUY10_2X10 + - 0x2019 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV10-2X10: + + - MEDIA_BUS_FMT_YUYV10_2X10 + - 0x200b + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU10-2X10: + + - MEDIA_BUS_FMT_YVYU10_2X10 + - 0x200c + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-Y12-1X12: + + - MEDIA_BUS_FMT_Y12_1X12 + - 0x2013 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY12-2X12: + + - MEDIA_BUS_FMT_UYVY12_2X12 + - 0x201c + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY12-2X12: + + - MEDIA_BUS_FMT_VYUY12_2X12 + - 0x201d + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV12-2X12: + + - MEDIA_BUS_FMT_YUYV12_2X12 + - 0x201e + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU12-2X12: + + - MEDIA_BUS_FMT_YVYU12_2X12 + - 0x201f + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY8-1X16: + + - MEDIA_BUS_FMT_UYVY8_1X16 + - 0x200f + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY8-1X16: + + - MEDIA_BUS_FMT_VYUY8_1X16 + - 0x2010 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV8-1X16: + + - MEDIA_BUS_FMT_YUYV8_1X16 + - 0x2011 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU8-1X16: + + - MEDIA_BUS_FMT_YVYU8_1X16 + - 0x2012 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-YDYUYDYV8-1X16: + + - MEDIA_BUS_FMT_YDYUYDYV8_1X16 + - 0x2014 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - d + - d + - d + - d + - d + - d + - d + - d + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - d + - d + - d + - d + - d + - d + - d + - d + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY10-1X20: + + - MEDIA_BUS_FMT_UYVY10_1X20 + - 0x201a + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY10-1X20: + + - MEDIA_BUS_FMT_VYUY10_1X20 + - 0x201b + - + - + - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV10-1X20: + + - MEDIA_BUS_FMT_YUYV10_1X20 + - 0x200d + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU10-1X20: + + - MEDIA_BUS_FMT_YVYU10_1X20 + - 0x200e + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-VUY8-1X24: + + - MEDIA_BUS_FMT_VUY8_1X24 + - 0x201a + - + - + - + - + - + - + - + - + - + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUV8-1X24: + + - MEDIA_BUS_FMT_YUV8_1X24 + - 0x2025 + - + - + - + - + - + - + - + - + - + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-UYVY12-1X24: + + - MEDIA_BUS_FMT_UYVY12_1X24 + - 0x2020 + - + - + - + - + - + - + - + - + - + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-VYUY12-1X24: + + - MEDIA_BUS_FMT_VYUY12_1X24 + - 0x2021 + - + - + - + - + - + - + - + - + - + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUYV12-1X24: + + - MEDIA_BUS_FMT_YUYV12_1X24 + - 0x2022 + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-YVYU12-1X24: + + - MEDIA_BUS_FMT_YVYU12_1X24 + - 0x2023 + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - v\ :sub:`11` + - v\ :sub:`10` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * - + - + - + - + - + - + - + - + - + - + - + - y\ :sub:`11` + - y\ :sub:`10` + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`11` + - u\ :sub:`10` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + * .. _MEDIA-BUS-FMT-YUV10-1X30: + + - MEDIA_BUS_FMT_YUV10_1X30 + - 0x2016 + - + - + - + - y\ :sub:`9` + - y\ :sub:`8` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`9` + - u\ :sub:`8` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - v\ :sub:`9` + - v\ :sub:`8` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` + * .. _MEDIA-BUS-FMT-AYUV8-1X32: + + - MEDIA_BUS_FMT_AYUV8_1X32 + - 0x2017 + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - y\ :sub:`7` + - y\ :sub:`6` + - y\ :sub:`5` + - y\ :sub:`4` + - y\ :sub:`3` + - y\ :sub:`2` + - y\ :sub:`1` + - y\ :sub:`0` + - u\ :sub:`7` + - u\ :sub:`6` + - u\ :sub:`5` + - u\ :sub:`4` + - u\ :sub:`3` + - u\ :sub:`2` + - u\ :sub:`1` + - u\ :sub:`0` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` .. raw:: latex @@ -12052,155 +6371,82 @@ The following table lists existing HSV/HSL formats. :stub-columns: 0 :widths: 28 7 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - - .. row 1 - - - Identifier - - - Code - - - - - :cspan:`31` Data organization - - - .. row 2 - - - - - - - Bit - - - 31 - - - 30 - - - 29 - - - 28 - - - 27 - - - 26 - - - 25 - - - 24 - - - 23 - - - 22 - - - 21 - - - 20 - - - 19 - - - 18 - - - 17 - - - 16 - - - 15 - - - 14 - - - 13 - - - 12 - - - 11 - - - 10 - - - 9 - - - 8 - - - 7 - - - 6 - - - 5 - - - 4 - - - 3 - - - 2 - - - 1 - - - 0 - - - .. _MEDIA-BUS-FMT-AHSV8888-1X32: - - - MEDIA_BUS_FMT_AHSV8888_1X32 - - - 0x6001 - - - - - a\ :sub:`7` - - - a\ :sub:`6` - - - a\ :sub:`5` - - - a\ :sub:`4` - - - a\ :sub:`3` - - - a\ :sub:`2` - - - a\ :sub:`1` - - - a\ :sub:`0` - - - h\ :sub:`7` - - - h\ :sub:`6` - - - h\ :sub:`5` - - - h\ :sub:`4` - - - h\ :sub:`3` - - - h\ :sub:`2` - - - h\ :sub:`1` - - - h\ :sub:`0` - - - s\ :sub:`7` - - - s\ :sub:`6` - - - s\ :sub:`5` - - - s\ :sub:`4` - - - s\ :sub:`3` - - - s\ :sub:`2` - - - s\ :sub:`1` - - - s\ :sub:`0` - - - v\ :sub:`7` - - - v\ :sub:`6` - - - v\ :sub:`5` - - - v\ :sub:`4` - - - v\ :sub:`3` - - - v\ :sub:`2` - - - v\ :sub:`1` - - - v\ :sub:`0` + * - Identifier + - Code + - + - :cspan:`31` Data organization + * - + - + - Bit + - 31 + - 30 + - 29 + - 28 + - 27 + - 26 + - 25 + - 24 + - 23 + - 22 + - 21 + - 20 + - 19 + - 18 + - 17 + - 16 + - 15 + - 14 + - 13 + - 12 + - 11 + - 10 + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * .. _MEDIA-BUS-FMT-AHSV8888-1X32: + + - MEDIA_BUS_FMT_AHSV8888_1X32 + - 0x6001 + - + - a\ :sub:`7` + - a\ :sub:`6` + - a\ :sub:`5` + - a\ :sub:`4` + - a\ :sub:`3` + - a\ :sub:`2` + - a\ :sub:`1` + - a\ :sub:`0` + - h\ :sub:`7` + - h\ :sub:`6` + - h\ :sub:`5` + - h\ :sub:`4` + - h\ :sub:`3` + - h\ :sub:`2` + - h\ :sub:`1` + - h\ :sub:`0` + - s\ :sub:`7` + - s\ :sub:`6` + - s\ :sub:`5` + - s\ :sub:`4` + - s\ :sub:`3` + - s\ :sub:`2` + - s\ :sub:`1` + - s\ :sub:`0` + - v\ :sub:`7` + - v\ :sub:`6` + - v\ :sub:`5` + - v\ :sub:`4` + - v\ :sub:`3` + - v\ :sub:`2` + - v\ :sub:`1` + - v\ :sub:`0` .. raw:: latex @@ -12232,24 +6478,16 @@ The following table lists existing JPEG compressed formats. :header-rows: 1 :stub-columns: 0 + * - Identifier + - Code + - Remarks + * .. _MEDIA-BUS-FMT-JPEG-1X8: - - .. row 1 - - - Identifier - - - Code - - - Remarks - - - .. _MEDIA-BUS-FMT-JPEG-1X8: - - - MEDIA_BUS_FMT_JPEG_1X8 - - - 0x4001 - - - Besides of its usage for the parallel bus this format is - recommended for transmission of JPEG data over MIPI CSI bus using - the User Defined 8-bit Data types. + - MEDIA_BUS_FMT_JPEG_1X8 + - 0x4001 + - Besides of its usage for the parallel bus this format is + recommended for transmission of JPEG data over MIPI CSI bus using + the User Defined 8-bit Data types. @@ -12273,20 +6511,12 @@ formats. :header-rows: 1 :stub-columns: 0 + * - Identifier + - Code + - Comments + * .. _MEDIA-BUS-FMT-S5C-UYVY-JPEG-1X8: - - .. row 1 - - - Identifier - - - Code - - - Comments - - - .. _MEDIA-BUS-FMT-S5C-UYVY-JPEG-1X8: - - - MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 - - - 0x5001 - - - Interleaved raw UYVY and JPEG image format with embedded meta-data - used by Samsung S3C73MX camera sensors. + - MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 + - 0x5001 + - Interleaved raw UYVY and JPEG image format with embedded meta-data + used by Samsung S3C73MX camera sensors. diff --git a/Documentation/media/uapi/v4l/v4l2-selection-flags.rst b/Documentation/media/uapi/v4l/v4l2-selection-flags.rst index 9ef139f8e21d..1f9a03851d0f 100644 --- a/Documentation/media/uapi/v4l/v4l2-selection-flags.rst +++ b/Documentation/media/uapi/v4l/v4l2-selection-flags.rst @@ -14,59 +14,31 @@ Selection flags :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Flag name - - - id - - - Definition - - - Valid for V4L2 - - - Valid for V4L2 subdev - - - .. row 2 - - - ``V4L2_SEL_FLAG_GE`` - - - (1 << 0) - - - Suggest the driver it should choose greater or equal rectangle (in - size) than was requested. Albeit the driver may choose a lesser - size, it will only do so due to hardware limitations. Without this - flag (and ``V4L2_SEL_FLAG_LE``) the behaviour is to choose the - closest possible rectangle. - - - Yes - - - Yes - - - .. row 3 - - - ``V4L2_SEL_FLAG_LE`` - - - (1 << 1) - - - Suggest the driver it should choose lesser or equal rectangle (in - size) than was requested. Albeit the driver may choose a greater - size, it will only do so due to hardware limitations. - - - Yes - - - Yes - - - .. row 4 - - - ``V4L2_SEL_FLAG_KEEP_CONFIG`` - - - (1 << 2) - - - The configuration must not be propagated to any further processing - steps. If this flag is not given, the configuration is propagated - inside the subdevice to all further processing steps. - - - No - - - Yes + * - Flag name + - id + - Definition + - Valid for V4L2 + - Valid for V4L2 subdev + * - ``V4L2_SEL_FLAG_GE`` + - (1 << 0) + - Suggest the driver it should choose greater or equal rectangle (in + size) than was requested. Albeit the driver may choose a lesser + size, it will only do so due to hardware limitations. Without this + flag (and ``V4L2_SEL_FLAG_LE``) the behaviour is to choose the + closest possible rectangle. + - Yes + - Yes + * - ``V4L2_SEL_FLAG_LE`` + - (1 << 1) + - Suggest the driver it should choose lesser or equal rectangle (in + size) than was requested. Albeit the driver may choose a greater + size, it will only do so due to hardware limitations. + - Yes + - Yes + * - ``V4L2_SEL_FLAG_KEEP_CONFIG`` + - (1 << 2) + - The configuration must not be propagated to any further processing + steps. If this flag is not given, the configuration is propagated + inside the subdevice to all further processing steps. + - No + - Yes diff --git a/Documentation/media/uapi/v4l/v4l2-selection-targets.rst b/Documentation/media/uapi/v4l/v4l2-selection-targets.rst index a82b58f5ebcf..cab07de6f4da 100644 --- a/Documentation/media/uapi/v4l/v4l2-selection-targets.rst +++ b/Documentation/media/uapi/v4l/v4l2-selection-targets.rst @@ -18,120 +18,57 @@ of the two interfaces they are used. :header-rows: 1 :stub-columns: 0 - - - .. row 1 - - - Target name - - - id - - - Definition - - - Valid for V4L2 - - - Valid for V4L2 subdev - - - .. row 2 - - - ``V4L2_SEL_TGT_CROP`` - - - 0x0000 - - - Crop rectangle. Defines the cropped area. - - - Yes - - - Yes - - - .. row 3 - - - ``V4L2_SEL_TGT_CROP_DEFAULT`` - - - 0x0001 - - - Suggested cropping rectangle that covers the "whole picture". - - - Yes - - - No - - - .. row 4 - - - ``V4L2_SEL_TGT_CROP_BOUNDS`` - - - 0x0002 - - - Bounds of the crop rectangle. All valid crop rectangles fit inside - the crop bounds rectangle. - - - Yes - - - Yes - - - .. row 5 - - - ``V4L2_SEL_TGT_NATIVE_SIZE`` - - - 0x0003 - - - The native size of the device, e.g. a sensor's pixel array. - ``left`` and ``top`` fields are zero for this target. Setting the - native size will generally only make sense for memory to memory - devices where the software can create a canvas of a given size in - which for example a video frame can be composed. In that case - V4L2_SEL_TGT_NATIVE_SIZE can be used to configure the size of - that canvas. - - - Yes - - - Yes - - - .. row 6 - - - ``V4L2_SEL_TGT_COMPOSE`` - - - 0x0100 - - - Compose rectangle. Used to configure scaling and composition. - - - Yes - - - Yes - - - .. row 7 - - - ``V4L2_SEL_TGT_COMPOSE_DEFAULT`` - - - 0x0101 - - - Suggested composition rectangle that covers the "whole picture". - - - Yes - - - No - - - .. row 8 - - - ``V4L2_SEL_TGT_COMPOSE_BOUNDS`` - - - 0x0102 - - - Bounds of the compose rectangle. All valid compose rectangles fit - inside the compose bounds rectangle. - - - Yes - - - Yes - - - .. row 9 - - - ``V4L2_SEL_TGT_COMPOSE_PADDED`` - - - 0x0103 - - - The active area and all padding pixels that are inserted or - modified by hardware. - - - Yes - - - No + * - Target name + - id + - Definition + - Valid for V4L2 + - Valid for V4L2 subdev + * - ``V4L2_SEL_TGT_CROP`` + - 0x0000 + - Crop rectangle. Defines the cropped area. + - Yes + - Yes + * - ``V4L2_SEL_TGT_CROP_DEFAULT`` + - 0x0001 + - Suggested cropping rectangle that covers the "whole picture". + - Yes + - No + * - ``V4L2_SEL_TGT_CROP_BOUNDS`` + - 0x0002 + - Bounds of the crop rectangle. All valid crop rectangles fit inside + the crop bounds rectangle. + - Yes + - Yes + * - ``V4L2_SEL_TGT_NATIVE_SIZE`` + - 0x0003 + - The native size of the device, e.g. a sensor's pixel array. + ``left`` and ``top`` fields are zero for this target. Setting the + native size will generally only make sense for memory to memory + devices where the software can create a canvas of a given size in + which for example a video frame can be composed. In that case + V4L2_SEL_TGT_NATIVE_SIZE can be used to configure the size of + that canvas. + - Yes + - Yes + * - ``V4L2_SEL_TGT_COMPOSE`` + - 0x0100 + - Compose rectangle. Used to configure scaling and composition. + - Yes + - Yes + * - ``V4L2_SEL_TGT_COMPOSE_DEFAULT`` + - 0x0101 + - Suggested composition rectangle that covers the "whole picture". + - Yes + - No + * - ``V4L2_SEL_TGT_COMPOSE_BOUNDS`` + - 0x0102 + - Bounds of the compose rectangle. All valid compose rectangles fit + inside the compose bounds rectangle. + - Yes + - Yes + * - ``V4L2_SEL_TGT_COMPOSE_PADDED`` + - 0x0103 + - The active area and all padding pixels that are inserted or + modified by hardware. + - Yes + - No diff --git a/Documentation/media/uapi/v4l/vidioc-create-bufs.rst b/Documentation/media/uapi/v4l/vidioc-create-bufs.rst index 810634e47d54..aaca12fca06e 100644 --- a/Documentation/media/uapi/v4l/vidioc-create-bufs.rst +++ b/Documentation/media/uapi/v4l/vidioc-create-bufs.rst @@ -80,55 +80,30 @@ than the number requested. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - The starting buffer index, returned by the driver. - - - .. row 2 - - - __u32 - - - ``count`` - - - The number of buffers requested or granted. If count == 0, then - :ref:`VIDIOC_CREATE_BUFS` will set ``index`` to the current number of - created buffers, and it will check the validity of ``memory`` and - ``format.type``. If those are invalid -1 is returned and errno is - set to ``EINVAL`` error code, otherwise :ref:`VIDIOC_CREATE_BUFS` returns - 0. It will never set errno to ``EBUSY`` error code in this particular - case. - - - .. row 3 - - - __u32 - - - ``memory`` - - - Applications set this field to ``V4L2_MEMORY_MMAP``, - ``V4L2_MEMORY_DMABUF`` or ``V4L2_MEMORY_USERPTR``. See - :c:type:`v4l2_memory` - - - .. row 4 - - - struct :c:type:`v4l2_format` - - - ``format`` - - - Filled in by the application, preserved by the driver. - - - .. row 5 - - - __u32 - - - ``reserved``\ [8] - - - A place holder for future extensions. Drivers and applications - must set the array to zero. + * - __u32 + - ``index`` + - The starting buffer index, returned by the driver. + * - __u32 + - ``count`` + - The number of buffers requested or granted. If count == 0, then + :ref:`VIDIOC_CREATE_BUFS` will set ``index`` to the current number of + created buffers, and it will check the validity of ``memory`` and + ``format.type``. If those are invalid -1 is returned and errno is + set to ``EINVAL`` error code, otherwise :ref:`VIDIOC_CREATE_BUFS` returns + 0. It will never set errno to ``EBUSY`` error code in this particular + case. + * - __u32 + - ``memory`` + - Applications set this field to ``V4L2_MEMORY_MMAP``, + ``V4L2_MEMORY_DMABUF`` or ``V4L2_MEMORY_USERPTR``. See + :c:type:`v4l2_memory` + * - struct :c:type:`v4l2_format` + - ``format`` + - Filled in by the application, preserved by the driver. + * - __u32 + - ``reserved``\ [8] + - A place holder for future extensions. Drivers and applications + must set the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-cropcap.rst b/Documentation/media/uapi/v4l/vidioc-cropcap.rst index f7d448cad4eb..f21a69b554e1 100644 --- a/Documentation/media/uapi/v4l/vidioc-cropcap.rst +++ b/Documentation/media/uapi/v4l/vidioc-cropcap.rst @@ -59,56 +59,36 @@ overlay devices. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``type`` + - Type of the data stream, set by the application. Only these types + are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, + ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and + ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`. + * - struct :ref:`v4l2_rect ` + - ``bounds`` + - Defines the window within capturing or output is possible, this + may exclude for example the horizontal and vertical blanking + areas. The cropping rectangle cannot exceed these limits. Width + and height are defined in pixels, the driver writer is free to + choose origin and units of the coordinate system in the analog + domain. + * - struct :ref:`v4l2_rect ` + - ``defrect`` + - Default cropping rectangle, it shall cover the "whole picture". + Assuming pixel aspect 1/1 this could be for example a 640 × 480 + rectangle for NTSC, a 768 × 576 rectangle for PAL and SECAM + centered over the active picture area. The same co-ordinate system + as for ``bounds`` is used. + * - struct :c:type:`v4l2_fract` + - ``pixelaspect`` + - This is the pixel aspect (y / x) when no scaling is applied, the + ratio of the actual sampling frequency and the frequency required + to get square pixels. - - .. row 1 - - - __u32 - - - ``type`` - - - Type of the data stream, set by the application. Only these types - are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`. - - - .. row 2 - - - struct :ref:`v4l2_rect ` - - - ``bounds`` - - - Defines the window within capturing or output is possible, this - may exclude for example the horizontal and vertical blanking - areas. The cropping rectangle cannot exceed these limits. Width - and height are defined in pixels, the driver writer is free to - choose origin and units of the coordinate system in the analog - domain. - - - .. row 3 - - - struct :ref:`v4l2_rect ` - - - ``defrect`` - - - Default cropping rectangle, it shall cover the "whole picture". - Assuming pixel aspect 1/1 this could be for example a 640 × 480 - rectangle for NTSC, a 768 × 576 rectangle for PAL and SECAM - centered over the active picture area. The same co-ordinate system - as for ``bounds`` is used. - - - .. row 4 - - - struct :c:type:`v4l2_fract` - - - ``pixelaspect`` - - - This is the pixel aspect (y / x) when no scaling is applied, the - ratio of the actual sampling frequency and the frequency required - to get square pixels. - - When cropping coordinates refer to square pixels, the driver sets - ``pixelaspect`` to 1/1. Other common values are 54/59 for PAL and - SECAM, 11/10 for NTSC sampled according to [:ref:`itu601`]. + When cropping coordinates refer to square pixels, the driver sets + ``pixelaspect`` to 1/1. Other common values are 54/59 for PAL and + SECAM, 11/10 for NTSC sampled according to [:ref:`itu601`]. @@ -121,40 +101,20 @@ overlay devices. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __s32 - - - ``left`` - - - Horizontal offset of the top, left corner of the rectangle, in - pixels. - - - .. row 2 - - - __s32 - - - ``top`` - - - Vertical offset of the top, left corner of the rectangle, in - pixels. - - - .. row 3 - - - __u32 - - - ``width`` - - - Width of the rectangle, in pixels. - - - .. row 4 - - - __u32 - - - ``height`` - - - Height of the rectangle, in pixels. + * - __s32 + - ``left`` + - Horizontal offset of the top, left corner of the rectangle, in + pixels. + * - __s32 + - ``top`` + - Vertical offset of the top, left corner of the rectangle, in + pixels. + * - __u32 + - ``width`` + - Width of the rectangle, in pixels. + * - __u32 + - ``height`` + - Height of the rectangle, in pixels. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst b/Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst index f9d76f3d519d..e1e5507e79ff 100644 --- a/Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst +++ b/Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst @@ -85,40 +85,21 @@ instructions. :stub-columns: 0 :widths: 1 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - See :ref:`name-chip-match-types` for a list of possible types. - - - .. row 2 - - - union - - - (anonymous) - - - .. row 3 - - - - - __u32 - - - ``addr`` - - - Match a chip by this number, interpreted according to the ``type`` - field. - - - .. row 4 - - - - - char - - - ``name[32]`` - - - Match a chip by this name, interpreted according to the ``type`` - field. Currently unused. + * - __u32 + - ``type`` + - See :ref:`name-chip-match-types` for a list of possible types. + * - union + - (anonymous) + * - + - __u32 + - ``addr`` + - Match a chip by this number, interpreted according to the ``type`` + field. + * - + - char + - ``name[32]`` + - Match a chip by this name, interpreted according to the ``type`` + field. Currently unused. @@ -131,41 +112,21 @@ instructions. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - struct v4l2_dbg_match - - - ``match`` - - - How to match the chip, see :ref:`name-v4l2-dbg-match`. - - - .. row 2 - - - char - - - ``name[32]`` - - - The name of the chip. - - - .. row 3 - - - __u32 - - - ``flags`` - - - Set by the driver. If ``V4L2_CHIP_FL_READABLE`` is set, then the - driver supports reading registers from the device. If - ``V4L2_CHIP_FL_WRITABLE`` is set, then it supports writing - registers. - - - .. row 4 - - - __u32 - - - ``reserved[8]`` - - - Reserved fields, both application and driver must set these to 0. + * - struct v4l2_dbg_match + - ``match`` + - How to match the chip, see :ref:`name-v4l2-dbg-match`. + * - char + - ``name[32]`` + - The name of the chip. + * - __u32 + - ``flags`` + - Set by the driver. If ``V4L2_CHIP_FL_READABLE`` is set, then the + driver supports reading registers from the device. If + ``V4L2_CHIP_FL_WRITABLE`` is set, then it supports writing + registers. + * - __u32 + - ``reserved[8]`` + - Reserved fields, both application and driver must set these to 0. @@ -178,23 +139,13 @@ instructions. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_CHIP_MATCH_BRIDGE`` - - - 0 - - - Match the nth chip on the card, zero for the bridge chip. Does not - match sub-devices. - - - .. row 2 - - - ``V4L2_CHIP_MATCH_SUBDEV`` - - - 4 - - - Match the nth sub-device. + * - ``V4L2_CHIP_MATCH_BRIDGE`` + - 0 + - Match the nth chip on the card, zero for the bridge chip. Does not + match sub-devices. + * - ``V4L2_CHIP_MATCH_SUBDEV`` + - 4 + - Match the nth sub-device. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst b/Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst index b875ee2aece7..5960a6547f41 100644 --- a/Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst +++ b/Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst @@ -94,40 +94,21 @@ instructions. :stub-columns: 0 :widths: 1 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - See :ref:`chip-match-types` for a list of possible types. - - - .. row 2 - - - union - - - (anonymous) - - - .. row 3 - - - - - __u32 - - - ``addr`` - - - Match a chip by this number, interpreted according to the ``type`` - field. - - - .. row 4 - - - - - char - - - ``name[32]`` - - - Match a chip by this name, interpreted according to the ``type`` - field. Currently unused. + * - __u32 + - ``type`` + - See :ref:`chip-match-types` for a list of possible types. + * - union + - (anonymous) + * - + - __u32 + - ``addr`` + - Match a chip by this number, interpreted according to the ``type`` + field. + * - + - char + - ``name[32]`` + - Match a chip by this name, interpreted according to the ``type`` + field. Currently unused. @@ -137,38 +118,18 @@ instructions. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - struct v4l2_dbg_match - - - ``match`` - - - How to match the chip, see :c:type:`v4l2_dbg_match`. - - - .. row 2 - - - __u32 - - - ``size`` - - - The register size in bytes. - - - .. row 3 - - - __u64 - - - ``reg`` - - - A register number. - - - .. row 4 - - - __u64 - - - ``val`` - - - The value read from, or to be written into the register. + * - struct v4l2_dbg_match + - ``match`` + - How to match the chip, see :c:type:`v4l2_dbg_match`. + * - __u32 + - ``size`` + - The register size in bytes. + * - __u64 + - ``reg`` + - A register number. + * - __u64 + - ``val`` + - The value read from, or to be written into the register. @@ -181,23 +142,13 @@ instructions. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_CHIP_MATCH_BRIDGE`` - - - 0 - - - Match the nth chip on the card, zero for the bridge chip. Does not - match sub-devices. - - - .. row 2 - - - ``V4L2_CHIP_MATCH_SUBDEV`` - - - 4 - - - Match the nth sub-device. + * - ``V4L2_CHIP_MATCH_BRIDGE`` + - 0 + - Match the nth chip on the card, zero for the bridge chip. Does not + match sub-devices. + * - ``V4L2_CHIP_MATCH_SUBDEV`` + - 4 + - Match the nth sub-device. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst b/Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst index cade4603e138..85c916b0ce07 100644 --- a/Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst +++ b/Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst @@ -70,125 +70,75 @@ introduced in Linux 3.3. :stub-columns: 0 :widths: 11 24 12 16 106 - - - .. row 1 - - - __u32 - - - ``cmd`` - - - - - - - The decoder command, see :ref:`decoder-cmds`. - - - .. row 2 - - - __u32 - - - ``flags`` - - - - - - - Flags to go with the command. If no flags are defined for this - command, drivers and applications must set this field to zero. - - - .. row 3 - - - union - - - (anonymous) - - - - - - - - - - .. row 4 - - - - - struct - - - ``start`` - - - - - Structure containing additional data for the - ``V4L2_DEC_CMD_START`` command. - - - .. row 5 - - - - - - - __s32 - - - ``speed`` - - - Playback speed and direction. The playback speed is defined as - ``speed``/1000 of the normal speed. So 1000 is normal playback. - Negative numbers denote reverse playback, so -1000 does reverse - playback at normal speed. Speeds -1, 0 and 1 have special - meanings: speed 0 is shorthand for 1000 (normal playback). A speed - of 1 steps just one frame forward, a speed of -1 steps just one - frame back. - - - .. row 6 - - - - - - - __u32 - - - ``format`` - - - Format restrictions. This field is set by the driver, not the - application. Possible values are ``V4L2_DEC_START_FMT_NONE`` if - there are no format restrictions or ``V4L2_DEC_START_FMT_GOP`` if - the decoder operates on full GOPs (*Group Of Pictures*). This is - usually the case for reverse playback: the decoder needs full - GOPs, which it can then play in reverse order. So to implement - reverse playback the application must feed the decoder the last - GOP in the video file, then the GOP before that, etc. etc. - - - .. row 7 - - - - - struct - - - ``stop`` - - - - - Structure containing additional data for the ``V4L2_DEC_CMD_STOP`` - command. - - - .. row 8 - - - - - - - __u64 - - - ``pts`` - - - Stop playback at this ``pts`` or immediately if the playback is - already past that timestamp. Leave to 0 if you want to stop after - the last frame was decoded. - - - .. row 9 - - - - - struct - - - ``raw`` - - - - - - - - .. row 10 - - - - - - - __u32 - - - ``data``\ [16] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + * - __u32 + - ``cmd`` + - + - + - The decoder command, see :ref:`decoder-cmds`. + * - __u32 + - ``flags`` + - + - + - Flags to go with the command. If no flags are defined for this + command, drivers and applications must set this field to zero. + * - union + - (anonymous) + - + - + - + * - + - struct + - ``start`` + - + - Structure containing additional data for the + ``V4L2_DEC_CMD_START`` command. + * - + - + - __s32 + - ``speed`` + - Playback speed and direction. The playback speed is defined as + ``speed``/1000 of the normal speed. So 1000 is normal playback. + Negative numbers denote reverse playback, so -1000 does reverse + playback at normal speed. Speeds -1, 0 and 1 have special + meanings: speed 0 is shorthand for 1000 (normal playback). A speed + of 1 steps just one frame forward, a speed of -1 steps just one + frame back. + * - + - + - __u32 + - ``format`` + - Format restrictions. This field is set by the driver, not the + application. Possible values are ``V4L2_DEC_START_FMT_NONE`` if + there are no format restrictions or ``V4L2_DEC_START_FMT_GOP`` if + the decoder operates on full GOPs (*Group Of Pictures*). This is + usually the case for reverse playback: the decoder needs full + GOPs, which it can then play in reverse order. So to implement + reverse playback the application must feed the decoder the last + GOP in the video file, then the GOP before that, etc. etc. + * - + - struct + - ``stop`` + - + - Structure containing additional data for the ``V4L2_DEC_CMD_STOP`` + command. + * - + - + - __u64 + - ``pts`` + - Stop playback at this ``pts`` or immediately if the playback is + already past that timestamp. Leave to 0 if you want to stop after + the last frame was decoded. + * - + - struct + - ``raw`` + - + - + * - + - + - __u32 + - ``data``\ [16] + - Reserved for future extensions. Drivers and applications must set + the array to zero. @@ -201,68 +151,48 @@ introduced in Linux 3.3. :stub-columns: 0 :widths: 56 6 113 - - - .. row 1 - - - ``V4L2_DEC_CMD_START`` - - - 0 - - - Start the decoder. When the decoder is already running or paused, - this command will just change the playback speed. That means that - calling ``V4L2_DEC_CMD_START`` when the decoder was paused will - *not* resume the decoder. You have to explicitly call - ``V4L2_DEC_CMD_RESUME`` for that. This command has one flag: - ``V4L2_DEC_CMD_START_MUTE_AUDIO``. If set, then audio will be - muted when playing back at a non-standard speed. - - - .. row 2 - - - ``V4L2_DEC_CMD_STOP`` - - - 1 - - - Stop the decoder. When the decoder is already stopped, this - command does nothing. This command has two flags: if - ``V4L2_DEC_CMD_STOP_TO_BLACK`` is set, then the decoder will set - the picture to black after it stopped decoding. Otherwise the last - image will repeat. mem2mem decoders will stop producing new frames - altogether. They will send a ``V4L2_EVENT_EOS`` event when the - last frame has been decoded and all frames are ready to be - dequeued and will set the ``V4L2_BUF_FLAG_LAST`` buffer flag on - the last buffer of the capture queue to indicate there will be no - new buffers produced to dequeue. This buffer may be empty, - indicated by the driver setting the ``bytesused`` field to 0. Once - the ``V4L2_BUF_FLAG_LAST`` flag was set, the - :ref:`VIDIOC_DQBUF ` ioctl will not block anymore, - but return an ``EPIPE`` error code. If - ``V4L2_DEC_CMD_STOP_IMMEDIATELY`` is set, then the decoder stops - immediately (ignoring the ``pts`` value), otherwise it will keep - decoding until timestamp >= pts or until the last of the pending - data from its internal buffers was decoded. - - - .. row 3 - - - ``V4L2_DEC_CMD_PAUSE`` - - - 2 - - - Pause the decoder. When the decoder has not been started yet, the - driver will return an ``EPERM`` error code. When the decoder is - already paused, this command does nothing. This command has one - flag: if ``V4L2_DEC_CMD_PAUSE_TO_BLACK`` is set, then set the - decoder output to black when paused. - - - .. row 4 - - - ``V4L2_DEC_CMD_RESUME`` - - - 3 - - - Resume decoding after a PAUSE command. When the decoder has not - been started yet, the driver will return an ``EPERM`` error code. When - the decoder is already running, this command does nothing. No - flags are defined for this command. + * - ``V4L2_DEC_CMD_START`` + - 0 + - Start the decoder. When the decoder is already running or paused, + this command will just change the playback speed. That means that + calling ``V4L2_DEC_CMD_START`` when the decoder was paused will + *not* resume the decoder. You have to explicitly call + ``V4L2_DEC_CMD_RESUME`` for that. This command has one flag: + ``V4L2_DEC_CMD_START_MUTE_AUDIO``. If set, then audio will be + muted when playing back at a non-standard speed. + * - ``V4L2_DEC_CMD_STOP`` + - 1 + - Stop the decoder. When the decoder is already stopped, this + command does nothing. This command has two flags: if + ``V4L2_DEC_CMD_STOP_TO_BLACK`` is set, then the decoder will set + the picture to black after it stopped decoding. Otherwise the last + image will repeat. mem2mem decoders will stop producing new frames + altogether. They will send a ``V4L2_EVENT_EOS`` event when the + last frame has been decoded and all frames are ready to be + dequeued and will set the ``V4L2_BUF_FLAG_LAST`` buffer flag on + the last buffer of the capture queue to indicate there will be no + new buffers produced to dequeue. This buffer may be empty, + indicated by the driver setting the ``bytesused`` field to 0. Once + the ``V4L2_BUF_FLAG_LAST`` flag was set, the + :ref:`VIDIOC_DQBUF ` ioctl will not block anymore, + but return an ``EPIPE`` error code. If + ``V4L2_DEC_CMD_STOP_IMMEDIATELY`` is set, then the decoder stops + immediately (ignoring the ``pts`` value), otherwise it will keep + decoding until timestamp >= pts or until the last of the pending + data from its internal buffers was decoded. + * - ``V4L2_DEC_CMD_PAUSE`` + - 2 + - Pause the decoder. When the decoder has not been started yet, the + driver will return an ``EPERM`` error code. When the decoder is + already paused, this command does nothing. This command has one + flag: if ``V4L2_DEC_CMD_PAUSE_TO_BLACK`` is set, then set the + decoder output to black when paused. + * - ``V4L2_DEC_CMD_RESUME`` + - 3 + - Resume decoding after a PAUSE command. When the decoder has not + been started yet, the driver will return an ``EPERM`` error code. When + the decoder is already running, this command does nothing. No + flags are defined for this command. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-dqevent.rst b/Documentation/media/uapi/v4l/vidioc-dqevent.rst index 6347d2f83a44..8d663a73818e 100644 --- a/Documentation/media/uapi/v4l/vidioc-dqevent.rst +++ b/Documentation/media/uapi/v4l/vidioc-dqevent.rst @@ -49,131 +49,66 @@ call. :stub-columns: 0 :widths: 1 1 2 1 - - - .. row 1 - - - __u32 - - - ``type`` - - - - - Type of the event, see :ref:`event-type`. - - - .. row 2 - - - union - - - ``u`` - - - - - - - - .. row 3 - - - - - struct :c:type:`v4l2_event_vsync` - - - ``vsync`` - - - Event data for event ``V4L2_EVENT_VSYNC``. - - - .. row 4 - - - - - struct :c:type:`v4l2_event_ctrl` - - - ``ctrl`` - - - Event data for event ``V4L2_EVENT_CTRL``. - - - .. row 5 - - - - - struct :c:type:`v4l2_event_frame_sync` - - - ``frame_sync`` - - - Event data for event ``V4L2_EVENT_FRAME_SYNC``. - - - .. row 6 - - - - - struct :c:type:`v4l2_event_motion_det` - - - ``motion_det`` - - - Event data for event V4L2_EVENT_MOTION_DET. - - - .. row 7 - - - - - struct :c:type:`v4l2_event_src_change` - - - ``src_change`` - - - Event data for event V4L2_EVENT_SOURCE_CHANGE. - - - .. row 8 - - - - - __u8 - - - ``data``\ [64] - - - Event data. Defined by the event type. The union should be used to - define easily accessible type for events. - - - .. row 9 - - - __u32 - - - ``pending`` - - - - - Number of pending events excluding this one. - - - .. row 10 - - - __u32 - - - ``sequence`` - - - - - Event sequence number. The sequence number is incremented for - every subscribed event that takes place. If sequence numbers are - not contiguous it means that events have been lost. - - - .. row 11 - - - struct timespec - - - ``timestamp`` - - - - - Event timestamp. The timestamp has been taken from the - ``CLOCK_MONOTONIC`` clock. To access the same clock outside V4L2, - use :c:func:`clock_gettime`. - - - .. row 12 - - - u32 - - - ``id`` - - - - - The ID associated with the event source. If the event does not - have an associated ID (this depends on the event type), then this - is 0. - - - .. row 13 - - - __u32 - - - ``reserved``\ [8] - - - - - Reserved for future extensions. Drivers must set the array to - zero. + * - __u32 + - ``type`` + - + - Type of the event, see :ref:`event-type`. + * - union + - ``u`` + - + - + * - + - struct :c:type:`v4l2_event_vsync` + - ``vsync`` + - Event data for event ``V4L2_EVENT_VSYNC``. + * - + - struct :c:type:`v4l2_event_ctrl` + - ``ctrl`` + - Event data for event ``V4L2_EVENT_CTRL``. + * - + - struct :c:type:`v4l2_event_frame_sync` + - ``frame_sync`` + - Event data for event ``V4L2_EVENT_FRAME_SYNC``. + * - + - struct :c:type:`v4l2_event_motion_det` + - ``motion_det`` + - Event data for event V4L2_EVENT_MOTION_DET. + * - + - struct :c:type:`v4l2_event_src_change` + - ``src_change`` + - Event data for event V4L2_EVENT_SOURCE_CHANGE. + * - + - __u8 + - ``data``\ [64] + - Event data. Defined by the event type. The union should be used to + define easily accessible type for events. + * - __u32 + - ``pending`` + - + - Number of pending events excluding this one. + * - __u32 + - ``sequence`` + - + - Event sequence number. The sequence number is incremented for + every subscribed event that takes place. If sequence numbers are + not contiguous it means that events have been lost. + * - struct timespec + - ``timestamp`` + - + - Event timestamp. The timestamp has been taken from the + ``CLOCK_MONOTONIC`` clock. To access the same clock outside V4L2, + use :c:func:`clock_gettime`. + * - u32 + - ``id`` + - + - The ID associated with the event source. If the event does not + have an associated ID (this depends on the event type), then this + is 0. + * - __u32 + - ``reserved``\ [8] + - + - Reserved for future extensions. Drivers must set the array to + zero. @@ -188,123 +123,83 @@ call. :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_EVENT_ALL`` + - 0 + - All events. V4L2_EVENT_ALL is valid only for + VIDIOC_UNSUBSCRIBE_EVENT for unsubscribing all events at once. + * - ``V4L2_EVENT_VSYNC`` + - 1 + - This event is triggered on the vertical sync. This event has a + struct :c:type:`v4l2_event_vsync` associated + with it. + * - ``V4L2_EVENT_EOS`` + - 2 + - This event is triggered when the end of a stream is reached. This + is typically used with MPEG decoders to report to the application + when the last of the MPEG stream has been decoded. + * - ``V4L2_EVENT_CTRL`` + - 3 + - This event requires that the ``id`` matches the control ID from + which you want to receive events. This event is triggered if the + control's value changes, if a button control is pressed or if the + control's flags change. This event has a struct + :c:type:`v4l2_event_ctrl` associated with it. + This struct contains much of the same information as struct + :ref:`v4l2_queryctrl ` and struct + :c:type:`v4l2_control`. - - .. row 1 + If the event is generated due to a call to + :ref:`VIDIOC_S_CTRL ` or + :ref:`VIDIOC_S_EXT_CTRLS `, then the + event will *not* be sent to the file handle that called the ioctl + function. This prevents nasty feedback loops. If you *do* want to + get the event, then set the ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK`` + flag. - - ``V4L2_EVENT_ALL`` + This event type will ensure that no information is lost when more + events are raised than there is room internally. In that case the + struct :c:type:`v4l2_event_ctrl` of the + second-oldest event is kept, but the ``changes`` field of the + second-oldest event is ORed with the ``changes`` field of the + oldest event. + * - ``V4L2_EVENT_FRAME_SYNC`` + - 4 + - Triggered immediately when the reception of a frame has begun. + This event has a struct + :c:type:`v4l2_event_frame_sync` + associated with it. - - 0 + If the hardware needs to be stopped in the case of a buffer + underrun it might not be able to generate this event. In such + cases the ``frame_sequence`` field in struct + :c:type:`v4l2_event_frame_sync` will not + be incremented. This causes two consecutive frame sequence numbers + to have n times frame interval in between them. + * - ``V4L2_EVENT_SOURCE_CHANGE`` + - 5 + - This event is triggered when a source parameter change is detected + during runtime by the video device. It can be a runtime resolution + change triggered by a video decoder or the format change happening + on an input connector. This event requires that the ``id`` matches + the input index (when used with a video device node) or the pad + index (when used with a subdevice node) from which you want to + receive events. - - All events. V4L2_EVENT_ALL is valid only for - VIDIOC_UNSUBSCRIBE_EVENT for unsubscribing all events at once. - - - .. row 2 - - - ``V4L2_EVENT_VSYNC`` - - - 1 - - - This event is triggered on the vertical sync. This event has a - struct :c:type:`v4l2_event_vsync` associated - with it. - - - .. row 3 - - - ``V4L2_EVENT_EOS`` - - - 2 - - - This event is triggered when the end of a stream is reached. This - is typically used with MPEG decoders to report to the application - when the last of the MPEG stream has been decoded. - - - .. row 4 - - - ``V4L2_EVENT_CTRL`` - - - 3 - - - This event requires that the ``id`` matches the control ID from - which you want to receive events. This event is triggered if the - control's value changes, if a button control is pressed or if the - control's flags change. This event has a struct - :c:type:`v4l2_event_ctrl` associated with it. - This struct contains much of the same information as struct - :ref:`v4l2_queryctrl ` and struct - :c:type:`v4l2_control`. - - If the event is generated due to a call to - :ref:`VIDIOC_S_CTRL ` or - :ref:`VIDIOC_S_EXT_CTRLS `, then the - event will *not* be sent to the file handle that called the ioctl - function. This prevents nasty feedback loops. If you *do* want to - get the event, then set the ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK`` - flag. - - This event type will ensure that no information is lost when more - events are raised than there is room internally. In that case the - struct :c:type:`v4l2_event_ctrl` of the - second-oldest event is kept, but the ``changes`` field of the - second-oldest event is ORed with the ``changes`` field of the - oldest event. - - - .. row 5 - - - ``V4L2_EVENT_FRAME_SYNC`` - - - 4 - - - Triggered immediately when the reception of a frame has begun. - This event has a struct - :c:type:`v4l2_event_frame_sync` - associated with it. - - If the hardware needs to be stopped in the case of a buffer - underrun it might not be able to generate this event. In such - cases the ``frame_sequence`` field in struct - :c:type:`v4l2_event_frame_sync` will not - be incremented. This causes two consecutive frame sequence numbers - to have n times frame interval in between them. - - - .. row 6 - - - ``V4L2_EVENT_SOURCE_CHANGE`` - - - 5 - - - This event is triggered when a source parameter change is detected - during runtime by the video device. It can be a runtime resolution - change triggered by a video decoder or the format change happening - on an input connector. This event requires that the ``id`` matches - the input index (when used with a video device node) or the pad - index (when used with a subdevice node) from which you want to - receive events. - - This event has a struct - :c:type:`v4l2_event_src_change` - associated with it. The ``changes`` bitfield denotes what has - changed for the subscribed pad. If multiple events occurred before - application could dequeue them, then the changes will have the - ORed value of all the events generated. - - - .. row 7 - - - ``V4L2_EVENT_MOTION_DET`` - - - 6 - - - Triggered whenever the motion detection state for one or more of - the regions changes. This event has a struct - :c:type:`v4l2_event_motion_det` - associated with it. - - - .. row 8 - - - ``V4L2_EVENT_PRIVATE_START`` - - - 0x08000000 - - - Base event number for driver-private events. + This event has a struct + :c:type:`v4l2_event_src_change` + associated with it. The ``changes`` bitfield denotes what has + changed for the subscribed pad. If multiple events occurred before + application could dequeue them, then the changes will have the + ORed value of all the events generated. + * - ``V4L2_EVENT_MOTION_DET`` + - 6 + - Triggered whenever the motion detection state for one or more of + the regions changes. This event has a struct + :c:type:`v4l2_event_motion_det` + associated with it. + * - ``V4L2_EVENT_PRIVATE_START`` + - 0x08000000 + - Base event number for driver-private events. @@ -317,14 +212,9 @@ call. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u8 - - - ``field`` - - - The upcoming field. See enum :c:type:`v4l2_field`. + * - __u8 + - ``field`` + - The upcoming field. See enum :c:type:`v4l2_field`. @@ -337,103 +227,54 @@ call. :stub-columns: 0 :widths: 1 1 2 1 - - - .. row 1 - - - __u32 - - - ``changes`` - - - - - A bitmask that tells what has changed. See - :ref:`ctrl-changes-flags`. - - - .. row 2 - - - __u32 - - - ``type`` - - - - - The type of the control. See enum - :c:type:`v4l2_ctrl_type`. - - - .. row 3 - - - union (anonymous) - - - - - - - - - - .. row 4 - - - - - __s32 - - - ``value`` - - - The 32-bit value of the control for 32-bit control types. This is - 0 for string controls since the value of a string cannot be passed - using :ref:`VIDIOC_DQEVENT`. - - - .. row 5 - - - - - __s64 - - - ``value64`` - - - The 64-bit value of the control for 64-bit control types. - - - .. row 6 - - - __u32 - - - ``flags`` - - - - - The control flags. See :ref:`control-flags`. - - - .. row 7 - - - __s32 - - - ``minimum`` - - - - - The minimum value of the control. See struct - :ref:`v4l2_queryctrl `. - - - .. row 8 - - - __s32 - - - ``maximum`` - - - - - The maximum value of the control. See struct - :ref:`v4l2_queryctrl `. - - - .. row 9 - - - __s32 - - - ``step`` - - - - - The step value of the control. See struct - :ref:`v4l2_queryctrl `. - - - .. row 10 - - - __s32 - - - ``default_value`` - - - - - The default value value of the control. See struct - :ref:`v4l2_queryctrl `. + * - __u32 + - ``changes`` + - + - A bitmask that tells what has changed. See + :ref:`ctrl-changes-flags`. + * - __u32 + - ``type`` + - + - The type of the control. See enum + :c:type:`v4l2_ctrl_type`. + * - union (anonymous) + - + - + - + * - + - __s32 + - ``value`` + - The 32-bit value of the control for 32-bit control types. This is + 0 for string controls since the value of a string cannot be passed + using :ref:`VIDIOC_DQEVENT`. + * - + - __s64 + - ``value64`` + - The 64-bit value of the control for 64-bit control types. + * - __u32 + - ``flags`` + - + - The control flags. See :ref:`control-flags`. + * - __s32 + - ``minimum`` + - + - The minimum value of the control. See struct + :ref:`v4l2_queryctrl `. + * - __s32 + - ``maximum`` + - + - The maximum value of the control. See struct + :ref:`v4l2_queryctrl `. + * - __s32 + - ``step`` + - + - The step value of the control. See struct + :ref:`v4l2_queryctrl `. + * - __s32 + - ``default_value`` + - + - The default value value of the control. See struct + :ref:`v4l2_queryctrl `. @@ -446,14 +287,9 @@ call. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``frame_sequence`` - - - The sequence number of the frame being received. + * - __u32 + - ``frame_sequence`` + - The sequence number of the frame being received. @@ -466,15 +302,10 @@ call. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``changes`` - - - A bitmask that tells what has changed. See - :ref:`src-changes-flags`. + * - __u32 + - ``changes`` + - A bitmask that tells what has changed. See + :ref:`src-changes-flags`. @@ -487,39 +318,24 @@ call. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``flags`` - - - Currently only one flag is available: if - ``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` is set, then the - ``frame_sequence`` field is valid, otherwise that field should be - ignored. - - - .. row 2 - - - __u32 - - - ``frame_sequence`` - - - The sequence number of the frame being received. Only valid if the - ``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` flag was set. - - - .. row 3 - - - __u32 - - - ``region_mask`` - - - The bitmask of the regions that reported motion. There is at least - one region. If this field is 0, then no motion was detected at - all. If there is no ``V4L2_CID_DETECT_MD_REGION_GRID`` control - (see :ref:`detect-controls`) to assign a different region to - each cell in the motion detection grid, then that all cells are - automatically assigned to the default region 0. + * - __u32 + - ``flags`` + - Currently only one flag is available: if + ``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` is set, then the + ``frame_sequence`` field is valid, otherwise that field should be + ignored. + * - __u32 + - ``frame_sequence`` + - The sequence number of the frame being received. Only valid if the + ``V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ`` flag was set. + * - __u32 + - ``region_mask`` + - The bitmask of the regions that reported motion. There is at least + one region. If this field is 0, then no motion was detected at + all. If there is no ``V4L2_CID_DETECT_MD_REGION_GRID`` control + (see :ref:`detect-controls`) to assign a different region to + each cell in the motion detection grid, then that all cells are + automatically assigned to the default region 0. @@ -532,35 +348,20 @@ call. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_EVENT_CTRL_CH_VALUE`` - - - 0x0001 - - - This control event was triggered because the value of the control - changed. Special cases: Volatile controls do no generate this - event; If a control has the ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE`` - flag set, then this event is sent as well, regardless its value. - - - .. row 2 - - - ``V4L2_EVENT_CTRL_CH_FLAGS`` - - - 0x0002 - - - This control event was triggered because the control flags - changed. - - - .. row 3 - - - ``V4L2_EVENT_CTRL_CH_RANGE`` - - - 0x0004 - - - This control event was triggered because the minimum, maximum, - step or the default value of the control changed. + * - ``V4L2_EVENT_CTRL_CH_VALUE`` + - 0x0001 + - This control event was triggered because the value of the control + changed. Special cases: Volatile controls do no generate this + event; If a control has the ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE`` + flag set, then this event is sent as well, regardless its value. + * - ``V4L2_EVENT_CTRL_CH_FLAGS`` + - 0x0002 + - This control event was triggered because the control flags + changed. + * - ``V4L2_EVENT_CTRL_CH_RANGE`` + - 0x0004 + - This control event was triggered because the minimum, maximum, + step or the default value of the control changed. @@ -573,16 +374,11 @@ call. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_EVENT_SRC_CH_RESOLUTION`` - - - 0x0001 - - - This event gets triggered when a resolution change is detected at - an input. This can come from an input connector or from a video - decoder. + * - ``V4L2_EVENT_SRC_CH_RESOLUTION`` + - 0x0001 + - This event gets triggered when a resolution change is detected at + an input. This can come from an input connector or from a video + decoder. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst b/Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst index 7cb78a0067ac..424f3a1c7f56 100644 --- a/Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst +++ b/Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst @@ -64,81 +64,36 @@ that doesn't support them will return an ``EINVAL`` error code. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``min_width`` - - - Minimum width of the active video in pixels. - - - .. row 2 - - - __u32 - - - ``max_width`` - - - Maximum width of the active video in pixels. - - - .. row 3 - - - __u32 - - - ``min_height`` - - - Minimum height of the active video in lines. - - - .. row 4 - - - __u32 - - - ``max_height`` - - - Maximum height of the active video in lines. - - - .. row 5 - - - __u64 - - - ``min_pixelclock`` - - - Minimum pixelclock frequency in Hz. - - - .. row 6 - - - __u64 - - - ``max_pixelclock`` - - - Maximum pixelclock frequency in Hz. - - - .. row 7 - - - __u32 - - - ``standards`` - - - The video standard(s) supported by the hardware. See - :ref:`dv-bt-standards` for a list of standards. - - - .. row 8 - - - __u32 - - - ``capabilities`` - - - Several flags giving more information about the capabilities. See - :ref:`dv-bt-cap-capabilities` for a description of the flags. - - - .. row 9 - - - __u32 - - - ``reserved``\ [16] - - - Reserved for future extensions. - Drivers must set the array to zero. + * - __u32 + - ``min_width`` + - Minimum width of the active video in pixels. + * - __u32 + - ``max_width`` + - Maximum width of the active video in pixels. + * - __u32 + - ``min_height`` + - Minimum height of the active video in lines. + * - __u32 + - ``max_height`` + - Maximum height of the active video in lines. + * - __u64 + - ``min_pixelclock`` + - Minimum pixelclock frequency in Hz. + * - __u64 + - ``max_pixelclock`` + - Maximum pixelclock frequency in Hz. + * - __u32 + - ``standards`` + - The video standard(s) supported by the hardware. See + :ref:`dv-bt-standards` for a list of standards. + * - __u32 + - ``capabilities`` + - Several flags giving more information about the capabilities. See + :ref:`dv-bt-cap-capabilities` for a description of the flags. + * - __u32 + - ``reserved``\ [16] + - Reserved for future extensions. + Drivers must set the array to zero. @@ -151,59 +106,30 @@ that doesn't support them will return an ``EINVAL`` error code. :stub-columns: 0 :widths: 1 1 2 1 + * - __u32 + - ``type`` + - Type of DV timings as listed in :ref:`dv-timing-types`. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. This field is + only used when operating on a subdevice node. When operating on a + video node applications must set this field to zero. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. - - .. row 1 - - - __u32 - - - ``type`` - - - Type of DV timings as listed in :ref:`dv-timing-types`. - - - .. row 2 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. This field is - only used when operating on a subdevice node. When operating on a - video node applications must set this field to zero. - - - .. row 3 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. - - Drivers and applications must set the array to zero. - - - .. row 4 - - - union - - - - - - - - .. row 5 - - - - - struct :c:type:`v4l2_bt_timings_cap` - - - ``bt`` - - - BT.656/1120 timings capabilities of the hardware. - - - .. row 6 - - - - - __u32 - - - ``raw_data``\ [32] - - - + Drivers and applications must set the array to zero. + * - union + - + - + * - + - struct :c:type:`v4l2_bt_timings_cap` + - ``bt`` + - BT.656/1120 timings capabilities of the hardware. + * - + - __u32 + - ``raw_data``\ [32] + - .. tabularcolumns:: |p{7.0cm}|p{10.5cm}| @@ -213,43 +139,20 @@ that doesn't support them will return an ``EINVAL`` error code. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Flag - - - Description - - - .. row 2 - - - - - - - - .. row 3 - - - ``V4L2_DV_BT_CAP_INTERLACED`` - - - Interlaced formats are supported. - - - .. row 4 - - - ``V4L2_DV_BT_CAP_PROGRESSIVE`` - - - Progressive formats are supported. - - - .. row 5 - - - ``V4L2_DV_BT_CAP_REDUCED_BLANKING`` - - - CVT/GTF specific: the timings can make use of reduced blanking - (CVT) or the 'Secondary GTF' curve (GTF). - - - .. row 6 - - - ``V4L2_DV_BT_CAP_CUSTOM`` - - - Can support non-standard timings, i.e. timings not belonging to - the standards set in the ``standards`` field. + * - Flag + - Description + * - + - + * - ``V4L2_DV_BT_CAP_INTERLACED`` + - Interlaced formats are supported. + * - ``V4L2_DV_BT_CAP_PROGRESSIVE`` + - Progressive formats are supported. + * - ``V4L2_DV_BT_CAP_REDUCED_BLANKING`` + - CVT/GTF specific: the timings can make use of reduced blanking + (CVT) or the 'Secondary GTF' curve (GTF). + * - ``V4L2_DV_BT_CAP_CUSTOM`` + - Can support non-standard timings, i.e. timings not belonging to + the standards set in the ``standards`` field. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst b/Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst index b724ec36a25c..ae20ee573757 100644 --- a/Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst +++ b/Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst @@ -74,33 +74,18 @@ introduced in Linux 2.6.21. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``cmd`` - - - The encoder command, see :ref:`encoder-cmds`. - - - .. row 2 - - - __u32 - - - ``flags`` - - - Flags to go with the command, see :ref:`encoder-flags`. If no - flags are defined for this command, drivers and applications must - set this field to zero. - - - .. row 3 - - - __u32 - - - ``data``\ [8] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + * - __u32 + - ``cmd`` + - The encoder command, see :ref:`encoder-cmds`. + * - __u32 + - ``flags`` + - Flags to go with the command, see :ref:`encoder-flags`. If no + flags are defined for this command, drivers and applications must + set this field to zero. + * - __u32 + - ``data``\ [8] + - Reserved for future extensions. Drivers and applications must set + the array to zero. @@ -113,57 +98,37 @@ introduced in Linux 2.6.21. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_ENC_CMD_START`` - - - 0 - - - Start the encoder. When the encoder is already running or paused, - this command does nothing. No flags are defined for this command. - - - .. row 2 - - - ``V4L2_ENC_CMD_STOP`` - - - 1 - - - Stop the encoder. When the ``V4L2_ENC_CMD_STOP_AT_GOP_END`` flag - is set, encoding will continue until the end of the current *Group - Of Pictures*, otherwise encoding will stop immediately. When the - encoder is already stopped, this command does nothing. mem2mem - encoders will send a ``V4L2_EVENT_EOS`` event when the last frame - has been encoded and all frames are ready to be dequeued and will - set the ``V4L2_BUF_FLAG_LAST`` buffer flag on the last buffer of - the capture queue to indicate there will be no new buffers - produced to dequeue. This buffer may be empty, indicated by the - driver setting the ``bytesused`` field to 0. Once the - ``V4L2_BUF_FLAG_LAST`` flag was set, the - :ref:`VIDIOC_DQBUF ` ioctl will not block anymore, - but return an ``EPIPE`` error code. - - - .. row 3 - - - ``V4L2_ENC_CMD_PAUSE`` - - - 2 - - - Pause the encoder. When the encoder has not been started yet, the - driver will return an ``EPERM`` error code. When the encoder is - already paused, this command does nothing. No flags are defined - for this command. - - - .. row 4 - - - ``V4L2_ENC_CMD_RESUME`` - - - 3 - - - Resume encoding after a PAUSE command. When the encoder has not - been started yet, the driver will return an ``EPERM`` error code. When - the encoder is already running, this command does nothing. No - flags are defined for this command. + * - ``V4L2_ENC_CMD_START`` + - 0 + - Start the encoder. When the encoder is already running or paused, + this command does nothing. No flags are defined for this command. + * - ``V4L2_ENC_CMD_STOP`` + - 1 + - Stop the encoder. When the ``V4L2_ENC_CMD_STOP_AT_GOP_END`` flag + is set, encoding will continue until the end of the current *Group + Of Pictures*, otherwise encoding will stop immediately. When the + encoder is already stopped, this command does nothing. mem2mem + encoders will send a ``V4L2_EVENT_EOS`` event when the last frame + has been encoded and all frames are ready to be dequeued and will + set the ``V4L2_BUF_FLAG_LAST`` buffer flag on the last buffer of + the capture queue to indicate there will be no new buffers + produced to dequeue. This buffer may be empty, indicated by the + driver setting the ``bytesused`` field to 0. Once the + ``V4L2_BUF_FLAG_LAST`` flag was set, the + :ref:`VIDIOC_DQBUF ` ioctl will not block anymore, + but return an ``EPIPE`` error code. + * - ``V4L2_ENC_CMD_PAUSE`` + - 2 + - Pause the encoder. When the encoder has not been started yet, the + driver will return an ``EPERM`` error code. When the encoder is + already paused, this command does nothing. No flags are defined + for this command. + * - ``V4L2_ENC_CMD_RESUME`` + - 3 + - Resume encoding after a PAUSE command. When the encoder has not + been started yet, the driver will return an ``EPERM`` error code. When + the encoder is already running, this command does nothing. No + flags are defined for this command. .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -175,15 +140,10 @@ introduced in Linux 2.6.21. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_ENC_CMD_STOP_AT_GOP_END`` - - - 0x0001 - - - Stop encoding at the end of the current *Group Of Pictures*, - rather than immediately. + * - ``V4L2_ENC_CMD_STOP_AT_GOP_END`` + - 0x0001 + - Stop encoding at the end of the current *Group Of Pictures*, + rather than immediately. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst b/Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst index dfe4d737b0aa..3e9d0f69cc73 100644 --- a/Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst +++ b/Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst @@ -74,41 +74,21 @@ return an ``EINVAL`` error code. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - Number of the DV timings, set by the application. - - - .. row 2 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. This field is - only used when operating on a subdevice node. When operating on a - video node applications must set this field to zero. - - - .. row 3 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. - - - .. row 4 - - - struct :c:type:`v4l2_dv_timings` - - - ``timings`` - - - The timings. + * - __u32 + - ``index`` + - Number of the DV timings, set by the application. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. This field is + only used when operating on a subdevice node. When operating on a + video node applications must set this field to zero. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. Drivers and applications must set + the array to zero. + * - struct :c:type:`v4l2_dv_timings` + - ``timings`` + - The timings. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst b/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst index 91fbc4ba209c..a2adaa4bd4dd 100644 --- a/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst +++ b/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst @@ -53,80 +53,48 @@ one until ``EINVAL`` is returned. :stub-columns: 0 :widths: 1 1 2 - - .. row 1 + * - __u32 + - ``index`` + - Number of the format in the enumeration, set by the application. + This is in no way related to the ``pixelformat`` field. + * - __u32 + - ``type`` + - Type of the data stream, set by the application. Only these types + are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, + ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``, + ``V4L2_BUF_TYPE_VIDEO_OUTPUT``, + ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` and + ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`. + * - __u32 + - ``flags`` + - See :ref:`fmtdesc-flags` + * - __u8 + - ``description``\ [32] + - Description of the format, a NUL-terminated ASCII string. This + information is intended for the user, for example: "YUV 4:2:2". + * - __u32 + - ``pixelformat`` + - The image format identifier. This is a four character code as + computed by the v4l2_fourcc() macro: + * - :cspan:`2` - - __u32 + .. _v4l2-fourcc: - - ``index`` + ``#define v4l2_fourcc(a,b,c,d)`` - - Number of the format in the enumeration, set by the application. - This is in no way related to the ``pixelformat`` field. + ``(((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))`` - - .. row 2 + Several image formats are already defined by this specification in + :ref:`pixfmt`. - - __u32 + .. attention:: - - ``type`` - - - Type of the data stream, set by the application. Only these types - are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``, - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``, - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` and - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`. - - - .. row 3 - - - __u32 - - - ``flags`` - - - See :ref:`fmtdesc-flags` - - - .. row 4 - - - __u8 - - - ``description``\ [32] - - - Description of the format, a NUL-terminated ASCII string. This - information is intended for the user, for example: "YUV 4:2:2". - - - .. row 5 - - - __u32 - - - ``pixelformat`` - - - The image format identifier. This is a four character code as - computed by the v4l2_fourcc() macro: - - - .. row 6 - - - :cspan:`2` - - .. _v4l2-fourcc: - - ``#define v4l2_fourcc(a,b,c,d)`` - - ``(((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))`` - - Several image formats are already defined by this specification in - :ref:`pixfmt`. - - .. attention:: - - These codes are not the same as those used - in the Windows world. - - - .. row 7 - - - __u32 - - - ``reserved``\ [4] - - - Reserved for future extensions. Drivers must set the array to - zero. + These codes are not the same as those used + in the Windows world. + * - __u32 + - ``reserved``\ [4] + - Reserved for future extensions. Drivers must set the array to + zero. @@ -139,24 +107,14 @@ one until ``EINVAL`` is returned. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_FMT_FLAG_COMPRESSED`` - - - 0x0001 - - - This is a compressed format. - - - .. row 2 - - - ``V4L2_FMT_FLAG_EMULATED`` - - - 0x0002 - - - This format is not native to the device but emulated through - software (usually libv4l2), where possible try to use a native - format instead for better performance. + * - ``V4L2_FMT_FLAG_COMPRESSED`` + - 0x0001 + - This is a compressed format. + * - ``V4L2_FMT_FLAG_EMULATED`` + - 0x0002 + - This format is not native to the device but emulated through + software (usually libv4l2), where possible try to use a native + format instead for better performance. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst b/Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst index 83f641f9f231..39492453f02d 100644 --- a/Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst +++ b/Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst @@ -110,30 +110,15 @@ application should zero out all members except for the *IN* fields. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - struct :c:type:`v4l2_fract` - - - ``min`` - - - Minimum frame interval [s]. - - - .. row 2 - - - struct :c:type:`v4l2_fract` - - - ``max`` - - - Maximum frame interval [s]. - - - .. row 3 - - - struct :c:type:`v4l2_fract` - - - ``step`` - - - Frame interval step size [s]. + * - struct :c:type:`v4l2_fract` + - ``min`` + - Minimum frame interval [s]. + * - struct :c:type:`v4l2_fract` + - ``max`` + - Maximum frame interval [s]. + * - struct :c:type:`v4l2_fract` + - ``step`` + - Frame interval step size [s]. @@ -143,87 +128,43 @@ application should zero out all members except for the *IN* fields. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - __u32 - - - ``index`` - - - - - IN: Index of the given frame interval in the enumeration. - - - .. row 2 - - - __u32 - - - ``pixel_format`` - - - - - IN: Pixel format for which the frame intervals are enumerated. - - - .. row 3 - - - __u32 - - - ``width`` - - - - - IN: Frame width for which the frame intervals are enumerated. - - - .. row 4 - - - __u32 - - - ``height`` - - - - - IN: Frame height for which the frame intervals are enumerated. - - - .. row 5 - - - __u32 - - - ``type`` - - - - - OUT: Frame interval type the device supports. - - - .. row 6 - - - union - - - - - - - OUT: Frame interval with the given index. - - - .. row 7 - - - - - struct :c:type:`v4l2_fract` - - - ``discrete`` - - - Frame interval [s]. - - - .. row 8 - - - - - struct :c:type:`v4l2_frmival_stepwise` - - - ``stepwise`` - - - - - - .. row 9 - - - __u32 - - - ``reserved[2]`` - - - - - Reserved space for future use. Must be zeroed by drivers and - applications. + * - __u32 + - ``index`` + - + - IN: Index of the given frame interval in the enumeration. + * - __u32 + - ``pixel_format`` + - + - IN: Pixel format for which the frame intervals are enumerated. + * - __u32 + - ``width`` + - + - IN: Frame width for which the frame intervals are enumerated. + * - __u32 + - ``height`` + - + - IN: Frame height for which the frame intervals are enumerated. + * - __u32 + - ``type`` + - + - OUT: Frame interval type the device supports. + * - union + - + - + - OUT: Frame interval with the given index. + * - + - struct :c:type:`v4l2_fract` + - ``discrete`` + - Frame interval [s]. + * - + - struct :c:type:`v4l2_frmival_stepwise` + - ``stepwise`` + - + * - __u32 + - ``reserved[2]`` + - + - Reserved space for future use. Must be zeroed by drivers and + applications. @@ -240,30 +181,15 @@ Enums :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_FRMIVAL_TYPE_DISCRETE`` - - - 1 - - - Discrete frame interval. - - - .. row 2 - - - ``V4L2_FRMIVAL_TYPE_CONTINUOUS`` - - - 2 - - - Continuous frame interval. - - - .. row 3 - - - ``V4L2_FRMIVAL_TYPE_STEPWISE`` - - - 3 - - - Step-wise defined frame interval. + * - ``V4L2_FRMIVAL_TYPE_DISCRETE`` + - 1 + - Discrete frame interval. + * - ``V4L2_FRMIVAL_TYPE_CONTINUOUS`` + - 2 + - Continuous frame interval. + * - ``V4L2_FRMIVAL_TYPE_STEPWISE`` + - 3 + - Step-wise defined frame interval. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst b/Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst index 9a9571d11f7d..628f1aa66338 100644 --- a/Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst +++ b/Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst @@ -99,22 +99,12 @@ application should zero out all members except for the *IN* fields. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``width`` - - - Width of the frame [pixel]. - - - .. row 2 - - - __u32 - - - ``height`` - - - Height of the frame [pixel]. + * - __u32 + - ``width`` + - Width of the frame [pixel]. + * - __u32 + - ``height`` + - Height of the frame [pixel]. @@ -127,54 +117,24 @@ application should zero out all members except for the *IN* fields. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``min_width`` - - - Minimum frame width [pixel]. - - - .. row 2 - - - __u32 - - - ``max_width`` - - - Maximum frame width [pixel]. - - - .. row 3 - - - __u32 - - - ``step_width`` - - - Frame width step size [pixel]. - - - .. row 4 - - - __u32 - - - ``min_height`` - - - Minimum frame height [pixel]. - - - .. row 5 - - - __u32 - - - ``max_height`` - - - Maximum frame height [pixel]. - - - .. row 6 - - - __u32 - - - ``step_height`` - - - Frame height step size [pixel]. + * - __u32 + - ``min_width`` + - Minimum frame width [pixel]. + * - __u32 + - ``max_width`` + - Maximum frame width [pixel]. + * - __u32 + - ``step_width`` + - Frame width step size [pixel]. + * - __u32 + - ``min_height`` + - Minimum frame height [pixel]. + * - __u32 + - ``max_height`` + - Maximum frame height [pixel]. + * - __u32 + - ``step_height`` + - Frame height step size [pixel]. @@ -184,69 +144,35 @@ application should zero out all members except for the *IN* fields. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - __u32 - - - ``index`` - - - - - IN: Index of the given frame size in the enumeration. - - - .. row 2 - - - __u32 - - - ``pixel_format`` - - - - - IN: Pixel format for which the frame sizes are enumerated. - - - .. row 3 - - - __u32 - - - ``type`` - - - - - OUT: Frame size type the device supports. - - - .. row 4 - - - union - - - - - - - OUT: Frame size with the given index. - - - .. row 5 - - - - - struct :c:type:`v4l2_frmsize_discrete` - - - ``discrete`` - - - - - - .. row 6 - - - - - struct :c:type:`v4l2_frmsize_stepwise` - - - ``stepwise`` - - - - - - .. row 7 - - - __u32 - - - ``reserved[2]`` - - - - - Reserved space for future use. Must be zeroed by drivers and - applications. + * - __u32 + - ``index`` + - + - IN: Index of the given frame size in the enumeration. + * - __u32 + - ``pixel_format`` + - + - IN: Pixel format for which the frame sizes are enumerated. + * - __u32 + - ``type`` + - + - OUT: Frame size type the device supports. + * - union + - + - + - OUT: Frame size with the given index. + * - + - struct :c:type:`v4l2_frmsize_discrete` + - ``discrete`` + - + * - + - struct :c:type:`v4l2_frmsize_stepwise` + - ``stepwise`` + - + * - __u32 + - ``reserved[2]`` + - + - Reserved space for future use. Must be zeroed by drivers and + applications. @@ -263,30 +189,15 @@ Enums :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_FRMSIZE_TYPE_DISCRETE`` - - - 1 - - - Discrete frame size. - - - .. row 2 - - - ``V4L2_FRMSIZE_TYPE_CONTINUOUS`` - - - 2 - - - Continuous frame size. - - - .. row 3 - - - ``V4L2_FRMSIZE_TYPE_STEPWISE`` - - - 3 - - - Step-wise defined frame size. + * - ``V4L2_FRMSIZE_TYPE_DISCRETE`` + - 1 + - Discrete frame size. + * - ``V4L2_FRMSIZE_TYPE_CONTINUOUS`` + - 2 + - Continuous frame size. + * - ``V4L2_FRMSIZE_TYPE_STEPWISE`` + - 3 + - Step-wise defined frame size. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst b/Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst index cc27ad4e2fa7..4e5f5e5bf632 100644 --- a/Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst +++ b/Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst @@ -50,103 +50,63 @@ of the corresponding tuner/modulator is set. :stub-columns: 0 :widths: 1 1 2 1 1 + * - __u32 + - ``tuner`` + - The tuner or modulator index number. This is the same value as in + the struct :c:type:`v4l2_input` ``tuner`` field and + the struct :c:type:`v4l2_tuner` ``index`` field, or + the struct :c:type:`v4l2_output` ``modulator`` field + and the struct :c:type:`v4l2_modulator` ``index`` + field. + * - __u32 + - ``type`` + - The tuner type. This is the same value as in the struct + :c:type:`v4l2_tuner` ``type`` field. The type must be + set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and + to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to + ``V4L2_TUNER_RADIO`` for modulators (currently only radio + modulators are supported). See :c:type:`v4l2_tuner_type` + * - __u32 + - ``index`` + - Identifies the frequency band, set by the application. + * - __u32 + - ``capability`` + - :cspan:`2` The tuner/modulator capability flags for this + frequency band, see :ref:`tuner-capability`. The + ``V4L2_TUNER_CAP_LOW`` or ``V4L2_TUNER_CAP_1HZ`` capability must + be the same for all frequency bands of the selected + tuner/modulator. So either all bands have that capability set, or + none of them have that capability. + * - __u32 + - ``rangelow`` + - :cspan:`2` The lowest tunable frequency in units of 62.5 kHz, or + if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units + of 62.5 Hz, for this frequency band. A 1 Hz unit is used when the + ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. + * - __u32 + - ``rangehigh`` + - :cspan:`2` The highest tunable frequency in units of 62.5 kHz, + or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in + units of 62.5 Hz, for this frequency band. A 1 Hz unit is used + when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. + * - __u32 + - ``modulation`` + - :cspan:`2` The supported modulation systems of this frequency + band. See :ref:`band-modulation`. - - .. row 1 + .. note:: - - __u32 + Currently only one modulation system per frequency band + is supported. More work will need to be done if multiple + modulation systems are possible. Contact the linux-media + mailing list + (`https://linuxtv.org/lists.php `__) + if you need such functionality. + * - __u32 + - ``reserved``\ [9] + - Reserved for future extensions. - - ``tuner`` - - - The tuner or modulator index number. This is the same value as in - the struct :c:type:`v4l2_input` ``tuner`` field and - the struct :c:type:`v4l2_tuner` ``index`` field, or - the struct :c:type:`v4l2_output` ``modulator`` field - and the struct :c:type:`v4l2_modulator` ``index`` - field. - - - .. row 2 - - - __u32 - - - ``type`` - - - The tuner type. This is the same value as in the struct - :c:type:`v4l2_tuner` ``type`` field. The type must be - set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and - to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to - ``V4L2_TUNER_RADIO`` for modulators (currently only radio - modulators are supported). See :c:type:`v4l2_tuner_type` - - - .. row 3 - - - __u32 - - - ``index`` - - - Identifies the frequency band, set by the application. - - - .. row 4 - - - __u32 - - - ``capability`` - - - :cspan:`2` The tuner/modulator capability flags for this - frequency band, see :ref:`tuner-capability`. The - ``V4L2_TUNER_CAP_LOW`` or ``V4L2_TUNER_CAP_1HZ`` capability must - be the same for all frequency bands of the selected - tuner/modulator. So either all bands have that capability set, or - none of them have that capability. - - - .. row 5 - - - __u32 - - - ``rangelow`` - - - :cspan:`2` The lowest tunable frequency in units of 62.5 kHz, or - if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units - of 62.5 Hz, for this frequency band. A 1 Hz unit is used when the - ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. - - - .. row 6 - - - __u32 - - - ``rangehigh`` - - - :cspan:`2` The highest tunable frequency in units of 62.5 kHz, - or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in - units of 62.5 Hz, for this frequency band. A 1 Hz unit is used - when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. - - - .. row 7 - - - __u32 - - - ``modulation`` - - - :cspan:`2` The supported modulation systems of this frequency - band. See :ref:`band-modulation`. - - .. note:: - - Currently only one modulation system per frequency band - is supported. More work will need to be done if multiple - modulation systems are possible. Contact the linux-media - mailing list - (`https://linuxtv.org/lists.php `__) - if you need such functionality. - - - .. row 8 - - - __u32 - - - ``reserved``\ [9] - - - Reserved for future extensions. - - Applications and drivers must set the array to zero. + Applications and drivers must set the array to zero. @@ -159,30 +119,15 @@ of the corresponding tuner/modulator is set. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_BAND_MODULATION_VSB`` - - - 0x02 - - - Vestigial Sideband modulation, used for analog TV. - - - .. row 2 - - - ``V4L2_BAND_MODULATION_FM`` - - - 0x04 - - - Frequency Modulation, commonly used for analog radio. - - - .. row 3 - - - ``V4L2_BAND_MODULATION_AM`` - - - 0x08 - - - Amplitude Modulation, commonly used for analog radio. + * - ``V4L2_BAND_MODULATION_VSB`` + - 0x02 + - Vestigial Sideband modulation, used for analog TV. + * - ``V4L2_BAND_MODULATION_FM`` + - 0x04 + - Frequency Modulation, commonly used for analog radio. + * - ``V4L2_BAND_MODULATION_AM`` + - 0x08 + - Amplitude Modulation, commonly used for analog radio. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enuminput.rst b/Documentation/media/uapi/v4l/vidioc-enuminput.rst index c38bde400dc1..17aaaf939757 100644 --- a/Documentation/media/uapi/v4l/vidioc-enuminput.rst +++ b/Documentation/media/uapi/v4l/vidioc-enuminput.rst @@ -48,103 +48,58 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``index`` + - Identifies the input, set by the application. + * - __u8 + - ``name``\ [32] + - Name of the video input, a NUL-terminated ASCII string, for + example: "Vin (Composite 2)". This information is intended for the + user, preferably the connector label on the device itself. + * - __u32 + - ``type`` + - Type of the input, see :ref:`input-type`. + * - __u32 + - ``audioset`` + - Drivers can enumerate up to 32 video and audio inputs. This field + shows which audio inputs were selectable as audio source if this + was the currently selected video input. It is a bit mask. The LSB + corresponds to audio input 0, the MSB to input 31. Any number of + bits can be set, or none. - - .. row 1 + When the driver does not enumerate audio inputs no bits must be + set. Applications shall not interpret this as lack of audio + support. Some drivers automatically select audio sources and do + not enumerate them since there is no choice anyway. - - __u32 - - - ``index`` - - - Identifies the input, set by the application. - - - .. row 2 - - - __u8 - - - ``name``\ [32] - - - Name of the video input, a NUL-terminated ASCII string, for - example: "Vin (Composite 2)". This information is intended for the - user, preferably the connector label on the device itself. - - - .. row 3 - - - __u32 - - - ``type`` - - - Type of the input, see :ref:`input-type`. - - - .. row 4 - - - __u32 - - - ``audioset`` - - - Drivers can enumerate up to 32 video and audio inputs. This field - shows which audio inputs were selectable as audio source if this - was the currently selected video input. It is a bit mask. The LSB - corresponds to audio input 0, the MSB to input 31. Any number of - bits can be set, or none. - - When the driver does not enumerate audio inputs no bits must be - set. Applications shall not interpret this as lack of audio - support. Some drivers automatically select audio sources and do - not enumerate them since there is no choice anyway. - - For details on audio inputs and how to select the current input - see :ref:`audio`. - - - .. row 5 - - - __u32 - - - ``tuner`` - - - Capture devices can have zero or more tuners (RF demodulators). - When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an - RF connector and this field identifies the tuner. It corresponds - to struct :c:type:`v4l2_tuner` field ``index``. For - details on tuners see :ref:`tuner`. - - - .. row 6 - - - :ref:`v4l2_std_id ` - - - ``std`` - - - Every video input supports one or more different video standards. - This field is a set of all supported standards. For details on - video standards and how to switch see :ref:`standard`. - - - .. row 7 - - - __u32 - - - ``status`` - - - This field provides status information about the input. See - :ref:`input-status` for flags. With the exception of the sensor - orientation bits ``status`` is only valid when this is the current - input. - - - .. row 8 - - - __u32 - - - ``capabilities`` - - - This field provides capabilities for the input. See - :ref:`input-capabilities` for flags. - - - .. row 9 - - - __u32 - - - ``reserved``\ [3] - - - Reserved for future extensions. Drivers must set the array to - zero. + For details on audio inputs and how to select the current input + see :ref:`audio`. + * - __u32 + - ``tuner`` + - Capture devices can have zero or more tuners (RF demodulators). + When the ``type`` is set to ``V4L2_INPUT_TYPE_TUNER`` this is an + RF connector and this field identifies the tuner. It corresponds + to struct :c:type:`v4l2_tuner` field ``index``. For + details on tuners see :ref:`tuner`. + * - :ref:`v4l2_std_id ` + - ``std`` + - Every video input supports one or more different video standards. + This field is a set of all supported standards. For details on + video standards and how to switch see :ref:`standard`. + * - __u32 + - ``status`` + - This field provides status information about the input. See + :ref:`input-status` for flags. With the exception of the sensor + orientation bits ``status`` is only valid when this is the current + input. + * - __u32 + - ``capabilities`` + - This field provides capabilities for the input. See + :ref:`input-capabilities` for flags. + * - __u32 + - ``reserved``\ [3] + - Reserved for future extensions. Drivers must set the array to + zero. @@ -157,31 +112,16 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_INPUT_TYPE_TUNER`` - - - 1 - - - This input uses a tuner (RF demodulator). - - - .. row 2 - - - ``V4L2_INPUT_TYPE_CAMERA`` - - - 2 - - - Analog baseband input, for example CVBS / Composite Video, - S-Video, RGB. - - - .. row 3 - - - ``V4L2_INPUT_TYPE_TOUCH`` - - - 3 - - - This input is a touch device for capturing raw touch data. + * - ``V4L2_INPUT_TYPE_TUNER`` + - 1 + - This input uses a tuner (RF demodulator). + * - ``V4L2_INPUT_TYPE_CAMERA`` + - 2 + - Analog baseband input, for example CVBS / Composite Video, + S-Video, RGB. + * - ``V4L2_INPUT_TYPE_TOUCH`` + - 3 + - This input is a touch device for capturing raw touch data. @@ -193,157 +133,67 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - :cspan:`2` General - - - .. row 2 - - - ``V4L2_IN_ST_NO_POWER`` - - - 0x00000001 - - - Attached device is off. - - - .. row 3 - - - ``V4L2_IN_ST_NO_SIGNAL`` - - - 0x00000002 - - - - - - .. row 4 - - - ``V4L2_IN_ST_NO_COLOR`` - - - 0x00000004 - - - The hardware supports color decoding, but does not detect color - modulation in the signal. - - - .. row 5 - - - :cspan:`2` Sensor Orientation - - - .. row 6 - - - ``V4L2_IN_ST_HFLIP`` - - - 0x00000010 - - - The input is connected to a device that produces a signal that is - flipped horizontally and does not correct this before passing the - signal to userspace. - - - .. row 7 - - - ``V4L2_IN_ST_VFLIP`` - - - 0x00000020 - - - The input is connected to a device that produces a signal that is - flipped vertically and does not correct this before passing the - signal to userspace. - .. note:: A 180 degree rotation is the same as HFLIP | VFLIP - - - .. row 8 - - - :cspan:`2` Analog Video - - - .. row 9 - - - ``V4L2_IN_ST_NO_H_LOCK`` - - - 0x00000100 - - - No horizontal sync lock. - - - .. row 10 - - - ``V4L2_IN_ST_COLOR_KILL`` - - - 0x00000200 - - - A color killer circuit automatically disables color decoding when - it detects no color modulation. When this flag is set the color - killer is enabled *and* has shut off color decoding. - - - .. row 11 - - - ``V4L2_IN_ST_NO_V_LOCK`` - - - 0x00000400 - - - No vertical sync lock. - - - .. row 12 - - - ``V4L2_IN_ST_NO_STD_LOCK`` - - - 0x00000800 - - - No standard format lock in case of auto-detection format - by the component. - - - .. row 13 - - - :cspan:`2` Digital Video - - - .. row 14 - - - ``V4L2_IN_ST_NO_SYNC`` - - - 0x00010000 - - - No synchronization lock. - - - .. row 15 - - - ``V4L2_IN_ST_NO_EQU`` - - - 0x00020000 - - - No equalizer lock. - - - .. row 16 - - - ``V4L2_IN_ST_NO_CARRIER`` - - - 0x00040000 - - - Carrier recovery failed. - - - .. row 17 - - - :cspan:`2` VCR and Set-Top Box - - - .. row 18 - - - ``V4L2_IN_ST_MACROVISION`` - - - 0x01000000 - - - Macrovision is an analog copy prevention system mangling the video - signal to confuse video recorders. When this flag is set - Macrovision has been detected. - - - .. row 19 - - - ``V4L2_IN_ST_NO_ACCESS`` - - - 0x02000000 - - - Conditional access denied. - - - .. row 20 - - - ``V4L2_IN_ST_VTR`` - - - 0x04000000 - - - VTR time constant. [?] + * - :cspan:`2` General + * - ``V4L2_IN_ST_NO_POWER`` + - 0x00000001 + - Attached device is off. + * - ``V4L2_IN_ST_NO_SIGNAL`` + - 0x00000002 + - + * - ``V4L2_IN_ST_NO_COLOR`` + - 0x00000004 + - The hardware supports color decoding, but does not detect color + modulation in the signal. + * - :cspan:`2` Sensor Orientation + * - ``V4L2_IN_ST_HFLIP`` + - 0x00000010 + - The input is connected to a device that produces a signal that is + flipped horizontally and does not correct this before passing the + signal to userspace. + * - ``V4L2_IN_ST_VFLIP`` + - 0x00000020 + - The input is connected to a device that produces a signal that is + flipped vertically and does not correct this before passing the + signal to userspace. + .. note:: A 180 degree rotation is the same as HFLIP | VFLIP + * - :cspan:`2` Analog Video + * - ``V4L2_IN_ST_NO_H_LOCK`` + - 0x00000100 + - No horizontal sync lock. + * - ``V4L2_IN_ST_COLOR_KILL`` + - 0x00000200 + - A color killer circuit automatically disables color decoding when + it detects no color modulation. When this flag is set the color + killer is enabled *and* has shut off color decoding. + * - ``V4L2_IN_ST_NO_V_LOCK`` + - 0x00000400 + - No vertical sync lock. + * - ``V4L2_IN_ST_NO_STD_LOCK`` + - 0x00000800 + - No standard format lock in case of auto-detection format + by the component. + * - :cspan:`2` Digital Video + * - ``V4L2_IN_ST_NO_SYNC`` + - 0x00010000 + - No synchronization lock. + * - ``V4L2_IN_ST_NO_EQU`` + - 0x00020000 + - No equalizer lock. + * - ``V4L2_IN_ST_NO_CARRIER`` + - 0x00040000 + - Carrier recovery failed. + * - :cspan:`2` VCR and Set-Top Box + * - ``V4L2_IN_ST_MACROVISION`` + - 0x01000000 + - Macrovision is an analog copy prevention system mangling the video + signal to confuse video recorders. When this flag is set + Macrovision has been detected. + * - ``V4L2_IN_ST_NO_ACCESS`` + - 0x02000000 + - Conditional access denied. + * - ``V4L2_IN_ST_VTR`` + - 0x04000000 + - VTR time constant. [?] @@ -356,34 +206,19 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_IN_CAP_DV_TIMINGS`` - - - 0x00000002 - - - This input supports setting video timings by using - VIDIOC_S_DV_TIMINGS. - - - .. row 2 - - - ``V4L2_IN_CAP_STD`` - - - 0x00000004 - - - This input supports setting the TV standard by using - VIDIOC_S_STD. - - - .. row 3 - - - ``V4L2_IN_CAP_NATIVE_SIZE`` - - - 0x00000008 - - - This input supports setting the native size using the - ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see - :ref:`v4l2-selections-common`. + * - ``V4L2_IN_CAP_DV_TIMINGS`` + - 0x00000002 + - This input supports setting video timings by using + VIDIOC_S_DV_TIMINGS. + * - ``V4L2_IN_CAP_STD`` + - 0x00000004 + - This input supports setting the TV standard by using + VIDIOC_S_STD. + * - ``V4L2_IN_CAP_NATIVE_SIZE`` + - 0x00000008 + - This input supports setting the native size using the + ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see + :ref:`v4l2-selections-common`. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enumoutput.rst b/Documentation/media/uapi/v4l/vidioc-enumoutput.rst index 763066ab99b6..d7dd2742475a 100644 --- a/Documentation/media/uapi/v4l/vidioc-enumoutput.rst +++ b/Documentation/media/uapi/v4l/vidioc-enumoutput.rst @@ -49,92 +49,52 @@ EINVAL. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``index`` + - Identifies the output, set by the application. + * - __u8 + - ``name``\ [32] + - Name of the video output, a NUL-terminated ASCII string, for + example: "Vout". This information is intended for the user, + preferably the connector label on the device itself. + * - __u32 + - ``type`` + - Type of the output, see :ref:`output-type`. + * - __u32 + - ``audioset`` + - Drivers can enumerate up to 32 video and audio outputs. This field + shows which audio outputs were selectable as the current output if + this was the currently selected video output. It is a bit mask. + The LSB corresponds to audio output 0, the MSB to output 31. Any + number of bits can be set, or none. - - .. row 1 + When the driver does not enumerate audio outputs no bits must be + set. Applications shall not interpret this as lack of audio + support. Drivers may automatically select audio outputs without + enumerating them. - - __u32 - - - ``index`` - - - Identifies the output, set by the application. - - - .. row 2 - - - __u8 - - - ``name``\ [32] - - - Name of the video output, a NUL-terminated ASCII string, for - example: "Vout". This information is intended for the user, - preferably the connector label on the device itself. - - - .. row 3 - - - __u32 - - - ``type`` - - - Type of the output, see :ref:`output-type`. - - - .. row 4 - - - __u32 - - - ``audioset`` - - - Drivers can enumerate up to 32 video and audio outputs. This field - shows which audio outputs were selectable as the current output if - this was the currently selected video output. It is a bit mask. - The LSB corresponds to audio output 0, the MSB to output 31. Any - number of bits can be set, or none. - - When the driver does not enumerate audio outputs no bits must be - set. Applications shall not interpret this as lack of audio - support. Drivers may automatically select audio outputs without - enumerating them. - - For details on audio outputs and how to select the current output - see :ref:`audio`. - - - .. row 5 - - - __u32 - - - ``modulator`` - - - Output devices can have zero or more RF modulators. When the - ``type`` is ``V4L2_OUTPUT_TYPE_MODULATOR`` this is an RF connector - and this field identifies the modulator. It corresponds to struct - :c:type:`v4l2_modulator` field ``index``. For - details on modulators see :ref:`tuner`. - - - .. row 6 - - - :ref:`v4l2_std_id ` - - - ``std`` - - - Every video output supports one or more different video standards. - This field is a set of all supported standards. For details on - video standards and how to switch see :ref:`standard`. - - - .. row 7 - - - __u32 - - - ``capabilities`` - - - This field provides capabilities for the output. See - :ref:`output-capabilities` for flags. - - - .. row 8 - - - __u32 - - - ``reserved``\ [3] - - - Reserved for future extensions. Drivers must set the array to - zero. + For details on audio outputs and how to select the current output + see :ref:`audio`. + * - __u32 + - ``modulator`` + - Output devices can have zero or more RF modulators. When the + ``type`` is ``V4L2_OUTPUT_TYPE_MODULATOR`` this is an RF connector + and this field identifies the modulator. It corresponds to struct + :c:type:`v4l2_modulator` field ``index``. For + details on modulators see :ref:`tuner`. + * - :ref:`v4l2_std_id ` + - ``std`` + - Every video output supports one or more different video standards. + This field is a set of all supported standards. For details on + video standards and how to switch see :ref:`standard`. + * - __u32 + - ``capabilities`` + - This field provides capabilities for the output. See + :ref:`output-capabilities` for flags. + * - __u32 + - ``reserved``\ [3] + - Reserved for future extensions. Drivers must set the array to + zero. @@ -147,31 +107,16 @@ EINVAL. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_OUTPUT_TYPE_MODULATOR`` - - - 1 - - - This output is an analog TV modulator. - - - .. row 2 - - - ``V4L2_OUTPUT_TYPE_ANALOG`` - - - 2 - - - Analog baseband output, for example Composite / CVBS, S-Video, - RGB. - - - .. row 3 - - - ``V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY`` - - - 3 - - - [?] + * - ``V4L2_OUTPUT_TYPE_MODULATOR`` + - 1 + - This output is an analog TV modulator. + * - ``V4L2_OUTPUT_TYPE_ANALOG`` + - 2 + - Analog baseband output, for example Composite / CVBS, S-Video, + RGB. + * - ``V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY`` + - 3 + - [?] @@ -184,34 +129,19 @@ EINVAL. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_OUT_CAP_DV_TIMINGS`` - - - 0x00000002 - - - This output supports setting video timings by using - VIDIOC_S_DV_TIMINGS. - - - .. row 2 - - - ``V4L2_OUT_CAP_STD`` - - - 0x00000004 - - - This output supports setting the TV standard by using - VIDIOC_S_STD. - - - .. row 3 - - - ``V4L2_OUT_CAP_NATIVE_SIZE`` - - - 0x00000008 - - - This output supports setting the native size using the - ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see - :ref:`v4l2-selections-common`. + * - ``V4L2_OUT_CAP_DV_TIMINGS`` + - 0x00000002 + - This output supports setting video timings by using + VIDIOC_S_DV_TIMINGS. + * - ``V4L2_OUT_CAP_STD`` + - 0x00000004 + - This output supports setting the TV standard by using + VIDIOC_S_STD. + * - ``V4L2_OUT_CAP_NATIVE_SIZE`` + - 0x00000008 + - This output supports setting the native size using the + ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see + :ref:`v4l2-selections-common`. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-enumstd.rst b/Documentation/media/uapi/v4l/vidioc-enumstd.rst index 7a882cd8f944..f2bdd45cfa0d 100644 --- a/Documentation/media/uapi/v4l/vidioc-enumstd.rst +++ b/Documentation/media/uapi/v4l/vidioc-enumstd.rst @@ -51,64 +51,34 @@ or output. [#f1]_ :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - Number of the video standard, set by the application. - - - .. row 2 - - - :ref:`v4l2_std_id ` - - - ``id`` - - - The bits in this field identify the standard as one of the common - standards listed in :ref:`v4l2-std-id`, or if bits 32 to 63 are - set as custom standards. Multiple bits can be set if the hardware - does not distinguish between these standards, however separate - indices do not indicate the opposite. The ``id`` must be unique. - No other enumerated struct :c:type:`v4l2_standard` structure, - for this input or output anyway, can contain the same set of bits. - - - .. row 3 - - - __u8 - - - ``name``\ [24] - - - Name of the standard, a NUL-terminated ASCII string, for example: - "PAL-B/G", "NTSC Japan". This information is intended for the - user. - - - .. row 4 - - - struct :c:type:`v4l2_fract` - - - ``frameperiod`` - - - The frame period (not field period) is numerator / denominator. - For example M/NTSC has a frame period of 1001 / 30000 seconds. - - - .. row 5 - - - __u32 - - - ``framelines`` - - - Total lines per frame including blanking, e. g. 625 for B/PAL. - - - .. row 6 - - - __u32 - - - ``reserved``\ [4] - - - Reserved for future extensions. Drivers must set the array to - zero. + * - __u32 + - ``index`` + - Number of the video standard, set by the application. + * - :ref:`v4l2_std_id ` + - ``id`` + - The bits in this field identify the standard as one of the common + standards listed in :ref:`v4l2-std-id`, or if bits 32 to 63 are + set as custom standards. Multiple bits can be set if the hardware + does not distinguish between these standards, however separate + indices do not indicate the opposite. The ``id`` must be unique. + No other enumerated struct :c:type:`v4l2_standard` structure, + for this input or output anyway, can contain the same set of bits. + * - __u8 + - ``name``\ [24] + - Name of the standard, a NUL-terminated ASCII string, for example: + "PAL-B/G", "NTSC Japan". This information is intended for the + user. + * - struct :c:type:`v4l2_fract` + - ``frameperiod`` + - The frame period (not field period) is numerator / denominator. + For example M/NTSC has a frame period of 1001 / 30000 seconds. + * - __u32 + - ``framelines`` + - Total lines per frame including blanking, e. g. 625 for B/PAL. + * - __u32 + - ``reserved``\ [4] + - Reserved for future extensions. Drivers must set the array to + zero. @@ -121,22 +91,12 @@ or output. [#f1]_ :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``numerator`` - - - - - - .. row 2 - - - __u32 - - - ``denominator`` - - - + * - __u32 + - ``numerator`` + - + * - __u32 + - ``denominator`` + - .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| @@ -148,17 +108,12 @@ or output. [#f1]_ :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u64 - - - ``v4l2_std_id`` - - - This type is a set, each bit representing another video standard - as listed below and in :ref:`video-standards`. The 32 most - significant bits are reserved for custom (driver defined) video - standards. + * - __u64 + - ``v4l2_std_id`` + - This type is a set, each bit representing another video standard + as listed below and in :ref:`video-standards`. The 32 most + significant bits are reserved for custom (driver defined) video + standards. @@ -282,120 +237,59 @@ support digital TV. See also the Linux DVB API at :header-rows: 1 :stub-columns: 0 + * - Characteristics + - M/NTSC [#f2]_ + - M/PAL + - N/PAL [#f3]_ + - B, B1, G/PAL + - D, D1, K/PAL + - H/PAL + - I/PAL + - B, G/SECAM + - D, K/SECAM + - K1/SECAM + - L/SECAM + * - Frame lines + - :cspan:`1` 525 + - :cspan:`8` 625 + * - Frame period (s) + - :cspan:`1` 1001/30000 + - :cspan:`8` 1/25 + * - Chrominance sub-carrier frequency (Hz) + - 3579545 ± 10 + - 3579611.49 ± 10 + - 4433618.75 ± 5 - - .. row 1 + (3582056.25 ± 5) + - :cspan:`3` 4433618.75 ± 5 + - 4433618.75 ± 1 + - :cspan:`2` f\ :sub:`OR` = 4406250 ± 2000, - - Characteristics - - - M/NTSC [#f2]_ - - - M/PAL - - - N/PAL [#f3]_ - - - B, B1, G/PAL - - - D, D1, K/PAL - - - H/PAL - - - I/PAL - - - B, G/SECAM - - - D, K/SECAM - - - K1/SECAM - - - L/SECAM - - - .. row 2 - - - Frame lines - - - :cspan:`1` 525 - - - :cspan:`8` 625 - - - .. row 3 - - - Frame period (s) - - - :cspan:`1` 1001/30000 - - - :cspan:`8` 1/25 - - - .. row 4 - - - Chrominance sub-carrier frequency (Hz) - - - 3579545 ± 10 - - - 3579611.49 ± 10 - - - 4433618.75 ± 5 - - (3582056.25 ± 5) - - - :cspan:`3` 4433618.75 ± 5 - - - 4433618.75 ± 1 - - - :cspan:`2` f\ :sub:`OR` = 4406250 ± 2000, - - f\ :sub:`OB` = 4250000 ± 2000 - - - .. row 5 - - - Nominal radio-frequency channel bandwidth (MHz) - - - 6 - - - 6 - - - 6 - - - B: 7; B1, G: 8 - - - 8 - - - 8 - - - 8 - - - 8 - - - 8 - - - 8 - - - 8 - - - .. row 6 - - - Sound carrier relative to vision carrier (MHz) - - - 4.5 - - - 4.5 - - - 4.5 - - - 5.5 ± 0.001 [#f4]_ [#f5]_ [#f6]_ [#f7]_ - - - 6.5 ± 0.001 - - - 5.5 - - - 5.9996 ± 0.0005 - - - 5.5 ± 0.001 - - - 6.5 ± 0.001 - - - 6.5 - - - 6.5 [#f8]_ + f\ :sub:`OB` = 4250000 ± 2000 + * - Nominal radio-frequency channel bandwidth (MHz) + - 6 + - 6 + - 6 + - B: 7; B1, G: 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + - 8 + * - Sound carrier relative to vision carrier (MHz) + - 4.5 + - 4.5 + - 4.5 + - 5.5 ± 0.001 [#f4]_ [#f5]_ [#f6]_ [#f7]_ + - 6.5 ± 0.001 + - 5.5 + - 5.9996 ± 0.0005 + - 5.5 ± 0.001 + - 6.5 ± 0.001 + - 6.5 + - 6.5 [#f8]_ .. raw:: latex diff --git a/Documentation/media/uapi/v4l/vidioc-expbuf.rst b/Documentation/media/uapi/v4l/vidioc-expbuf.rst index 2ae2f5483351..246e48028d40 100644 --- a/Documentation/media/uapi/v4l/vidioc-expbuf.rst +++ b/Documentation/media/uapi/v4l/vidioc-expbuf.rst @@ -123,66 +123,36 @@ Examples :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - Type of the buffer, same as struct - :c:type:`v4l2_format` ``type`` or struct - :c:type:`v4l2_requestbuffers` ``type``, set - by the application. See :c:type:`v4l2_buf_type` - - - .. row 2 - - - __u32 - - - ``index`` - - - Number of the buffer, set by the application. This field is only - used for :ref:`memory mapping ` I/O and can range from - zero to the number of buffers allocated with the - :ref:`VIDIOC_REQBUFS` and/or - :ref:`VIDIOC_CREATE_BUFS` ioctls. - - - .. row 3 - - - __u32 - - - ``plane`` - - - Index of the plane to be exported when using the multi-planar API. - Otherwise this value must be set to zero. - - - .. row 4 - - - __u32 - - - ``flags`` - - - Flags for the newly created file, currently only ``O_CLOEXEC``, - ``O_RDONLY``, ``O_WRONLY``, and ``O_RDWR`` are supported, refer to - the manual of open() for more details. - - - .. row 5 - - - __s32 - - - ``fd`` - - - The DMABUF file descriptor associated with a buffer. Set by the - driver. - - - .. row 6 - - - __u32 - - - ``reserved[11]`` - - - Reserved field for future use. Drivers and applications must set - the array to zero. + * - __u32 + - ``type`` + - Type of the buffer, same as struct + :c:type:`v4l2_format` ``type`` or struct + :c:type:`v4l2_requestbuffers` ``type``, set + by the application. See :c:type:`v4l2_buf_type` + * - __u32 + - ``index`` + - Number of the buffer, set by the application. This field is only + used for :ref:`memory mapping ` I/O and can range from + zero to the number of buffers allocated with the + :ref:`VIDIOC_REQBUFS` and/or + :ref:`VIDIOC_CREATE_BUFS` ioctls. + * - __u32 + - ``plane`` + - Index of the plane to be exported when using the multi-planar API. + Otherwise this value must be set to zero. + * - __u32 + - ``flags`` + - Flags for the newly created file, currently only ``O_CLOEXEC``, + ``O_RDONLY``, ``O_WRONLY``, and ``O_RDWR`` are supported, refer to + the manual of open() for more details. + * - __s32 + - ``fd`` + - The DMABUF file descriptor associated with a buffer. Set by the + driver. + * - __u32 + - ``reserved[11]`` + - Reserved field for future use. Drivers and applications must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-audio.rst b/Documentation/media/uapi/v4l/vidioc-g-audio.rst index 60520318cb4a..5b67e81a0db6 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-audio.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-audio.rst @@ -58,50 +58,25 @@ return the actual new audio mode. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - Identifies the audio input, set by the driver or application. - - - .. row 2 - - - __u8 - - - ``name``\ [32] - - - Name of the audio input, a NUL-terminated ASCII string, for - example: "Line In". This information is intended for the user, - preferably the connector label on the device itself. - - - .. row 3 - - - __u32 - - - ``capability`` - - - Audio capability flags, see :ref:`audio-capability`. - - - .. row 4 - - - __u32 - - - ``mode`` - - - Audio mode flags set by drivers and applications (on - :ref:`VIDIOC_S_AUDIO ` ioctl), see :ref:`audio-mode`. - - - .. row 5 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + * - __u32 + - ``index`` + - Identifies the audio input, set by the driver or application. + * - __u8 + - ``name``\ [32] + - Name of the audio input, a NUL-terminated ASCII string, for + example: "Line In". This information is intended for the user, + preferably the connector label on the device itself. + * - __u32 + - ``capability`` + - Audio capability flags, see :ref:`audio-capability`. + * - __u32 + - ``mode`` + - Audio mode flags set by drivers and applications (on + :ref:`VIDIOC_S_AUDIO ` ioctl), see :ref:`audio-mode`. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. Drivers and applications must set + the array to zero. @@ -114,25 +89,15 @@ return the actual new audio mode. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_AUDCAP_STEREO`` - - - 0x00001 - - - This is a stereo input. The flag is intended to automatically - disable stereo recording etc. when the signal is always monaural. - The API provides no means to detect if stereo is *received*, - unless the audio input belongs to a tuner. - - - .. row 2 - - - ``V4L2_AUDCAP_AVL`` - - - 0x00002 - - - Automatic Volume Level mode is supported. + * - ``V4L2_AUDCAP_STEREO`` + - 0x00001 + - This is a stereo input. The flag is intended to automatically + disable stereo recording etc. when the signal is always monaural. + The API provides no means to detect if stereo is *received*, + unless the audio input belongs to a tuner. + * - ``V4L2_AUDCAP_AVL`` + - 0x00002 + - Automatic Volume Level mode is supported. @@ -145,14 +110,9 @@ return the actual new audio mode. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_AUDMODE_AVL`` - - - 0x00001 - - - AVL mode is on. + * - ``V4L2_AUDMODE_AVL`` + - 0x00001 + - AVL mode is on. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-audioout.rst b/Documentation/media/uapi/v4l/vidioc-g-audioout.rst index e9d264590788..d16ecbaddc59 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-audioout.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-audioout.rst @@ -65,51 +65,26 @@ as ``VIDIOC_G_AUDOUT`` does. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - Identifies the audio output, set by the driver or application. - - - .. row 2 - - - __u8 - - - ``name``\ [32] - - - Name of the audio output, a NUL-terminated ASCII string, for - example: "Line Out". This information is intended for the user, - preferably the connector label on the device itself. - - - .. row 3 - - - __u32 - - - ``capability`` - - - Audio capability flags, none defined yet. Drivers must set this - field to zero. - - - .. row 4 - - - __u32 - - - ``mode`` - - - Audio mode, none defined yet. Drivers and applications (on - ``VIDIOC_S_AUDOUT``) must set this field to zero. - - - .. row 5 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + * - __u32 + - ``index`` + - Identifies the audio output, set by the driver or application. + * - __u8 + - ``name``\ [32] + - Name of the audio output, a NUL-terminated ASCII string, for + example: "Line Out". This information is intended for the user, + preferably the connector label on the device itself. + * - __u32 + - ``capability`` + - Audio capability flags, none defined yet. Drivers must set this + field to zero. + * - __u32 + - ``mode`` + - Audio mode, none defined yet. Drivers and applications (on + ``VIDIOC_S_AUDOUT``) must set this field to zero. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. Drivers and applications must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-crop.rst b/Documentation/media/uapi/v4l/vidioc-g-crop.rst index 9b24ca591ea4..56a36340f565 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-crop.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-crop.rst @@ -84,26 +84,16 @@ When cropping is not supported then no parameters are changed and :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - Type of the data stream, set by the application. Only these types - are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`. - - - .. row 2 - - - struct :c:type:`v4l2_rect` - - - ``c`` - - - Cropping rectangle. The same co-ordinate system as for struct - :c:type:`v4l2_cropcap` ``bounds`` is used. + * - __u32 + - ``type`` + - Type of the data stream, set by the application. Only these types + are valid here: ``V4L2_BUF_TYPE_VIDEO_CAPTURE``, + ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` and + ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. See :c:type:`v4l2_buf_type`. + * - struct :c:type:`v4l2_rect` + - ``c`` + - Cropping rectangle. The same co-ordinate system as for struct + :c:type:`v4l2_cropcap` ``bounds`` is used. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-ctrl.rst b/Documentation/media/uapi/v4l/vidioc-g-ctrl.rst index 78c191a89360..d8a379182a34 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-ctrl.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-ctrl.rst @@ -64,22 +64,12 @@ These ioctls work only with user controls. For other control classes the :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``id`` - - - Identifies the control, set by the application. - - - .. row 2 - - - __s32 - - - ``value`` - - - New value or current value. + * - __u32 + - ``id`` + - Identifies the control, set by the application. + * - __s32 + - ``value`` + - New value or current value. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst b/Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst index f1afed7a5958..7dd943ff14cd 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst @@ -83,158 +83,73 @@ EBUSY :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``width`` - - - Width of the active video in pixels. - - - .. row 2 - - - __u32 - - - ``height`` - - - Height of the active video frame in lines. So for interlaced - formats the height of the active video in each field is - ``height``/2. - - - .. row 3 - - - __u32 - - - ``interlaced`` - - - Progressive (``V4L2_DV_PROGRESSIVE``) or interlaced (``V4L2_DV_INTERLACED``). - - - .. row 4 - - - __u32 - - - ``polarities`` - - - This is a bit mask that defines polarities of sync signals. bit 0 - (``V4L2_DV_VSYNC_POS_POL``) is for vertical sync polarity and bit - 1 (``V4L2_DV_HSYNC_POS_POL``) is for horizontal sync polarity. If - the bit is set (1) it is positive polarity and if is cleared (0), - it is negative polarity. - - - .. row 5 - - - __u64 - - - ``pixelclock`` - - - Pixel clock in Hz. Ex. 74.25MHz->74250000 - - - .. row 6 - - - __u32 - - - ``hfrontporch`` - - - Horizontal front porch in pixels - - - .. row 7 - - - __u32 - - - ``hsync`` - - - Horizontal sync length in pixels - - - .. row 8 - - - __u32 - - - ``hbackporch`` - - - Horizontal back porch in pixels - - - .. row 9 - - - __u32 - - - ``vfrontporch`` - - - Vertical front porch in lines. For interlaced formats this refers - to the odd field (aka field 1). - - - .. row 10 - - - __u32 - - - ``vsync`` - - - Vertical sync length in lines. For interlaced formats this refers - to the odd field (aka field 1). - - - .. row 11 - - - __u32 - - - ``vbackporch`` - - - Vertical back porch in lines. For interlaced formats this refers - to the odd field (aka field 1). - - - .. row 12 - - - __u32 - - - ``il_vfrontporch`` - - - Vertical front porch in lines for the even field (aka field 2) of - interlaced field formats. Must be 0 for progressive formats. - - - .. row 13 - - - __u32 - - - ``il_vsync`` - - - Vertical sync length in lines for the even field (aka field 2) of - interlaced field formats. Must be 0 for progressive formats. - - - .. row 14 - - - __u32 - - - ``il_vbackporch`` - - - Vertical back porch in lines for the even field (aka field 2) of - interlaced field formats. Must be 0 for progressive formats. - - - .. row 15 - - - __u32 - - - ``standards`` - - - The video standard(s) this format belongs to. This will be filled - in by the driver. Applications must set this to 0. See - :ref:`dv-bt-standards` for a list of standards. - - - .. row 16 - - - __u32 - - - ``flags`` - - - Several flags giving more information about the format. See - :ref:`dv-bt-flags` for a description of the flags. - - - .. row 17 - - - __u32 - - - ``reserved[14]`` - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + * - __u32 + - ``width`` + - Width of the active video in pixels. + * - __u32 + - ``height`` + - Height of the active video frame in lines. So for interlaced + formats the height of the active video in each field is + ``height``/2. + * - __u32 + - ``interlaced`` + - Progressive (``V4L2_DV_PROGRESSIVE``) or interlaced (``V4L2_DV_INTERLACED``). + * - __u32 + - ``polarities`` + - This is a bit mask that defines polarities of sync signals. bit 0 + (``V4L2_DV_VSYNC_POS_POL``) is for vertical sync polarity and bit + 1 (``V4L2_DV_HSYNC_POS_POL``) is for horizontal sync polarity. If + the bit is set (1) it is positive polarity and if is cleared (0), + it is negative polarity. + * - __u64 + - ``pixelclock`` + - Pixel clock in Hz. Ex. 74.25MHz->74250000 + * - __u32 + - ``hfrontporch`` + - Horizontal front porch in pixels + * - __u32 + - ``hsync`` + - Horizontal sync length in pixels + * - __u32 + - ``hbackporch`` + - Horizontal back porch in pixels + * - __u32 + - ``vfrontporch`` + - Vertical front porch in lines. For interlaced formats this refers + to the odd field (aka field 1). + * - __u32 + - ``vsync`` + - Vertical sync length in lines. For interlaced formats this refers + to the odd field (aka field 1). + * - __u32 + - ``vbackporch`` + - Vertical back porch in lines. For interlaced formats this refers + to the odd field (aka field 1). + * - __u32 + - ``il_vfrontporch`` + - Vertical front porch in lines for the even field (aka field 2) of + interlaced field formats. Must be 0 for progressive formats. + * - __u32 + - ``il_vsync`` + - Vertical sync length in lines for the even field (aka field 2) of + interlaced field formats. Must be 0 for progressive formats. + * - __u32 + - ``il_vbackporch`` + - Vertical back porch in lines for the even field (aka field 2) of + interlaced field formats. Must be 0 for progressive formats. + * - __u32 + - ``standards`` + - The video standard(s) this format belongs to. This will be filled + in by the driver. Applications must set this to 0. See + :ref:`dv-bt-standards` for a list of standards. + * - __u32 + - ``flags`` + - Several flags giving more information about the format. See + :ref:`dv-bt-flags` for a description of the flags. + * - __u32 + - ``reserved[14]`` + - Reserved for future extensions. Drivers and applications must set + the array to zero. .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{7.0cm}|p{3.5cm}| @@ -246,40 +161,21 @@ EBUSY :stub-columns: 0 :widths: 1 1 2 1 - - - .. row 1 - - - __u32 - - - ``type`` - - - - - Type of DV timings as listed in :ref:`dv-timing-types`. - - - .. row 2 - - - union - - - - - - - - .. row 3 - - - - - struct :c:type:`v4l2_bt_timings` - - - ``bt`` - - - Timings defined by BT.656/1120 specifications - - - .. row 4 - - - - - __u32 - - - ``reserved``\ [32] - - - + * - __u32 + - ``type`` + - + - Type of DV timings as listed in :ref:`dv-timing-types`. + * - union + - + - + * - + - struct :c:type:`v4l2_bt_timings` + - ``bt`` + - Timings defined by BT.656/1120 specifications + * - + - __u32 + - ``reserved``\ [32] + - .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| @@ -290,28 +186,15 @@ EBUSY :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - Timing type - - - value - - - Description - - - .. row 2 - - - - - - - - - - .. row 3 - - - ``V4L2_DV_BT_656_1120`` - - - 0 - - - BT.656/1120 timings + * - Timing type + - value + - Description + * - + - + - + * - ``V4L2_DV_BT_656_1120`` + - 0 + - BT.656/1120 timings @@ -321,44 +204,20 @@ EBUSY :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Timing standard - - - Description - - - .. row 3 - - - ``V4L2_DV_BT_STD_CEA861`` - - - The timings follow the CEA-861 Digital TV Profile standard - - - .. row 4 - - - ``V4L2_DV_BT_STD_DMT`` - - - The timings follow the VESA Discrete Monitor Timings standard - - - .. row 5 - - - ``V4L2_DV_BT_STD_CVT`` - - - The timings follow the VESA Coordinated Video Timings standard - - - .. row 6 - - - ``V4L2_DV_BT_STD_GTF`` - - - The timings follow the VESA Generalized Timings Formula standard - - - .. row 7 - - - ``V4L2_DV_BT_STD_SDI`` - - - The timings follow the SDI Timings standard. - There are no horizontal syncs/porches at all in this format. - Total blanking timings must be set in hsync or vsync fields only. + * - Timing standard + - Description + * - ``V4L2_DV_BT_STD_CEA861`` + - The timings follow the CEA-861 Digital TV Profile standard + * - ``V4L2_DV_BT_STD_DMT`` + - The timings follow the VESA Discrete Monitor Timings standard + * - ``V4L2_DV_BT_STD_CVT`` + - The timings follow the VESA Coordinated Video Timings standard + * - ``V4L2_DV_BT_STD_GTF`` + - The timings follow the VESA Generalized Timings Formula standard + * - ``V4L2_DV_BT_STD_SDI`` + - The timings follow the SDI Timings standard. + There are no horizontal syncs/porches at all in this format. + Total blanking timings must be set in hsync or vsync fields only. .. tabularcolumns:: |p{6.0cm}|p{11.5cm}| @@ -368,74 +227,46 @@ EBUSY :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - Flag - - - Description - - - .. row 3 - - - ``V4L2_DV_FL_REDUCED_BLANKING`` - - - CVT/GTF specific: the timings use reduced blanking (CVT) or the - 'Secondary GTF' curve (GTF). In both cases the horizontal and/or - vertical blanking intervals are reduced, allowing a higher - resolution over the same bandwidth. This is a read-only flag, - applications must not set this. - - - .. row 4 - - - ``V4L2_DV_FL_CAN_REDUCE_FPS`` - - - CEA-861 specific: set for CEA-861 formats with a framerate that is - a multiple of six. These formats can be optionally played at 1 / - 1.001 speed to be compatible with 60 Hz based standards such as - NTSC and PAL-M that use a framerate of 29.97 frames per second. If - the transmitter can't generate such frequencies, then the flag - will also be cleared. This is a read-only flag, applications must - not set this. - - - .. row 5 - - - ``V4L2_DV_FL_REDUCED_FPS`` - - - CEA-861 specific: only valid for video transmitters, the flag is - cleared by receivers. It is also only valid for formats with the - ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other formats the - flag will be cleared by the driver. If the application sets this - flag, then the pixelclock used to set up the transmitter is - divided by 1.001 to make it compatible with NTSC framerates. If - the transmitter can't generate such frequencies, then the flag - will also be cleared. - - - .. row 6 - - - ``V4L2_DV_FL_HALF_LINE`` - - - Specific to interlaced formats: if set, then the vertical - frontporch of field 1 (aka the odd field) is really one half-line - longer and the vertical backporch of field 2 (aka the even field) - is really one half-line shorter, so each field has exactly the - same number of half-lines. Whether half-lines can be detected or - used depends on the hardware. - - - .. row 7 - - - ``V4L2_DV_FL_IS_CE_VIDEO`` - - - If set, then this is a Consumer Electronics (CE) video format. - Such formats differ from other formats (commonly called IT - formats) in that if R'G'B' encoding is used then by default the - R'G'B' values use limited range (i.e. 16-235) as opposed to full - range (i.e. 0-255). All formats defined in CEA-861 except for the - 640x480p59.94 format are CE formats. - - - .. row 8 - - - ``V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE`` - - - Some formats like SMPTE-125M have an interlaced signal with a odd - total height. For these formats, if this flag is set, the first - field has the extra line. Else, it is the second field. + * - Flag + - Description + * - ``V4L2_DV_FL_REDUCED_BLANKING`` + - CVT/GTF specific: the timings use reduced blanking (CVT) or the + 'Secondary GTF' curve (GTF). In both cases the horizontal and/or + vertical blanking intervals are reduced, allowing a higher + resolution over the same bandwidth. This is a read-only flag, + applications must not set this. + * - ``V4L2_DV_FL_CAN_REDUCE_FPS`` + - CEA-861 specific: set for CEA-861 formats with a framerate that is + a multiple of six. These formats can be optionally played at 1 / + 1.001 speed to be compatible with 60 Hz based standards such as + NTSC and PAL-M that use a framerate of 29.97 frames per second. If + the transmitter can't generate such frequencies, then the flag + will also be cleared. This is a read-only flag, applications must + not set this. + * - ``V4L2_DV_FL_REDUCED_FPS`` + - CEA-861 specific: only valid for video transmitters, the flag is + cleared by receivers. It is also only valid for formats with the + ``V4L2_DV_FL_CAN_REDUCE_FPS`` flag set, for other formats the + flag will be cleared by the driver. If the application sets this + flag, then the pixelclock used to set up the transmitter is + divided by 1.001 to make it compatible with NTSC framerates. If + the transmitter can't generate such frequencies, then the flag + will also be cleared. + * - ``V4L2_DV_FL_HALF_LINE`` + - Specific to interlaced formats: if set, then the vertical + frontporch of field 1 (aka the odd field) is really one half-line + longer and the vertical backporch of field 2 (aka the even field) + is really one half-line shorter, so each field has exactly the + same number of half-lines. Whether half-lines can be detected or + used depends on the hardware. + * - ``V4L2_DV_FL_IS_CE_VIDEO`` + - If set, then this is a Consumer Electronics (CE) video format. + Such formats differ from other formats (commonly called IT + formats) in that if R'G'B' encoding is used then by default the + R'G'B' values use limited range (i.e. 16-235) as opposed to full + range (i.e. 0-255). All formats defined in CEA-861 except for the + 640x480p59.94 format are CE formats. + * - ``V4L2_DV_FL_FIRST_FIELD_EXTRA_LINE`` + - Some formats like SMPTE-125M have an interlaced signal with a odd + total height. For these formats, if this flag is set, the first + field has the extra line. Else, it is the second field. diff --git a/Documentation/media/uapi/v4l/vidioc-g-edid.rst b/Documentation/media/uapi/v4l/vidioc-g-edid.rst index 1fffca7cc38f..a16a193a1cbf 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-edid.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-edid.rst @@ -106,55 +106,30 @@ EDID is no longer available. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``pad`` - - - Pad for which to get/set the EDID blocks. When used with a video - device node the pad represents the input or output index as - returned by :ref:`VIDIOC_ENUMINPUT` and - :ref:`VIDIOC_ENUMOUTPUT` respectively. - - - .. row 2 - - - __u32 - - - ``start_block`` - - - Read the EDID from starting with this block. Must be 0 when - setting the EDID. - - - .. row 3 - - - __u32 - - - ``blocks`` - - - The number of blocks to get or set. Must be less or equal to 256 - (the maximum number of blocks as defined by the standard). When - you set the EDID and ``blocks`` is 0, then the EDID is disabled or - erased. - - - .. row 4 - - - __u32 - - - ``reserved``\ [5] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. - - - .. row 5 - - - __u8 * - - - ``edid`` - - - Pointer to memory that contains the EDID. The minimum size is - ``blocks`` * 128. + * - __u32 + - ``pad`` + - Pad for which to get/set the EDID blocks. When used with a video + device node the pad represents the input or output index as + returned by :ref:`VIDIOC_ENUMINPUT` and + :ref:`VIDIOC_ENUMOUTPUT` respectively. + * - __u32 + - ``start_block`` + - Read the EDID from starting with this block. Must be 0 when + setting the EDID. + * - __u32 + - ``blocks`` + - The number of blocks to get or set. Must be less or equal to 256 + (the maximum number of blocks as defined by the standard). When + you set the EDID and ``blocks`` is 0, then the EDID is disabled or + erased. + * - __u32 + - ``reserved``\ [5] + - Reserved for future extensions. Applications and drivers must set + the array to zero. + * - __u8 * + - ``edid`` + - Pointer to memory that contains the EDID. The minimum size is + ``blocks`` * 128. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-enc-index.rst b/Documentation/media/uapi/v4l/vidioc-g-enc-index.rst index 6b5727439db2..418e886fd44b 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-enc-index.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-enc-index.rst @@ -64,42 +64,22 @@ video elementary streams. :stub-columns: 0 :widths: 1 3 8 - - - .. row 1 - - - __u32 - - - ``entries`` - - - The number of entries the driver stored in the ``entry`` array. - - - .. row 2 - - - __u32 - - - ``entries_cap`` - - - The number of entries the driver can buffer. Must be greater than - zero. - - - .. row 3 - - - __u32 - - - ``reserved``\ [4] - - - Reserved for future extensions. Drivers must set the - array to zero. - - - .. row 4 - - - struct :c:type:`v4l2_enc_idx_entry` - - - ``entry``\ [``V4L2_ENC_IDX_ENTRIES``] - - - Meta data about a compressed video stream. Each element of the - array corresponds to one picture, sorted in ascending order by - their ``offset``. + * - __u32 + - ``entries`` + - The number of entries the driver stored in the ``entry`` array. + * - __u32 + - ``entries_cap`` + - The number of entries the driver can buffer. Must be greater than + zero. + * - __u32 + - ``reserved``\ [4] + - Reserved for future extensions. Drivers must set the + array to zero. + * - struct :c:type:`v4l2_enc_idx_entry` + - ``entry``\ [``V4L2_ENC_IDX_ENTRIES``] + - Meta data about a compressed video stream. Each element of the + array corresponds to one picture, sorted in ascending order by + their ``offset``. @@ -112,53 +92,28 @@ video elementary streams. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u64 - - - ``offset`` - - - The offset in bytes from the beginning of the compressed video - stream to the beginning of this picture, that is a *PES packet - header* as defined in :ref:`mpeg2part1` or a *picture header* as - defined in :ref:`mpeg2part2`. When the encoder is stopped, the - driver resets the offset to zero. - - - .. row 2 - - - __u64 - - - ``pts`` - - - The 33 bit *Presentation Time Stamp* of this picture as defined in - :ref:`mpeg2part1`. - - - .. row 3 - - - __u32 - - - ``length`` - - - The length of this picture in bytes. - - - .. row 4 - - - __u32 - - - ``flags`` - - - Flags containing the coding type of this picture, see - :ref:`enc-idx-flags`. - - - .. row 5 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. Drivers must set the array to - zero. + * - __u64 + - ``offset`` + - The offset in bytes from the beginning of the compressed video + stream to the beginning of this picture, that is a *PES packet + header* as defined in :ref:`mpeg2part1` or a *picture header* as + defined in :ref:`mpeg2part2`. When the encoder is stopped, the + driver resets the offset to zero. + * - __u64 + - ``pts`` + - The 33 bit *Presentation Time Stamp* of this picture as defined in + :ref:`mpeg2part1`. + * - __u32 + - ``length`` + - The length of this picture in bytes. + * - __u32 + - ``flags`` + - Flags containing the coding type of this picture, see + :ref:`enc-idx-flags`. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. Drivers must set the array to + zero. .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -170,39 +125,19 @@ video elementary streams. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_ENC_IDX_FRAME_I`` - - - 0x00 - - - This is an Intra-coded picture. - - - .. row 2 - - - ``V4L2_ENC_IDX_FRAME_P`` - - - 0x01 - - - This is a Predictive-coded picture. - - - .. row 3 - - - ``V4L2_ENC_IDX_FRAME_B`` - - - 0x02 - - - This is a Bidirectionally predictive-coded picture. - - - .. row 4 - - - ``V4L2_ENC_IDX_FRAME_MASK`` - - - 0x0F - - - *AND* the flags field with this mask to obtain the picture coding - type. + * - ``V4L2_ENC_IDX_FRAME_I`` + - 0x00 + - This is an Intra-coded picture. + * - ``V4L2_ENC_IDX_FRAME_P`` + - 0x01 + - This is a Predictive-coded picture. + * - ``V4L2_ENC_IDX_FRAME_B`` + - 0x02 + - This is a Bidirectionally predictive-coded picture. + * - ``V4L2_ENC_IDX_FRAME_MASK`` + - 0x0F + - *AND* the flags field with this mask to obtain the picture coding + type. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst b/Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst index 01561ddfe73b..5ab8d2ac27b9 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst @@ -111,127 +111,73 @@ still cause this situation. :stub-columns: 0 :widths: 1 1 1 2 + * - __u32 + - ``id`` + - + - Identifies the control, set by the application. + * - __u32 + - ``size`` + - + - The total size in bytes of the payload of this control. This is + normally 0, but for pointer controls this should be set to the + size of the memory containing the payload, or that will receive + the payload. If :ref:`VIDIOC_G_EXT_CTRLS ` finds that this value is + less than is required to store the payload result, then it is set + to a value large enough to store the payload result and ``ENOSPC`` is + returned. - - .. row 1 + .. note:: - - __u32 - - - ``id`` - - - - - Identifies the control, set by the application. - - - .. row 2 - - - __u32 - - - ``size`` - - - - - The total size in bytes of the payload of this control. This is - normally 0, but for pointer controls this should be set to the - size of the memory containing the payload, or that will receive - the payload. If :ref:`VIDIOC_G_EXT_CTRLS ` finds that this value is - less than is required to store the payload result, then it is set - to a value large enough to store the payload result and ``ENOSPC`` is - returned. - - .. note:: - - For string controls, this ``size`` field should - not be confused with the length of the string. This field refers - to the size of the memory that contains the string. The actual - *length* of the string may well be much smaller. - - - .. row 3 - - - __u32 - - - ``reserved2``\ [1] - - - - - Reserved for future extensions. Drivers and applications must set - the array to zero. - - - .. row 4 - - - union - - - (anonymous) - - - .. row 5 - - - - - __s32 - - - ``value`` - - - New value or current value. Valid if this control is not of type - ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is - not set. - - - .. row 6 - - - - - __s64 - - - ``value64`` - - - New value or current value. Valid if this control is of type - ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is - not set. - - - .. row 7 - - - - - char * - - - ``string`` - - - A pointer to a string. Valid if this control is of type - ``V4L2_CTRL_TYPE_STRING``. - - - .. row 8 - - - - - __u8 * - - - ``p_u8`` - - - A pointer to a matrix control of unsigned 8-bit values. Valid if - this control is of type ``V4L2_CTRL_TYPE_U8``. - - - .. row 9 - - - - - __u16 * - - - ``p_u16`` - - - A pointer to a matrix control of unsigned 16-bit values. Valid if - this control is of type ``V4L2_CTRL_TYPE_U16``. - - - .. row 10 - - - - - __u32 * - - - ``p_u32`` - - - A pointer to a matrix control of unsigned 32-bit values. Valid if - this control is of type ``V4L2_CTRL_TYPE_U32``. - - - .. row 11 - - - - - void * - - - ``ptr`` - - - A pointer to a compound type which can be an N-dimensional array - and/or a compound type (the control's type is >= - ``V4L2_CTRL_COMPOUND_TYPES``). Valid if - ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set for this control. + For string controls, this ``size`` field should + not be confused with the length of the string. This field refers + to the size of the memory that contains the string. The actual + *length* of the string may well be much smaller. + * - __u32 + - ``reserved2``\ [1] + - + - Reserved for future extensions. Drivers and applications must set + the array to zero. + * - union + - (anonymous) + * - + - __s32 + - ``value`` + - New value or current value. Valid if this control is not of type + ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is + not set. + * - + - __s64 + - ``value64`` + - New value or current value. Valid if this control is of type + ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is + not set. + * - + - char * + - ``string`` + - A pointer to a string. Valid if this control is of type + ``V4L2_CTRL_TYPE_STRING``. + * - + - __u8 * + - ``p_u8`` + - A pointer to a matrix control of unsigned 8-bit values. Valid if + this control is of type ``V4L2_CTRL_TYPE_U8``. + * - + - __u16 * + - ``p_u16`` + - A pointer to a matrix control of unsigned 16-bit values. Valid if + this control is of type ``V4L2_CTRL_TYPE_U16``. + * - + - __u32 * + - ``p_u32`` + - A pointer to a matrix control of unsigned 32-bit values. Valid if + this control is of type ``V4L2_CTRL_TYPE_U32``. + * - + - void * + - ``ptr`` + - A pointer to a compound type which can be an N-dimensional array + and/or a compound type (the control's type is >= + ``V4L2_CTRL_COMPOUND_TYPES``). Valid if + ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set for this control. .. tabularcolumns:: |p{4.0cm}|p{2.0cm}|p{2.0cm}|p{8.5cm}| @@ -245,130 +191,96 @@ still cause this situation. :stub-columns: 0 :widths: 1 1 2 1 + * - union + - (anonymous) + * - + - __u32 + - ``ctrl_class`` + - The control class to which all controls belong, see + :ref:`ctrl-class`. Drivers that use a kernel framework for + handling controls will also accept a value of 0 here, meaning that + the controls can belong to any control class. Whether drivers + support this can be tested by setting ``ctrl_class`` to 0 and + calling :ref:`VIDIOC_TRY_EXT_CTRLS ` with a ``count`` of 0. If that + succeeds, then the driver supports this feature. + * - + - __u32 + - ``which`` + - Which value of the control to get/set/try. + ``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of the + control and ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default + value of the control. - - .. row 1 + .. note:: - - union + You can only get the default value of the control, + you cannot set or try it. - - (anonymous) + For backwards compatibility you can also use a control class here + (see :ref:`ctrl-class`). In that case all controls have to + belong to that control class. This usage is deprecated, instead + just use ``V4L2_CTRL_WHICH_CUR_VAL``. There are some very old + drivers that do not yet support ``V4L2_CTRL_WHICH_CUR_VAL`` and + that require a control class here. You can test for such drivers + by setting ctrl_class to ``V4L2_CTRL_WHICH_CUR_VAL`` and calling + VIDIOC_TRY_EXT_CTRLS with a count of 0. If that fails, then the + driver does not support ``V4L2_CTRL_WHICH_CUR_VAL``. + * - __u32 + - ``count`` + - The number of controls in the controls array. May also be zero. + * - __u32 + - ``error_idx`` + - Set by the driver in case of an error. If the error is associated + with a particular control, then ``error_idx`` is set to the index + of that control. If the error is not related to a specific + control, or the validation step failed (see below), then + ``error_idx`` is set to ``count``. The value is undefined if the + ioctl returned 0 (success). - - .. row 2 + Before controls are read from/written to hardware a validation + step takes place: this checks if all controls in the list are + valid controls, if no attempt is made to write to a read-only + control or read from a write-only control, and any other up-front + checks that can be done without accessing the hardware. The exact + validations done during this step are driver dependent since some + checks might require hardware access for some devices, thus making + it impossible to do those checks up-front. However, drivers should + make a best-effort to do as many up-front checks as possible. - - - - __u32 + This check is done to avoid leaving the hardware in an + inconsistent state due to easy-to-avoid problems. But it leads to + another problem: the application needs to know whether an error + came from the validation step (meaning that the hardware was not + touched) or from an error during the actual reading from/writing + to hardware. - - ``ctrl_class`` + The, in hindsight quite poor, solution for that is to set + ``error_idx`` to ``count`` if the validation failed. This has the + unfortunate side-effect that it is not possible to see which + control failed the validation. If the validation was successful + and the error happened while accessing the hardware, then + ``error_idx`` is less than ``count`` and only the controls up to + ``error_idx-1`` were read or written correctly, and the state of + the remaining controls is undefined. - - The control class to which all controls belong, see - :ref:`ctrl-class`. Drivers that use a kernel framework for - handling controls will also accept a value of 0 here, meaning that - the controls can belong to any control class. Whether drivers - support this can be tested by setting ``ctrl_class`` to 0 and - calling :ref:`VIDIOC_TRY_EXT_CTRLS ` with a ``count`` of 0. If that - succeeds, then the driver supports this feature. + Since :ref:`VIDIOC_TRY_EXT_CTRLS ` does not access hardware there is + also no need to handle the validation step in this special way, so + ``error_idx`` will just be set to the control that failed the + validation step instead of to ``count``. This means that if + :ref:`VIDIOC_S_EXT_CTRLS ` fails with ``error_idx`` set to ``count``, + then you can call :ref:`VIDIOC_TRY_EXT_CTRLS ` to try to discover the + actual control that failed the validation step. Unfortunately, + there is no ``TRY`` equivalent for :ref:`VIDIOC_G_EXT_CTRLS `. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. - - .. row 3 + Drivers and applications must set the array to zero. + * - struct :c:type:`v4l2_ext_control` * + - ``controls`` + - Pointer to an array of ``count`` v4l2_ext_control structures. - - - - __u32 - - - ``which`` - - - Which value of the control to get/set/try. - ``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of the - control and ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default - value of the control. - - .. note:: - - You can only get the default value of the control, - you cannot set or try it. - - For backwards compatibility you can also use a control class here - (see :ref:`ctrl-class`). In that case all controls have to - belong to that control class. This usage is deprecated, instead - just use ``V4L2_CTRL_WHICH_CUR_VAL``. There are some very old - drivers that do not yet support ``V4L2_CTRL_WHICH_CUR_VAL`` and - that require a control class here. You can test for such drivers - by setting ctrl_class to ``V4L2_CTRL_WHICH_CUR_VAL`` and calling - VIDIOC_TRY_EXT_CTRLS with a count of 0. If that fails, then the - driver does not support ``V4L2_CTRL_WHICH_CUR_VAL``. - - - .. row 4 - - - __u32 - - - ``count`` - - - The number of controls in the controls array. May also be zero. - - - .. row 5 - - - __u32 - - - ``error_idx`` - - - Set by the driver in case of an error. If the error is associated - with a particular control, then ``error_idx`` is set to the index - of that control. If the error is not related to a specific - control, or the validation step failed (see below), then - ``error_idx`` is set to ``count``. The value is undefined if the - ioctl returned 0 (success). - - Before controls are read from/written to hardware a validation - step takes place: this checks if all controls in the list are - valid controls, if no attempt is made to write to a read-only - control or read from a write-only control, and any other up-front - checks that can be done without accessing the hardware. The exact - validations done during this step are driver dependent since some - checks might require hardware access for some devices, thus making - it impossible to do those checks up-front. However, drivers should - make a best-effort to do as many up-front checks as possible. - - This check is done to avoid leaving the hardware in an - inconsistent state due to easy-to-avoid problems. But it leads to - another problem: the application needs to know whether an error - came from the validation step (meaning that the hardware was not - touched) or from an error during the actual reading from/writing - to hardware. - - The, in hindsight quite poor, solution for that is to set - ``error_idx`` to ``count`` if the validation failed. This has the - unfortunate side-effect that it is not possible to see which - control failed the validation. If the validation was successful - and the error happened while accessing the hardware, then - ``error_idx`` is less than ``count`` and only the controls up to - ``error_idx-1`` were read or written correctly, and the state of - the remaining controls is undefined. - - Since :ref:`VIDIOC_TRY_EXT_CTRLS ` does not access hardware there is - also no need to handle the validation step in this special way, so - ``error_idx`` will just be set to the control that failed the - validation step instead of to ``count``. This means that if - :ref:`VIDIOC_S_EXT_CTRLS ` fails with ``error_idx`` set to ``count``, - then you can call :ref:`VIDIOC_TRY_EXT_CTRLS ` to try to discover the - actual control that failed the validation step. Unfortunately, - there is no ``TRY`` equivalent for :ref:`VIDIOC_G_EXT_CTRLS `. - - - .. row 6 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. - - Drivers and applications must set the array to zero. - - - .. row 7 - - - struct :c:type:`v4l2_ext_control` * - - - ``controls`` - - - Pointer to an array of ``count`` v4l2_ext_control structures. - - Ignored if ``count`` equals zero. + Ignored if ``count`` equals zero. .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -380,99 +292,49 @@ still cause this situation. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_CTRL_CLASS_USER`` - - - 0x980000 - - - The class containing user controls. These controls are described - in :ref:`control`. All controls that can be set using the - :ref:`VIDIOC_S_CTRL ` and - :ref:`VIDIOC_G_CTRL ` ioctl belong to this - class. - - - .. row 2 - - - ``V4L2_CTRL_CLASS_MPEG`` - - - 0x990000 - - - The class containing MPEG compression controls. These controls are - described in :ref:`mpeg-controls`. - - - .. row 3 - - - ``V4L2_CTRL_CLASS_CAMERA`` - - - 0x9a0000 - - - The class containing camera controls. These controls are described - in :ref:`camera-controls`. - - - .. row 4 - - - ``V4L2_CTRL_CLASS_FM_TX`` - - - 0x9b0000 - - - The class containing FM Transmitter (FM TX) controls. These - controls are described in :ref:`fm-tx-controls`. - - - .. row 5 - - - ``V4L2_CTRL_CLASS_FLASH`` - - - 0x9c0000 - - - The class containing flash device controls. These controls are - described in :ref:`flash-controls`. - - - .. row 6 - - - ``V4L2_CTRL_CLASS_JPEG`` - - - 0x9d0000 - - - The class containing JPEG compression controls. These controls are - described in :ref:`jpeg-controls`. - - - .. row 7 - - - ``V4L2_CTRL_CLASS_IMAGE_SOURCE`` - - - 0x9e0000 - - - The class containing image source controls. These controls are - described in :ref:`image-source-controls`. - - - .. row 8 - - - ``V4L2_CTRL_CLASS_IMAGE_PROC`` - - - 0x9f0000 - - - The class containing image processing controls. These controls are - described in :ref:`image-process-controls`. - - - .. row 9 - - - ``V4L2_CTRL_CLASS_FM_RX`` - - - 0xa10000 - - - The class containing FM Receiver (FM RX) controls. These controls - are described in :ref:`fm-rx-controls`. - - - .. row 10 - - - ``V4L2_CTRL_CLASS_RF_TUNER`` - - - 0xa20000 - - - The class containing RF tuner controls. These controls are - described in :ref:`rf-tuner-controls`. + * - ``V4L2_CTRL_CLASS_USER`` + - 0x980000 + - The class containing user controls. These controls are described + in :ref:`control`. All controls that can be set using the + :ref:`VIDIOC_S_CTRL ` and + :ref:`VIDIOC_G_CTRL ` ioctl belong to this + class. + * - ``V4L2_CTRL_CLASS_MPEG`` + - 0x990000 + - The class containing MPEG compression controls. These controls are + described in :ref:`mpeg-controls`. + * - ``V4L2_CTRL_CLASS_CAMERA`` + - 0x9a0000 + - The class containing camera controls. These controls are described + in :ref:`camera-controls`. + * - ``V4L2_CTRL_CLASS_FM_TX`` + - 0x9b0000 + - The class containing FM Transmitter (FM TX) controls. These + controls are described in :ref:`fm-tx-controls`. + * - ``V4L2_CTRL_CLASS_FLASH`` + - 0x9c0000 + - The class containing flash device controls. These controls are + described in :ref:`flash-controls`. + * - ``V4L2_CTRL_CLASS_JPEG`` + - 0x9d0000 + - The class containing JPEG compression controls. These controls are + described in :ref:`jpeg-controls`. + * - ``V4L2_CTRL_CLASS_IMAGE_SOURCE`` + - 0x9e0000 + - The class containing image source controls. These controls are + described in :ref:`image-source-controls`. + * - ``V4L2_CTRL_CLASS_IMAGE_PROC`` + - 0x9f0000 + - The class containing image processing controls. These controls are + described in :ref:`image-process-controls`. + * - ``V4L2_CTRL_CLASS_FM_RX`` + - 0xa10000 + - The class containing FM Receiver (FM RX) controls. These controls + are described in :ref:`fm-rx-controls`. + * - ``V4L2_CTRL_CLASS_RF_TUNER`` + - 0xa20000 + - The class containing RF tuner controls. These controls are + described in :ref:`rf-tuner-controls`. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-fbuf.rst b/Documentation/media/uapi/v4l/vidioc-g-fbuf.rst index 1ad40a9dd743..4a6a03d158ca 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-fbuf.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-fbuf.rst @@ -86,201 +86,126 @@ destructive video overlay. :stub-columns: 0 :widths: 1 1 1 2 + * - __u32 + - ``capability`` + - + - Overlay capability flags set by the driver, see + :ref:`framebuffer-cap`. + * - __u32 + - ``flags`` + - + - Overlay control flags set by application and driver, see + :ref:`framebuffer-flags` + * - void * + - ``base`` + - + - Physical base address of the framebuffer, that is the address of + the pixel in the top left corner of the framebuffer. [#f1]_ + * - + - + - + - This field is irrelevant to *non-destructive Video Overlays*. For + *destructive Video Overlays* applications must provide a base + address. The driver may accept only base addresses which are a + multiple of two, four or eight bytes. For *Video Output Overlays* + the driver must return a valid base address, so applications can + find the corresponding Linux framebuffer device (see + :ref:`osd`). + * - struct + - ``fmt`` + - + - Layout of the frame buffer. + * - + - __u32 + - ``width`` + - Width of the frame buffer in pixels. + * - + - __u32 + - ``height`` + - Height of the frame buffer in pixels. + * - + - __u32 + - ``pixelformat`` + - The pixel format of the framebuffer. + * - + - + - + - For *non-destructive Video Overlays* this field only defines a + format for the struct :c:type:`v4l2_window` + ``chromakey`` field. + * - + - + - + - For *destructive Video Overlays* applications must initialize this + field. For *Video Output Overlays* the driver must return a valid + format. + * - + - + - + - Usually this is an RGB format (for example + :ref:`V4L2_PIX_FMT_RGB565 `) but YUV + formats (only packed YUV formats when chroma keying is used, not + including ``V4L2_PIX_FMT_YUYV`` and ``V4L2_PIX_FMT_UYVY``) and the + ``V4L2_PIX_FMT_PAL8`` format are also permitted. The behavior of + the driver when an application requests a compressed format is + undefined. See :ref:`pixfmt` for information on pixel formats. + * - + - enum :c:type:`v4l2_field` + - ``field`` + - Drivers and applications shall ignore this field. If applicable, + the field order is selected with the + :ref:`VIDIOC_S_FMT ` ioctl, using the ``field`` + field of struct :c:type:`v4l2_window`. + * - + - __u32 + - ``bytesperline`` + - Distance in bytes between the leftmost pixels in two adjacent + lines. + * - :cspan:`3` - - .. row 1 + This field is irrelevant to *non-destructive Video Overlays*. - - __u32 + For *destructive Video Overlays* both applications and drivers can + set this field to request padding bytes at the end of each line. + Drivers however may ignore the requested value, returning + ``width`` times bytes-per-pixel or a larger value required by the + hardware. That implies applications can just set this field to + zero to get a reasonable default. - - ``capability`` + For *Video Output Overlays* the driver must return a valid value. - - - - Overlay capability flags set by the driver, see - :ref:`framebuffer-cap`. + Video hardware may access padding bytes, therefore they must + reside in accessible memory. Consider for example the case where + padding bytes after the last line of an image cross a system page + boundary. Capture devices may write padding bytes, the value is + undefined. Output devices ignore the contents of padding bytes. - - .. row 2 + When the image format is planar the ``bytesperline`` value applies + to the first plane and is divided by the same factor as the + ``width`` field for the other planes. For example the Cb and Cr + planes of a YUV 4:2:0 image have half as many padding bytes + following each line as the Y plane. To avoid ambiguities drivers + must return a ``bytesperline`` value rounded up to a multiple of + the scale factor. + * - + - __u32 + - ``sizeimage`` + - This field is irrelevant to *non-destructive Video Overlays*. For + *destructive Video Overlays* applications must initialize this + field. For *Video Output Overlays* the driver must return a valid + format. - - __u32 - - - ``flags`` - - - - - Overlay control flags set by application and driver, see - :ref:`framebuffer-flags` - - - .. row 3 - - - void * - - - ``base`` - - - - - Physical base address of the framebuffer, that is the address of - the pixel in the top left corner of the framebuffer. [#f1]_ - - - .. row 4 - - - - - - - - - This field is irrelevant to *non-destructive Video Overlays*. For - *destructive Video Overlays* applications must provide a base - address. The driver may accept only base addresses which are a - multiple of two, four or eight bytes. For *Video Output Overlays* - the driver must return a valid base address, so applications can - find the corresponding Linux framebuffer device (see - :ref:`osd`). - - - .. row 5 - - - struct - - - ``fmt`` - - - - - Layout of the frame buffer. - - - .. row 6 - - - - - __u32 - - - ``width`` - - - Width of the frame buffer in pixels. - - - .. row 7 - - - - - __u32 - - - ``height`` - - - Height of the frame buffer in pixels. - - - .. row 8 - - - - - __u32 - - - ``pixelformat`` - - - The pixel format of the framebuffer. - - - .. row 9 - - - - - - - - - For *non-destructive Video Overlays* this field only defines a - format for the struct :c:type:`v4l2_window` - ``chromakey`` field. - - - .. row 10 - - - - - - - - - For *destructive Video Overlays* applications must initialize this - field. For *Video Output Overlays* the driver must return a valid - format. - - - .. row 11 - - - - - - - - - Usually this is an RGB format (for example - :ref:`V4L2_PIX_FMT_RGB565 `) but YUV - formats (only packed YUV formats when chroma keying is used, not - including ``V4L2_PIX_FMT_YUYV`` and ``V4L2_PIX_FMT_UYVY``) and the - ``V4L2_PIX_FMT_PAL8`` format are also permitted. The behavior of - the driver when an application requests a compressed format is - undefined. See :ref:`pixfmt` for information on pixel formats. - - - .. row 12 - - - - - enum :c:type:`v4l2_field` - - - ``field`` - - - Drivers and applications shall ignore this field. If applicable, - the field order is selected with the - :ref:`VIDIOC_S_FMT ` ioctl, using the ``field`` - field of struct :c:type:`v4l2_window`. - - - .. row 13 - - - - - __u32 - - - ``bytesperline`` - - - Distance in bytes between the leftmost pixels in two adjacent - lines. - - - .. row 14 - - - :cspan:`3` - - This field is irrelevant to *non-destructive Video Overlays*. - - For *destructive Video Overlays* both applications and drivers can - set this field to request padding bytes at the end of each line. - Drivers however may ignore the requested value, returning - ``width`` times bytes-per-pixel or a larger value required by the - hardware. That implies applications can just set this field to - zero to get a reasonable default. - - For *Video Output Overlays* the driver must return a valid value. - - Video hardware may access padding bytes, therefore they must - reside in accessible memory. Consider for example the case where - padding bytes after the last line of an image cross a system page - boundary. Capture devices may write padding bytes, the value is - undefined. Output devices ignore the contents of padding bytes. - - When the image format is planar the ``bytesperline`` value applies - to the first plane and is divided by the same factor as the - ``width`` field for the other planes. For example the Cb and Cr - planes of a YUV 4:2:0 image have half as many padding bytes - following each line as the Y plane. To avoid ambiguities drivers - must return a ``bytesperline`` value rounded up to a multiple of - the scale factor. - - - .. row 15 - - - - - __u32 - - - ``sizeimage`` - - - This field is irrelevant to *non-destructive Video Overlays*. For - *destructive Video Overlays* applications must initialize this - field. For *Video Output Overlays* the driver must return a valid - format. - - Together with ``base`` it defines the framebuffer memory - accessible by the driver. - - - .. row 16 - - - - - enum :c:type:`v4l2_colorspace` - - - ``colorspace`` - - - This information supplements the ``pixelformat`` and must be set - by the driver, see :ref:`colorspaces`. - - - .. row 17 - - - - - __u32 - - - ``priv`` - - - Reserved. Drivers and applications must set this field to zero. + Together with ``base`` it defines the framebuffer memory + accessible by the driver. + * - + - enum :c:type:`v4l2_colorspace` + - ``colorspace`` + - This information supplements the ``pixelformat`` and must be set + by the driver, see :ref:`colorspaces`. + * - + - __u32 + - ``priv`` + - Reserved. Drivers and applications must set this field to zero. .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -292,84 +217,44 @@ destructive video overlay. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` - - - 0x0001 - - - The device is capable of non-destructive overlays. When the driver - clears this flag, only destructive overlays are supported. There - are no drivers yet which support both destructive and - non-destructive overlays. Video Output Overlays are in practice - always non-destructive. - - - .. row 2 - - - ``V4L2_FBUF_CAP_CHROMAKEY`` - - - 0x0002 - - - The device supports clipping by chroma-keying the images. That is, - image pixels replace pixels in the VGA or video signal only where - the latter assume a certain color. Chroma-keying makes no sense - for destructive overlays. - - - .. row 3 - - - ``V4L2_FBUF_CAP_LIST_CLIPPING`` - - - 0x0004 - - - The device supports clipping using a list of clip rectangles. - - - .. row 4 - - - ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` - - - 0x0008 - - - The device supports clipping using a bit mask. - - - .. row 5 - - - ``V4L2_FBUF_CAP_LOCAL_ALPHA`` - - - 0x0010 - - - The device supports clipping/blending using the alpha channel of - the framebuffer or VGA signal. Alpha blending makes no sense for - destructive overlays. - - - .. row 6 - - - ``V4L2_FBUF_CAP_GLOBAL_ALPHA`` - - - 0x0020 - - - The device supports alpha blending using a global alpha value. - Alpha blending makes no sense for destructive overlays. - - - .. row 7 - - - ``V4L2_FBUF_CAP_LOCAL_INV_ALPHA`` - - - 0x0040 - - - The device supports clipping/blending using the inverted alpha - channel of the framebuffer or VGA signal. Alpha blending makes no - sense for destructive overlays. - - - .. row 8 - - - ``V4L2_FBUF_CAP_SRC_CHROMAKEY`` - - - 0x0080 - - - The device supports Source Chroma-keying. Video pixels with the - chroma-key colors are replaced by framebuffer pixels, which is - exactly opposite of ``V4L2_FBUF_CAP_CHROMAKEY`` + * - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` + - 0x0001 + - The device is capable of non-destructive overlays. When the driver + clears this flag, only destructive overlays are supported. There + are no drivers yet which support both destructive and + non-destructive overlays. Video Output Overlays are in practice + always non-destructive. + * - ``V4L2_FBUF_CAP_CHROMAKEY`` + - 0x0002 + - The device supports clipping by chroma-keying the images. That is, + image pixels replace pixels in the VGA or video signal only where + the latter assume a certain color. Chroma-keying makes no sense + for destructive overlays. + * - ``V4L2_FBUF_CAP_LIST_CLIPPING`` + - 0x0004 + - The device supports clipping using a list of clip rectangles. + * - ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` + - 0x0008 + - The device supports clipping using a bit mask. + * - ``V4L2_FBUF_CAP_LOCAL_ALPHA`` + - 0x0010 + - The device supports clipping/blending using the alpha channel of + the framebuffer or VGA signal. Alpha blending makes no sense for + destructive overlays. + * - ``V4L2_FBUF_CAP_GLOBAL_ALPHA`` + - 0x0020 + - The device supports alpha blending using a global alpha value. + Alpha blending makes no sense for destructive overlays. + * - ``V4L2_FBUF_CAP_LOCAL_INV_ALPHA`` + - 0x0040 + - The device supports clipping/blending using the inverted alpha + channel of the framebuffer or VGA signal. Alpha blending makes no + sense for destructive overlays. + * - ``V4L2_FBUF_CAP_SRC_CHROMAKEY`` + - 0x0080 + - The device supports Source Chroma-keying. Video pixels with the + chroma-key colors are replaced by framebuffer pixels, which is + exactly opposite of ``V4L2_FBUF_CAP_CHROMAKEY`` .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -383,106 +268,68 @@ destructive video overlay. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_FBUF_FLAG_PRIMARY`` - - - 0x0001 - - - The framebuffer is the primary graphics surface. In other words, - the overlay is destructive. This flag is typically set by any - driver that doesn't have the ``V4L2_FBUF_CAP_EXTERNOVERLAY`` - capability and it is cleared otherwise. - - - .. row 2 - - - ``V4L2_FBUF_FLAG_OVERLAY`` - - - 0x0002 - - - If this flag is set for a video capture device, then the driver - will set the initial overlay size to cover the full framebuffer - size, otherwise the existing overlay size (as set by - :ref:`VIDIOC_S_FMT `) will be used. Only one - video capture driver (bttv) supports this flag. The use of this - flag for capture devices is deprecated. There is no way to detect - which drivers support this flag, so the only reliable method of - setting the overlay size is through - :ref:`VIDIOC_S_FMT `. If this flag is set for a - video output device, then the video output overlay window is - relative to the top-left corner of the framebuffer and restricted - to the size of the framebuffer. If it is cleared, then the video - output overlay window is relative to the video output display. - - - .. row 3 - - - ``V4L2_FBUF_FLAG_CHROMAKEY`` - - - 0x0004 - - - Use chroma-keying. The chroma-key color is determined by the - ``chromakey`` field of struct :c:type:`v4l2_window` - and negotiated with the :ref:`VIDIOC_S_FMT ` - ioctl, see :ref:`overlay` and :ref:`osd`. - - - .. row 4 - - - :cspan:`2` There are no flags to enable clipping using a list of - clip rectangles or a bitmap. These methods are negotiated with the - :ref:`VIDIOC_S_FMT ` ioctl, see :ref:`overlay` - and :ref:`osd`. - - - .. row 5 - - - ``V4L2_FBUF_FLAG_LOCAL_ALPHA`` - - - 0x0008 - - - Use the alpha channel of the framebuffer to clip or blend - framebuffer pixels with video images. The blend function is: - output = framebuffer pixel * alpha + video pixel * (1 - alpha). - The actual alpha depth depends on the framebuffer pixel format. - - - .. row 6 - - - ``V4L2_FBUF_FLAG_GLOBAL_ALPHA`` - - - 0x0010 - - - Use a global alpha value to blend the framebuffer with video - images. The blend function is: output = (framebuffer pixel * alpha - + video pixel * (255 - alpha)) / 255. The alpha value is - determined by the ``global_alpha`` field of struct - :c:type:`v4l2_window` and negotiated with the - :ref:`VIDIOC_S_FMT ` ioctl, see :ref:`overlay` - and :ref:`osd`. - - - .. row 7 - - - ``V4L2_FBUF_FLAG_LOCAL_INV_ALPHA`` - - - 0x0020 - - - Like ``V4L2_FBUF_FLAG_LOCAL_ALPHA``, use the alpha channel of the - framebuffer to clip or blend framebuffer pixels with video images, - but with an inverted alpha value. The blend function is: output = - framebuffer pixel * (1 - alpha) + video pixel * alpha. The actual - alpha depth depends on the framebuffer pixel format. - - - .. row 8 - - - ``V4L2_FBUF_FLAG_SRC_CHROMAKEY`` - - - 0x0040 - - - Use source chroma-keying. The source chroma-key color is - determined by the ``chromakey`` field of struct - :c:type:`v4l2_window` and negotiated with the - :ref:`VIDIOC_S_FMT ` ioctl, see :ref:`overlay` - and :ref:`osd`. Both chroma-keying are mutual exclusive to each - other, so same ``chromakey`` field of struct - :c:type:`v4l2_window` is being used. + * - ``V4L2_FBUF_FLAG_PRIMARY`` + - 0x0001 + - The framebuffer is the primary graphics surface. In other words, + the overlay is destructive. This flag is typically set by any + driver that doesn't have the ``V4L2_FBUF_CAP_EXTERNOVERLAY`` + capability and it is cleared otherwise. + * - ``V4L2_FBUF_FLAG_OVERLAY`` + - 0x0002 + - If this flag is set for a video capture device, then the driver + will set the initial overlay size to cover the full framebuffer + size, otherwise the existing overlay size (as set by + :ref:`VIDIOC_S_FMT `) will be used. Only one + video capture driver (bttv) supports this flag. The use of this + flag for capture devices is deprecated. There is no way to detect + which drivers support this flag, so the only reliable method of + setting the overlay size is through + :ref:`VIDIOC_S_FMT `. If this flag is set for a + video output device, then the video output overlay window is + relative to the top-left corner of the framebuffer and restricted + to the size of the framebuffer. If it is cleared, then the video + output overlay window is relative to the video output display. + * - ``V4L2_FBUF_FLAG_CHROMAKEY`` + - 0x0004 + - Use chroma-keying. The chroma-key color is determined by the + ``chromakey`` field of struct :c:type:`v4l2_window` + and negotiated with the :ref:`VIDIOC_S_FMT ` + ioctl, see :ref:`overlay` and :ref:`osd`. + * - :cspan:`2` There are no flags to enable clipping using a list of + clip rectangles or a bitmap. These methods are negotiated with the + :ref:`VIDIOC_S_FMT ` ioctl, see :ref:`overlay` + and :ref:`osd`. + * - ``V4L2_FBUF_FLAG_LOCAL_ALPHA`` + - 0x0008 + - Use the alpha channel of the framebuffer to clip or blend + framebuffer pixels with video images. The blend function is: + output = framebuffer pixel * alpha + video pixel * (1 - alpha). + The actual alpha depth depends on the framebuffer pixel format. + * - ``V4L2_FBUF_FLAG_GLOBAL_ALPHA`` + - 0x0010 + - Use a global alpha value to blend the framebuffer with video + images. The blend function is: output = (framebuffer pixel * alpha + + video pixel * (255 - alpha)) / 255. The alpha value is + determined by the ``global_alpha`` field of struct + :c:type:`v4l2_window` and negotiated with the + :ref:`VIDIOC_S_FMT ` ioctl, see :ref:`overlay` + and :ref:`osd`. + * - ``V4L2_FBUF_FLAG_LOCAL_INV_ALPHA`` + - 0x0020 + - Like ``V4L2_FBUF_FLAG_LOCAL_ALPHA``, use the alpha channel of the + framebuffer to clip or blend framebuffer pixels with video images, + but with an inverted alpha value. The blend function is: output = + framebuffer pixel * (1 - alpha) + video pixel * alpha. The actual + alpha depth depends on the framebuffer pixel format. + * - ``V4L2_FBUF_FLAG_SRC_CHROMAKEY`` + - 0x0040 + - Use source chroma-keying. The source chroma-key color is + determined by the ``chromakey`` field of struct + :c:type:`v4l2_window` and negotiated with the + :ref:`VIDIOC_S_FMT ` ioctl, see :ref:`overlay` + and :ref:`osd`. Both chroma-keying are mutual exclusive to each + other, so same ``chromakey`` field of struct + :c:type:`v4l2_window` is being used. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-fmt.rst b/Documentation/media/uapi/v4l/vidioc-g-fmt.rst index f11dce6dc543..b853e48312e2 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-fmt.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-fmt.rst @@ -93,92 +93,48 @@ The format as returned by :ref:`VIDIOC_TRY_FMT ` must be identical :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - __u32 - - - ``type`` - - - - - Type of the data stream, see :c:type:`v4l2_buf_type`. - - - .. row 2 - - - union - - - ``fmt`` - - - .. row 3 - - - - - struct :c:type:`v4l2_pix_format` - - - ``pix`` - - - Definition of an image format, see :ref:`pixfmt`, used by video - capture and output devices. - - - .. row 4 - - - - - struct :c:type:`v4l2_pix_format_mplane` - - - ``pix_mp`` - - - Definition of an image format, see :ref:`pixfmt`, used by video - capture and output devices that support the - :ref:`multi-planar version of the API `. - - - .. row 5 - - - - - struct :c:type:`v4l2_window` - - - ``win`` - - - Definition of an overlaid image, see :ref:`overlay`, used by - video overlay devices. - - - .. row 6 - - - - - struct :c:type:`v4l2_vbi_format` - - - ``vbi`` - - - Raw VBI capture or output parameters. This is discussed in more - detail in :ref:`raw-vbi`. Used by raw VBI capture and output - devices. - - - .. row 7 - - - - - struct :c:type:`v4l2_sliced_vbi_format` - - - ``sliced`` - - - Sliced VBI capture or output parameters. See :ref:`sliced` for - details. Used by sliced VBI capture and output devices. - - - .. row 8 - - - - - struct :c:type:`v4l2_sdr_format` - - - ``sdr`` - - - Definition of a data format, see :ref:`pixfmt`, used by SDR - capture and output devices. - - - .. row 9 - - - - - __u8 - - - ``raw_data``\ [200] - - - Place holder for future extensions. + * - __u32 + - ``type`` + - + - Type of the data stream, see :c:type:`v4l2_buf_type`. + * - union + - ``fmt`` + * - + - struct :c:type:`v4l2_pix_format` + - ``pix`` + - Definition of an image format, see :ref:`pixfmt`, used by video + capture and output devices. + * - + - struct :c:type:`v4l2_pix_format_mplane` + - ``pix_mp`` + - Definition of an image format, see :ref:`pixfmt`, used by video + capture and output devices that support the + :ref:`multi-planar version of the API `. + * - + - struct :c:type:`v4l2_window` + - ``win`` + - Definition of an overlaid image, see :ref:`overlay`, used by + video overlay devices. + * - + - struct :c:type:`v4l2_vbi_format` + - ``vbi`` + - Raw VBI capture or output parameters. This is discussed in more + detail in :ref:`raw-vbi`. Used by raw VBI capture and output + devices. + * - + - struct :c:type:`v4l2_sliced_vbi_format` + - ``sliced`` + - Sliced VBI capture or output parameters. See :ref:`sliced` for + details. Used by sliced VBI capture and output devices. + * - + - struct :c:type:`v4l2_sdr_format` + - ``sdr`` + - Definition of a data format, see :ref:`pixfmt`, used by SDR + capture and output devices. + * - + - __u8 + - ``raw_data``\ [200] + - Place holder for future extensions. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-frequency.rst b/Documentation/media/uapi/v4l/vidioc-g-frequency.rst index 37ac69acf113..46ab276f412b 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-frequency.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-frequency.rst @@ -60,53 +60,33 @@ write-only ioctl, it does not return the actual new frequency. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``tuner`` - - - The tuner or modulator index number. This is the same value as in - the struct :c:type:`v4l2_input` ``tuner`` field and - the struct :c:type:`v4l2_tuner` ``index`` field, or - the struct :c:type:`v4l2_output` ``modulator`` field - and the struct :c:type:`v4l2_modulator` ``index`` - field. - - - .. row 2 - - - __u32 - - - ``type`` - - - The tuner type. This is the same value as in the struct - :c:type:`v4l2_tuner` ``type`` field. The type must be - set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and - to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to - ``V4L2_TUNER_RADIO`` for modulators (currently only radio - modulators are supported). See :c:type:`v4l2_tuner_type` - - - .. row 3 - - - __u32 - - - ``frequency`` - - - Tuning frequency in units of 62.5 kHz, or if the struct - :c:type:`v4l2_tuner` or struct - :c:type:`v4l2_modulator` ``capability`` flag - ``V4L2_TUNER_CAP_LOW`` is set, in units of 62.5 Hz. A 1 Hz unit is - used when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. - - - .. row 4 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + * - __u32 + - ``tuner`` + - The tuner or modulator index number. This is the same value as in + the struct :c:type:`v4l2_input` ``tuner`` field and + the struct :c:type:`v4l2_tuner` ``index`` field, or + the struct :c:type:`v4l2_output` ``modulator`` field + and the struct :c:type:`v4l2_modulator` ``index`` + field. + * - __u32 + - ``type`` + - The tuner type. This is the same value as in the struct + :c:type:`v4l2_tuner` ``type`` field. The type must be + set to ``V4L2_TUNER_RADIO`` for ``/dev/radioX`` device nodes, and + to ``V4L2_TUNER_ANALOG_TV`` for all others. Set this field to + ``V4L2_TUNER_RADIO`` for modulators (currently only radio + modulators are supported). See :c:type:`v4l2_tuner_type` + * - __u32 + - ``frequency`` + - Tuning frequency in units of 62.5 kHz, or if the struct + :c:type:`v4l2_tuner` or struct + :c:type:`v4l2_modulator` ``capability`` flag + ``V4L2_TUNER_CAP_LOW`` is set, in units of 62.5 Hz. A 1 Hz unit is + used when the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is set. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Drivers and applications must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst b/Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst index c56c5bc7beb5..8ba353067b33 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst @@ -63,68 +63,33 @@ encoding. You usually do want to add them. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - int - - - ``quality`` - - - Deprecated. If - :ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY ` - control is exposed by a driver applications should use it instead - and ignore this field. - - - .. row 2 - - - int - - - ``APPn`` - - - - - - .. row 3 - - - int - - - ``APP_len`` - - - - - - .. row 4 - - - char - - - ``APP_data``\ [60] - - - - - - .. row 5 - - - int - - - ``COM_len`` - - - - - - .. row 6 - - - char - - - ``COM_data``\ [60] - - - - - - .. row 7 - - - __u32 - - - ``jpeg_markers`` - - - See :ref:`jpeg-markers`. Deprecated. If - :ref:`V4L2_CID_JPEG_ACTIVE_MARKER ` - control is exposed by a driver applications should use it instead - and ignore this field. + * - int + - ``quality`` + - Deprecated. If + :ref:`V4L2_CID_JPEG_COMPRESSION_QUALITY ` + control is exposed by a driver applications should use it instead + and ignore this field. + * - int + - ``APPn`` + - + * - int + - ``APP_len`` + - + * - char + - ``APP_data``\ [60] + - + * - int + - ``COM_len`` + - + * - char + - ``COM_data``\ [60] + - + * - __u32 + - ``jpeg_markers`` + - See :ref:`jpeg-markers`. Deprecated. If + :ref:`V4L2_CID_JPEG_ACTIVE_MARKER ` + control is exposed by a driver applications should use it instead + and ignore this field. .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -136,46 +101,21 @@ encoding. You usually do want to add them. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_JPEG_MARKER_DHT`` - - - (1<<3) - - - Define Huffman Tables - - - .. row 2 - - - ``V4L2_JPEG_MARKER_DQT`` - - - (1<<4) - - - Define Quantization Tables - - - .. row 3 - - - ``V4L2_JPEG_MARKER_DRI`` - - - (1<<5) - - - Define Restart Interval - - - .. row 4 - - - ``V4L2_JPEG_MARKER_COM`` - - - (1<<6) - - - Comment segment - - - .. row 5 - - - ``V4L2_JPEG_MARKER_APP`` - - - (1<<7) - - - App segment, driver will always use APP0 + * - ``V4L2_JPEG_MARKER_DHT`` + - (1<<3) + - Define Huffman Tables + * - ``V4L2_JPEG_MARKER_DQT`` + - (1<<4) + - Define Quantization Tables + * - ``V4L2_JPEG_MARKER_DRI`` + - (1<<5) + - Define Restart Interval + * - ``V4L2_JPEG_MARKER_COM`` + - (1<<6) + - Comment segment + * - ``V4L2_JPEG_MARKER_APP`` + - (1<<7) + - App segment, driver will always use APP0 Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-modulator.rst b/Documentation/media/uapi/v4l/vidioc-g-modulator.rst index a8a542dc8a40..77d017eb3fcc 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-modulator.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-modulator.rst @@ -69,95 +69,55 @@ To change the radio frequency the :stub-columns: 0 :widths: 1 1 2 1 1 + * - __u32 + - ``index`` + - Identifies the modulator, set by the application. + * - __u8 + - ``name``\ [32] + - Name of the modulator, a NUL-terminated ASCII string. - - .. row 1 + This information is intended for the user. + * - __u32 + - ``capability`` + - Modulator capability flags. No flags are defined for this field, + the tuner flags in struct :c:type:`v4l2_tuner` are + used accordingly. The audio flags indicate the ability to encode + audio subprograms. They will *not* change for example with the + current video standard. + * - __u32 + - ``rangelow`` + - The lowest tunable frequency in units of 62.5 KHz, or if the + ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of + 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is + set, in units of 1 Hz. + * - __u32 + - ``rangehigh`` + - The highest tunable frequency in units of 62.5 KHz, or if the + ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of + 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is + set, in units of 1 Hz. + * - __u32 + - ``txsubchans`` + - With this field applications can determine how audio sub-carriers + shall be modulated. It contains a set of flags as defined in + :ref:`modulator-txsubchans`. - - __u32 + .. note:: - - ``index`` + The tuner ``rxsubchans`` flags are reused, but the + semantics are different. Video output devices + are assumed to have an analog or PCM audio input with 1-3 + channels. The ``txsubchans`` flags select one or more channels + for modulation, together with some audio subprogram indicator, + for example, a stereo pilot tone. + * - __u32 + - ``type`` + - :cspan:`2` Type of the modulator, see :c:type:`v4l2_tuner_type`. + * - __u32 + - ``reserved``\ [3] + - Reserved for future extensions. - - Identifies the modulator, set by the application. - - - .. row 2 - - - __u8 - - - ``name``\ [32] - - - Name of the modulator, a NUL-terminated ASCII string. - - This information is intended for the user. - - - .. row 3 - - - __u32 - - - ``capability`` - - - Modulator capability flags. No flags are defined for this field, - the tuner flags in struct :c:type:`v4l2_tuner` are - used accordingly. The audio flags indicate the ability to encode - audio subprograms. They will *not* change for example with the - current video standard. - - - .. row 4 - - - __u32 - - - ``rangelow`` - - - The lowest tunable frequency in units of 62.5 KHz, or if the - ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of - 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is - set, in units of 1 Hz. - - - .. row 5 - - - __u32 - - - ``rangehigh`` - - - The highest tunable frequency in units of 62.5 KHz, or if the - ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units of - 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` is - set, in units of 1 Hz. - - - .. row 6 - - - __u32 - - - ``txsubchans`` - - - With this field applications can determine how audio sub-carriers - shall be modulated. It contains a set of flags as defined in - :ref:`modulator-txsubchans`. - - .. note:: - - The tuner ``rxsubchans`` flags are reused, but the - semantics are different. Video output devices - are assumed to have an analog or PCM audio input with 1-3 - channels. The ``txsubchans`` flags select one or more channels - for modulation, together with some audio subprogram indicator, - for example, a stereo pilot tone. - - - .. row 7 - - - __u32 - - - ``type`` - - - :cspan:`2` Type of the modulator, see :c:type:`v4l2_tuner_type`. - - - .. row 8 - - - __u32 - - - ``reserved``\ [3] - - - Reserved for future extensions. - - Drivers and applications must set the array to zero. + Drivers and applications must set the array to zero. @@ -170,86 +130,56 @@ To change the radio frequency the :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_TUNER_SUB_MONO`` - - - 0x0001 - - - Modulate channel 1 as mono audio, when the input has more - channels, a down-mix of channel 1 and 2. This flag does not - combine with ``V4L2_TUNER_SUB_STEREO`` or - ``V4L2_TUNER_SUB_LANG1``. - - - .. row 2 - - - ``V4L2_TUNER_SUB_STEREO`` - - - 0x0002 - - - Modulate channel 1 and 2 as left and right channel of a stereo - audio signal. When the input has only one channel or two channels - and ``V4L2_TUNER_SUB_SAP`` is also set, channel 1 is encoded as - left and right channel. This flag does not combine with - ``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_LANG1``. When the - driver does not support stereo audio it shall fall back to mono. - - - .. row 3 - - - ``V4L2_TUNER_SUB_LANG1`` - - - 0x0008 - - - Modulate channel 1 and 2 as primary and secondary language of a - bilingual audio signal. When the input has only one channel it is - used for both languages. It is not possible to encode the primary - or secondary language only. This flag does not combine with - ``V4L2_TUNER_SUB_MONO``, ``V4L2_TUNER_SUB_STEREO`` or - ``V4L2_TUNER_SUB_SAP``. If the hardware does not support the - respective audio matrix, or the current video standard does not - permit bilingual audio the :ref:`VIDIOC_S_MODULATOR ` ioctl shall - return an ``EINVAL`` error code and the driver shall fall back to mono - or stereo mode. - - - .. row 4 - - - ``V4L2_TUNER_SUB_LANG2`` - - - 0x0004 - - - Same effect as ``V4L2_TUNER_SUB_SAP``. - - - .. row 5 - - - ``V4L2_TUNER_SUB_SAP`` - - - 0x0004 - - - When combined with ``V4L2_TUNER_SUB_MONO`` the first channel is - encoded as mono audio, the last channel as Second Audio Program. - When the input has only one channel it is used for both audio - tracks. When the input has three channels the mono track is a - down-mix of channel 1 and 2. When combined with - ``V4L2_TUNER_SUB_STEREO`` channel 1 and 2 are encoded as left and - right stereo audio, channel 3 as Second Audio Program. When the - input has only two channels, the first is encoded as left and - right channel and the second as SAP. When the input has only one - channel it is used for all audio tracks. It is not possible to - encode a Second Audio Program only. This flag must combine with - ``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_STEREO``. If the - hardware does not support the respective audio matrix, or the - current video standard does not permit SAP the - :ref:`VIDIOC_S_MODULATOR ` ioctl shall return an ``EINVAL`` error code and - driver shall fall back to mono or stereo mode. - - - .. row 6 - - - ``V4L2_TUNER_SUB_RDS`` - - - 0x0010 - - - Enable the RDS encoder for a radio FM transmitter. + * - ``V4L2_TUNER_SUB_MONO`` + - 0x0001 + - Modulate channel 1 as mono audio, when the input has more + channels, a down-mix of channel 1 and 2. This flag does not + combine with ``V4L2_TUNER_SUB_STEREO`` or + ``V4L2_TUNER_SUB_LANG1``. + * - ``V4L2_TUNER_SUB_STEREO`` + - 0x0002 + - Modulate channel 1 and 2 as left and right channel of a stereo + audio signal. When the input has only one channel or two channels + and ``V4L2_TUNER_SUB_SAP`` is also set, channel 1 is encoded as + left and right channel. This flag does not combine with + ``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_LANG1``. When the + driver does not support stereo audio it shall fall back to mono. + * - ``V4L2_TUNER_SUB_LANG1`` + - 0x0008 + - Modulate channel 1 and 2 as primary and secondary language of a + bilingual audio signal. When the input has only one channel it is + used for both languages. It is not possible to encode the primary + or secondary language only. This flag does not combine with + ``V4L2_TUNER_SUB_MONO``, ``V4L2_TUNER_SUB_STEREO`` or + ``V4L2_TUNER_SUB_SAP``. If the hardware does not support the + respective audio matrix, or the current video standard does not + permit bilingual audio the :ref:`VIDIOC_S_MODULATOR ` ioctl shall + return an ``EINVAL`` error code and the driver shall fall back to mono + or stereo mode. + * - ``V4L2_TUNER_SUB_LANG2`` + - 0x0004 + - Same effect as ``V4L2_TUNER_SUB_SAP``. + * - ``V4L2_TUNER_SUB_SAP`` + - 0x0004 + - When combined with ``V4L2_TUNER_SUB_MONO`` the first channel is + encoded as mono audio, the last channel as Second Audio Program. + When the input has only one channel it is used for both audio + tracks. When the input has three channels the mono track is a + down-mix of channel 1 and 2. When combined with + ``V4L2_TUNER_SUB_STEREO`` channel 1 and 2 are encoded as left and + right stereo audio, channel 3 as Second Audio Program. When the + input has only two channels, the first is encoded as left and + right channel and the second as SAP. When the input has only one + channel it is used for all audio tracks. It is not possible to + encode a Second Audio Program only. This flag must combine with + ``V4L2_TUNER_SUB_MONO`` or ``V4L2_TUNER_SUB_STEREO``. If the + hardware does not support the respective audio matrix, or the + current video standard does not permit SAP the + :ref:`VIDIOC_S_MODULATOR ` ioctl shall return an ``EINVAL`` error code and + driver shall fall back to mono or stereo mode. + * - ``V4L2_TUNER_SUB_RDS`` + - 0x0010 + - Enable the RDS encoder for a radio FM transmitter. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-parm.rst b/Documentation/media/uapi/v4l/vidioc-g-parm.rst index eb68c34bb9ac..3b2e6e59a334 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-parm.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-parm.rst @@ -60,55 +60,30 @@ union holding separate parameters for input and output devices. :stub-columns: 0 :widths: 1 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - - - The buffer (stream) type, same as struct - :c:type:`v4l2_format` ``type``, set by the - application. See :c:type:`v4l2_buf_type` - - - .. row 2 - - - union - - - ``parm`` - - - - - - - - .. row 3 - - - - - struct :c:type:`v4l2_captureparm` - - - ``capture`` - - - Parameters for capture devices, used when ``type`` is - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``. - - - .. row 4 - - - - - struct :c:type:`v4l2_outputparm` - - - ``output`` - - - Parameters for output devices, used when ``type`` is - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``. - - - .. row 5 - - - - - __u8 - - - ``raw_data``\ [200] - - - A place holder for future extensions. + * - __u32 + - ``type`` + - + - The buffer (stream) type, same as struct + :c:type:`v4l2_format` ``type``, set by the + application. See :c:type:`v4l2_buf_type` + * - union + - ``parm`` + - + - + * - + - struct :c:type:`v4l2_captureparm` + - ``capture`` + - Parameters for capture devices, used when ``type`` is + ``V4L2_BUF_TYPE_VIDEO_CAPTURE``. + * - + - struct :c:type:`v4l2_outputparm` + - ``output`` + - Parameters for output devices, used when ``type`` is + ``V4L2_BUF_TYPE_VIDEO_OUTPUT``. + * - + - __u8 + - ``raw_data``\ [200] + - A place holder for future extensions. @@ -121,77 +96,47 @@ union holding separate parameters for input and output devices. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``capability`` + - See :ref:`parm-caps`. + * - __u32 + - ``capturemode`` + - Set by drivers and applications, see :ref:`parm-flags`. + * - struct :c:type:`v4l2_fract` + - ``timeperframe`` + - This is the desired period between successive frames captured by + the driver, in seconds. The field is intended to skip frames on + the driver side, saving I/O bandwidth. - - .. row 1 + Applications store here the desired frame period, drivers return + the actual frame period, which must be greater or equal to the + nominal frame period determined by the current video standard + (struct :c:type:`v4l2_standard` ``frameperiod`` + field). Changing the video standard (also implicitly by switching + the video input) may reset this parameter to the nominal frame + period. To reset manually applications can just set this field to + zero. - - __u32 - - - ``capability`` - - - See :ref:`parm-caps`. - - - .. row 2 - - - __u32 - - - ``capturemode`` - - - Set by drivers and applications, see :ref:`parm-flags`. - - - .. row 3 - - - struct :c:type:`v4l2_fract` - - - ``timeperframe`` - - - This is the desired period between successive frames captured by - the driver, in seconds. The field is intended to skip frames on - the driver side, saving I/O bandwidth. - - Applications store here the desired frame period, drivers return - the actual frame period, which must be greater or equal to the - nominal frame period determined by the current video standard - (struct :c:type:`v4l2_standard` ``frameperiod`` - field). Changing the video standard (also implicitly by switching - the video input) may reset this parameter to the nominal frame - period. To reset manually applications can just set this field to - zero. - - Drivers support this function only when they set the - ``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field. - - - .. row 4 - - - __u32 - - - ``extendedmode`` - - - Custom (driver specific) streaming parameters. When unused, - applications and drivers must set this field to zero. Applications - using this field should check the driver name and version, see - :ref:`querycap`. - - - .. row 5 - - - __u32 - - - ``readbuffers`` - - - Applications set this field to the desired number of buffers used - internally by the driver in :ref:`read() ` mode. - Drivers return the actual number of buffers. When an application - requests zero buffers, drivers should just return the current - setting rather than the minimum or an error code. For details see - :ref:`rw`. - - - .. row 6 - - - __u32 - - - ``reserved``\ [4] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + Drivers support this function only when they set the + ``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field. + * - __u32 + - ``extendedmode`` + - Custom (driver specific) streaming parameters. When unused, + applications and drivers must set this field to zero. Applications + using this field should check the driver name and version, see + :ref:`querycap`. + * - __u32 + - ``readbuffers`` + - Applications set this field to the desired number of buffers used + internally by the driver in :ref:`read() ` mode. + Drivers return the actual number of buffers. When an application + requests zero buffers, drivers should just return the current + setting rather than the minimum or an error code. For details see + :ref:`rw`. + * - __u32 + - ``reserved``\ [4] + - Reserved for future extensions. Drivers and applications must set + the array to zero. @@ -204,84 +149,51 @@ union holding separate parameters for input and output devices. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``capability`` + - See :ref:`parm-caps`. + * - __u32 + - ``outputmode`` + - Set by drivers and applications, see :ref:`parm-flags`. + * - struct :c:type:`v4l2_fract` + - ``timeperframe`` + - This is the desired period between successive frames output by the + driver, in seconds. + * - :cspan:`2` - - .. row 1 + The field is intended to repeat frames on the driver side in + :ref:`write() ` mode (in streaming mode timestamps + can be used to throttle the output), saving I/O bandwidth. - - __u32 + Applications store here the desired frame period, drivers return + the actual frame period, which must be greater or equal to the + nominal frame period determined by the current video standard + (struct :c:type:`v4l2_standard` ``frameperiod`` + field). Changing the video standard (also implicitly by switching + the video output) may reset this parameter to the nominal frame + period. To reset manually applications can just set this field to + zero. - - ``capability`` - - - See :ref:`parm-caps`. - - - .. row 2 - - - __u32 - - - ``outputmode`` - - - Set by drivers and applications, see :ref:`parm-flags`. - - - .. row 3 - - - struct :c:type:`v4l2_fract` - - - ``timeperframe`` - - - This is the desired period between successive frames output by the - driver, in seconds. - - - .. row 4 - - - :cspan:`2` - - The field is intended to repeat frames on the driver side in - :ref:`write() ` mode (in streaming mode timestamps - can be used to throttle the output), saving I/O bandwidth. - - Applications store here the desired frame period, drivers return - the actual frame period, which must be greater or equal to the - nominal frame period determined by the current video standard - (struct :c:type:`v4l2_standard` ``frameperiod`` - field). Changing the video standard (also implicitly by switching - the video output) may reset this parameter to the nominal frame - period. To reset manually applications can just set this field to - zero. - - Drivers support this function only when they set the - ``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field. - - - .. row 5 - - - __u32 - - - ``extendedmode`` - - - Custom (driver specific) streaming parameters. When unused, - applications and drivers must set this field to zero. Applications - using this field should check the driver name and version, see - :ref:`querycap`. - - - .. row 6 - - - __u32 - - - ``writebuffers`` - - - Applications set this field to the desired number of buffers used - internally by the driver in :ref:`write() ` mode. Drivers - return the actual number of buffers. When an application requests - zero buffers, drivers should just return the current setting - rather than the minimum or an error code. For details see - :ref:`rw`. - - - .. row 7 - - - __u32 - - - ``reserved``\ [4] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + Drivers support this function only when they set the + ``V4L2_CAP_TIMEPERFRAME`` flag in the ``capability`` field. + * - __u32 + - ``extendedmode`` + - Custom (driver specific) streaming parameters. When unused, + applications and drivers must set this field to zero. Applications + using this field should check the driver name and version, see + :ref:`querycap`. + * - __u32 + - ``writebuffers`` + - Applications set this field to the desired number of buffers used + internally by the driver in :ref:`write() ` mode. Drivers + return the actual number of buffers. When an application requests + zero buffers, drivers should just return the current setting + rather than the minimum or an error code. For details see + :ref:`rw`. + * - __u32 + - ``reserved``\ [4] + - Reserved for future extensions. Drivers and applications must set + the array to zero. @@ -294,15 +206,10 @@ union holding separate parameters for input and output devices. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_CAP_TIMEPERFRAME`` - - - 0x1000 - - - The frame skipping/repeating controlled by the ``timeperframe`` - field is supported. + * - ``V4L2_CAP_TIMEPERFRAME`` + - 0x1000 + - The frame skipping/repeating controlled by the ``timeperframe`` + field is supported. @@ -315,41 +222,36 @@ union holding separate parameters for input and output devices. :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_MODE_HIGHQUALITY`` + - 0x0001 + - High quality imaging mode. High quality mode is intended for still + imaging applications. The idea is to get the best possible image + quality that the hardware can deliver. It is not defined how the + driver writer may achieve that; it will depend on the hardware and + the ingenuity of the driver writer. High quality mode is a + different mode from the regular motion video capture modes. In + high quality mode: - - .. row 1 + - The driver may be able to capture higher resolutions than for + motion capture. - - ``V4L2_MODE_HIGHQUALITY`` + - The driver may support fewer pixel formats than motion capture + (eg; true color). - - 0x0001 + - The driver may capture and arithmetically combine multiple + successive fields or frames to remove color edge artifacts and + reduce the noise in the video data. - - High quality imaging mode. High quality mode is intended for still - imaging applications. The idea is to get the best possible image - quality that the hardware can deliver. It is not defined how the - driver writer may achieve that; it will depend on the hardware and - the ingenuity of the driver writer. High quality mode is a - different mode from the regular motion video capture modes. In - high quality mode: + - The driver may capture images in slices like a scanner in order + to handle larger format images than would otherwise be + possible. - - The driver may be able to capture higher resolutions than for - motion capture. + - An image capture operation may be significantly slower than + motion capture. - - The driver may support fewer pixel formats than motion capture - (eg; true color). + - Moving objects in the image might have excessive motion blur. - - The driver may capture and arithmetically combine multiple - successive fields or frames to remove color edge artifacts and - reduce the noise in the video data. - - - The driver may capture images in slices like a scanner in order - to handle larger format images than would otherwise be - possible. - - - An image capture operation may be significantly slower than - motion capture. - - - Moving objects in the image might have excessive motion blur. - - - Capture might only work through the :ref:`read() ` call. + - Capture might only work through the :ref:`read() ` call. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-priority.rst b/Documentation/media/uapi/v4l/vidioc-g-priority.rst index cbd2a3cbb18e..a763988f64e4 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-priority.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-priority.rst @@ -53,55 +53,30 @@ with a pointer to this variable. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - ``V4L2_PRIORITY_UNSET`` - - - 0 - - - - - - .. row 2 - - - ``V4L2_PRIORITY_BACKGROUND`` - - - 1 - - - Lowest priority, usually applications running in background, for - example monitoring VBI transmissions. A proxy application running - in user space will be necessary if multiple applications want to - read from a device at this priority. - - - .. row 3 - - - ``V4L2_PRIORITY_INTERACTIVE`` - - - 2 - - - - - - .. row 4 - - - ``V4L2_PRIORITY_DEFAULT`` - - - 2 - - - Medium priority, usually applications started and interactively - controlled by the user. For example TV viewers, Teletext browsers, - or just "panel" applications to change the channel or video - controls. This is the default priority unless an application - requests another. - - - .. row 5 - - - ``V4L2_PRIORITY_RECORD`` - - - 3 - - - Highest priority. Only one file descriptor can have this priority, - it blocks any other fd from changing device properties. Usually - applications which must not be interrupted, like video recording. + * - ``V4L2_PRIORITY_UNSET`` + - 0 + - + * - ``V4L2_PRIORITY_BACKGROUND`` + - 1 + - Lowest priority, usually applications running in background, for + example monitoring VBI transmissions. A proxy application running + in user space will be necessary if multiple applications want to + read from a device at this priority. + * - ``V4L2_PRIORITY_INTERACTIVE`` + - 2 + - + * - ``V4L2_PRIORITY_DEFAULT`` + - 2 + - Medium priority, usually applications started and interactively + controlled by the user. For example TV viewers, Teletext browsers, + or just "panel" applications to change the channel or video + controls. This is the default priority unless an application + requests another. + * - ``V4L2_PRIORITY_RECORD`` + - 3 + - Highest priority. Only one file descriptor can have this priority, + it blocks any other fd from changing device properties. Usually + applications which must not be interrupted, like video recording. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-selection.rst b/Documentation/media/uapi/v4l/vidioc-g-selection.rst index a687e236d0f1..3145a9166bad 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-selection.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-selection.rst @@ -149,50 +149,25 @@ Selection targets and flags are documented in :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``type`` - - - Type of the buffer (from enum - :c:type:`v4l2_buf_type`). - - - .. row 2 - - - __u32 - - - ``target`` - - - Used to select between - :ref:`cropping and composing rectangles `. - - - .. row 3 - - - __u32 - - - ``flags`` - - - Flags controlling the selection rectangle adjustments, refer to - :ref:`selection flags `. - - - .. row 4 - - - struct :c:type:`v4l2_rect` - - - ``r`` - - - The selection rectangle. - - - .. row 5 - - - __u32 - - - ``reserved[9]`` - - - Reserved fields for future use. Drivers and applications must zero - this array. + * - __u32 + - ``type`` + - Type of the buffer (from enum + :c:type:`v4l2_buf_type`). + * - __u32 + - ``target`` + - Used to select between + :ref:`cropping and composing rectangles `. + * - __u32 + - ``flags`` + - Flags controlling the selection rectangle adjustments, refer to + :ref:`selection flags `. + * - struct :c:type:`v4l2_rect` + - ``r`` + - The selection rectangle. + * - __u32 + - ``reserved[9]`` + - Reserved fields for future use. Drivers and applications must zero + this array. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst b/Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst index 04fae524850a..d7e2b2fa8b88 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst @@ -53,124 +53,67 @@ the sliced VBI API is unsupported or ``type`` is invalid. :stub-columns: 0 :widths: 3 3 2 2 2 + * - __u16 + - ``service_set`` + - :cspan:`2` A set of all data services supported by the driver. - - .. row 1 + Equal to the union of all elements of the ``service_lines`` array. + * - __u16 + - ``service_lines``\ [2][24] + - :cspan:`2` Each element of this array contains a set of data + services the hardware can look for or insert into a particular + scan line. Data services are defined in :ref:`vbi-services`. + Array indices map to ITU-R line numbers\ [#f1]_ as follows: + * - + - + - Element + - 525 line systems + - 625 line systems + * - + - + - ``service_lines``\ [0][1] + - 1 + - 1 + * - + - + - ``service_lines``\ [0][23] + - 23 + - 23 + * - + - + - ``service_lines``\ [1][1] + - 264 + - 314 + * - + - + - ``service_lines``\ [1][23] + - 286 + - 336 + * - + * - + - + - :cspan:`2` The number of VBI lines the hardware can capture or + output per frame, or the number of services it can identify on a + given line may be limited. For example on PAL line 16 the hardware + may be able to look for a VPS or Teletext signal, but not both at + the same time. Applications can learn about these limits using the + :ref:`VIDIOC_S_FMT ` ioctl as described in + :ref:`sliced`. + * - + * - + - + - :cspan:`2` Drivers must set ``service_lines`` [0][0] and + ``service_lines``\ [1][0] to zero. + * - __u32 + - ``type`` + - Type of the data stream, see :c:type:`v4l2_buf_type`. Should be + ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or + ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``. + * - __u32 + - ``reserved``\ [3] + - :cspan:`2` This array is reserved for future extensions. - - __u16 - - - ``service_set`` - - - :cspan:`2` A set of all data services supported by the driver. - - Equal to the union of all elements of the ``service_lines`` array. - - - .. row 2 - - - __u16 - - - ``service_lines``\ [2][24] - - - :cspan:`2` Each element of this array contains a set of data - services the hardware can look for or insert into a particular - scan line. Data services are defined in :ref:`vbi-services`. - Array indices map to ITU-R line numbers\ [#f1]_ as follows: - - - .. row 3 - - - - - - - Element - - - 525 line systems - - - 625 line systems - - - .. row 4 - - - - - - - ``service_lines``\ [0][1] - - - 1 - - - 1 - - - .. row 5 - - - - - - - ``service_lines``\ [0][23] - - - 23 - - - 23 - - - .. row 6 - - - - - - - ``service_lines``\ [1][1] - - - 264 - - - 314 - - - .. row 7 - - - - - - - ``service_lines``\ [1][23] - - - 286 - - - 336 - - - .. row 8 - - - - - - .. row 9 - - - - - - - :cspan:`2` The number of VBI lines the hardware can capture or - output per frame, or the number of services it can identify on a - given line may be limited. For example on PAL line 16 the hardware - may be able to look for a VPS or Teletext signal, but not both at - the same time. Applications can learn about these limits using the - :ref:`VIDIOC_S_FMT ` ioctl as described in - :ref:`sliced`. - - - .. row 10 - - - - - - .. row 11 - - - - - - - :cspan:`2` Drivers must set ``service_lines`` [0][0] and - ``service_lines``\ [1][0] to zero. - - - .. row 12 - - - __u32 - - - ``type`` - - - Type of the data stream, see :c:type:`v4l2_buf_type`. Should be - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``. - - - .. row 13 - - - __u32 - - - ``reserved``\ [3] - - - :cspan:`2` This array is reserved for future extensions. - - Applications and drivers must set it to zero. + Applications and drivers must set it to zero. .. [#f1] @@ -190,95 +133,50 @@ the sliced VBI API is unsupported or ``type`` is invalid. :stub-columns: 0 :widths: 2 1 1 2 2 + * - Symbol + - Value + - Reference + - Lines, usually + - Payload + * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) + - 0x0001 + - :ref:`ets300706`, - - .. row 1 + :ref:`itu653` + - PAL/SECAM line 7-22, 320-335 (second field 7-22) + - Last 42 of the 45 byte Teletext packet, that is without clock + run-in and framing code, lsb first transmitted. + * - ``V4L2_SLICED_VPS`` + - 0x0400 + - :ref:`ets300231` + - PAL line 16 + - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb + first transmitted. + * - ``V4L2_SLICED_CAPTION_525`` + - 0x1000 + - :ref:`cea608` + - NTSC line 21, 284 (second field 21) + - Two bytes in transmission order, including parity bit, lsb first + transmitted. + * - ``V4L2_SLICED_WSS_625`` + - 0x4000 + - :ref:`en300294`, - - Symbol + :ref:`itu1119` + - PAL/SECAM line 23 + - - - Value + :: - - Reference - - - Lines, usually - - - Payload - - - .. row 2 - - - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) - - - 0x0001 - - - :ref:`ets300706`, - - :ref:`itu653` - - - PAL/SECAM line 7-22, 320-335 (second field 7-22) - - - Last 42 of the 45 byte Teletext packet, that is without clock - run-in and framing code, lsb first transmitted. - - - .. row 3 - - - ``V4L2_SLICED_VPS`` - - - 0x0400 - - - :ref:`ets300231` - - - PAL line 16 - - - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb - first transmitted. - - - .. row 4 - - - ``V4L2_SLICED_CAPTION_525`` - - - 0x1000 - - - :ref:`cea608` - - - NTSC line 21, 284 (second field 21) - - - Two bytes in transmission order, including parity bit, lsb first - transmitted. - - - .. row 5 - - - ``V4L2_SLICED_WSS_625`` - - - 0x4000 - - - :ref:`en300294`, - - :ref:`itu1119` - - - PAL/SECAM line 23 - - - - - :: - - Byte 0 1 - msb lsb msb lsb - Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 - - - .. row 6 - - - ``V4L2_SLICED_VBI_525`` - - - 0x1000 - - - :cspan:`2` Set of services applicable to 525 line systems. - - - .. row 7 - - - ``V4L2_SLICED_VBI_625`` - - - 0x4401 - - - :cspan:`2` Set of services applicable to 625 line systems. + Byte 0 1 + msb lsb msb lsb + Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 + * - ``V4L2_SLICED_VBI_525`` + - 0x1000 + - :cspan:`2` Set of services applicable to 525 line systems. + * - ``V4L2_SLICED_VBI_625`` + - 0x4401 + - :cspan:`2` Set of services applicable to 625 line systems. .. raw:: latex diff --git a/Documentation/media/uapi/v4l/vidioc-g-tuner.rst b/Documentation/media/uapi/v4l/vidioc-g-tuner.rst index d0251a1b6303..e8aa8cd7065f 100644 --- a/Documentation/media/uapi/v4l/vidioc-g-tuner.rst +++ b/Documentation/media/uapi/v4l/vidioc-g-tuner.rst @@ -69,195 +69,117 @@ To change the radio frequency the :header-rows: 0 :stub-columns: 0 - - - .. row 1 - - - __u32 - - - ``index`` - - - :cspan:`1` Identifies the tuner, set by the application. - - - .. row 2 - - - __u8 - - - ``name``\ [32] - - - :cspan:`1` - - Name of the tuner, a NUL-terminated ASCII string. - - This information is intended for the user. - - - .. row 3 - - - __u32 - - - ``type`` - - - :cspan:`1` Type of the tuner, see :c:type:`v4l2_tuner_type`. - - - .. row 4 - - - __u32 - - - ``capability`` - - - :cspan:`1` - - Tuner capability flags, see :ref:`tuner-capability`. Audio flags - indicate the ability to decode audio subprograms. They will *not* - change, for example with the current video standard. - - When the structure refers to a radio tuner the - ``V4L2_TUNER_CAP_LANG1``, ``V4L2_TUNER_CAP_LANG2`` and - ``V4L2_TUNER_CAP_NORM`` flags can't be used. - - If multiple frequency bands are supported, then ``capability`` is - the union of all ``capability`` fields of each struct - :c:type:`v4l2_frequency_band`. - - - .. row 5 - - - __u32 - - - ``rangelow`` - - - :cspan:`1` The lowest tunable frequency in units of 62.5 kHz, or - if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units - of 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` - is set, in units of 1 Hz. If multiple frequency bands are - supported, then ``rangelow`` is the lowest frequency of all the - frequency bands. - - - .. row 6 - - - __u32 - - - ``rangehigh`` - - - :cspan:`1` The highest tunable frequency in units of 62.5 kHz, - or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in - units of 62.5 Hz, or if the ``capability`` flag - ``V4L2_TUNER_CAP_1HZ`` is set, in units of 1 Hz. If multiple - frequency bands are supported, then ``rangehigh`` is the highest - frequency of all the frequency bands. - - - .. row 7 - - - __u32 - - - ``rxsubchans`` - - - :cspan:`1` - - Some tuners or audio decoders can determine the received audio - subprograms by analyzing audio carriers, pilot tones or other - indicators. To pass this information drivers set flags defined in - :ref:`tuner-rxsubchans` in this field. For example: - - - .. row 8 - - - - - - - ``V4L2_TUNER_SUB_MONO`` - - - receiving mono audio - - - .. row 9 - - - - - - - ``STEREO | SAP`` - - - receiving stereo audio and a secondary audio program - - - .. row 10 - - - - - - - ``MONO | STEREO`` - - - receiving mono or stereo audio, the hardware cannot distinguish - - - .. row 11 - - - - - - - ``LANG1 | LANG2`` - - - receiving bilingual audio - - - .. row 12 - - - - - - - ``MONO | STEREO | LANG1 | LANG2`` - - - receiving mono, stereo or bilingual audio - - - .. row 13 - - - - - - - :cspan:`1` - - When the ``V4L2_TUNER_CAP_STEREO``, ``_LANG1``, ``_LANG2`` or - ``_SAP`` flag is cleared in the ``capability`` field, the - corresponding ``V4L2_TUNER_SUB_`` flag must not be set here. - - This field is valid only if this is the tuner of the current video - input, or when the structure refers to a radio tuner. - - - .. row 14 - - - __u32 - - - ``audmode`` - - - :cspan:`1` - - The selected audio mode, see :ref:`tuner-audmode` for valid - values. The audio mode does not affect audio subprogram detection, - and like a :ref:`control` it does not automatically - change unless the requested mode is invalid or unsupported. See - :ref:`tuner-matrix` for possible results when the selected and - received audio programs do not match. - - Currently this is the only field of struct - struct :c:type:`v4l2_tuner` applications can change. - - - .. row 15 - - - __u32 - - - ``signal`` - - - :cspan:`1` The signal strength if known. - - Ranging from 0 to 65535. Higher values indicate a better signal. - - - .. row 16 - - - __s32 - - - ``afc`` - - - :cspan:`1` Automatic frequency control. - - When the ``afc`` value is negative, the frequency is too - low, when positive too high. - - - .. row 17 - - - __u32 - - - ``reserved``\ [4] - - - :cspan:`1` Reserved for future extensions. - - Drivers and applications must set the array to zero. + * - __u32 + - ``index`` + - :cspan:`1` Identifies the tuner, set by the application. + * - __u8 + - ``name``\ [32] + - :cspan:`1` + + Name of the tuner, a NUL-terminated ASCII string. + + This information is intended for the user. + * - __u32 + - ``type`` + - :cspan:`1` Type of the tuner, see :c:type:`v4l2_tuner_type`. + * - __u32 + - ``capability`` + - :cspan:`1` + + Tuner capability flags, see :ref:`tuner-capability`. Audio flags + indicate the ability to decode audio subprograms. They will *not* + change, for example with the current video standard. + + When the structure refers to a radio tuner the + ``V4L2_TUNER_CAP_LANG1``, ``V4L2_TUNER_CAP_LANG2`` and + ``V4L2_TUNER_CAP_NORM`` flags can't be used. + + If multiple frequency bands are supported, then ``capability`` is + the union of all ``capability`` fields of each struct + :c:type:`v4l2_frequency_band`. + * - __u32 + - ``rangelow`` + - :cspan:`1` The lowest tunable frequency in units of 62.5 kHz, or + if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in units + of 62.5 Hz, or if the ``capability`` flag ``V4L2_TUNER_CAP_1HZ`` + is set, in units of 1 Hz. If multiple frequency bands are + supported, then ``rangelow`` is the lowest frequency of all the + frequency bands. + * - __u32 + - ``rangehigh`` + - :cspan:`1` The highest tunable frequency in units of 62.5 kHz, + or if the ``capability`` flag ``V4L2_TUNER_CAP_LOW`` is set, in + units of 62.5 Hz, or if the ``capability`` flag + ``V4L2_TUNER_CAP_1HZ`` is set, in units of 1 Hz. If multiple + frequency bands are supported, then ``rangehigh`` is the highest + frequency of all the frequency bands. + * - __u32 + - ``rxsubchans`` + - :cspan:`1` + + Some tuners or audio decoders can determine the received audio + subprograms by analyzing audio carriers, pilot tones or other + indicators. To pass this information drivers set flags defined in + :ref:`tuner-rxsubchans` in this field. For example: + * - + - + - ``V4L2_TUNER_SUB_MONO`` + - receiving mono audio + * - + - + - ``STEREO | SAP`` + - receiving stereo audio and a secondary audio program + * - + - + - ``MONO | STEREO`` + - receiving mono or stereo audio, the hardware cannot distinguish + * - + - + - ``LANG1 | LANG2`` + - receiving bilingual audio + * - + - + - ``MONO | STEREO | LANG1 | LANG2`` + - receiving mono, stereo or bilingual audio + * - + - + - :cspan:`1` + + When the ``V4L2_TUNER_CAP_STEREO``, ``_LANG1``, ``_LANG2`` or + ``_SAP`` flag is cleared in the ``capability`` field, the + corresponding ``V4L2_TUNER_SUB_`` flag must not be set here. + + This field is valid only if this is the tuner of the current video + input, or when the structure refers to a radio tuner. + * - __u32 + - ``audmode`` + - :cspan:`1` + + The selected audio mode, see :ref:`tuner-audmode` for valid + values. The audio mode does not affect audio subprogram detection, + and like a :ref:`control` it does not automatically + change unless the requested mode is invalid or unsupported. See + :ref:`tuner-matrix` for possible results when the selected and + received audio programs do not match. + + Currently this is the only field of struct + struct :c:type:`v4l2_tuner` applications can change. + * - __u32 + - ``signal`` + - :cspan:`1` The signal strength if known. + + Ranging from 0 to 65535. Higher values indicate a better signal. + * - __s32 + - ``afc`` + - :cspan:`1` Automatic frequency control. + + When the ``afc`` value is negative, the frequency is too + low, when positive too high. + * - __u32 + - ``reserved``\ [4] + - :cspan:`1` Reserved for future extensions. + + Drivers and applications must set the array to zero. @@ -270,39 +192,19 @@ To change the radio frequency the :stub-columns: 0 :widths: 3 1 6 - - - .. row 1 - - - ``V4L2_TUNER_RADIO`` - - - 1 - - - Tuner supports radio - - - .. row 2 - - - ``V4L2_TUNER_ANALOG_TV`` - - - 2 - - - Tuner supports analog TV - - - .. row 3 - - - ``V4L2_TUNER_SDR`` - - - 4 - - - Tuner controls the A/D and/or D/A block of a - Sofware Digital Radio (SDR) - - - .. row 4 - - - ``V4L2_TUNER_RF`` - - - 5 - - - Tuner controls the RF part of a Sofware Digital Radio (SDR) + * - ``V4L2_TUNER_RADIO`` + - 1 + - Tuner supports radio + * - ``V4L2_TUNER_ANALOG_TV`` + - 2 + - Tuner supports analog TV + * - ``V4L2_TUNER_SDR`` + - 4 + - Tuner controls the A/D and/or D/A block of a + Sofware Digital Radio (SDR) + * - ``V4L2_TUNER_RF`` + - 5 + - Tuner controls the RF part of a Sofware Digital Radio (SDR) .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| @@ -316,154 +218,84 @@ To change the radio frequency the :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_TUNER_CAP_LOW`` + - 0x0001 + - When set, tuning frequencies are expressed in units of 62.5 Hz + instead of 62.5 kHz. + * - ``V4L2_TUNER_CAP_NORM`` + - 0x0002 + - This is a multi-standard tuner; the video standard can or must be + switched. (B/G PAL tuners for example are typically not considered + multi-standard because the video standard is automatically + determined from the frequency band.) The set of supported video + standards is available from the struct + :c:type:`v4l2_input` pointing to this tuner, see the + description of ioctl :ref:`VIDIOC_ENUMINPUT` + for details. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this + capability. + * - ``V4L2_TUNER_CAP_HWSEEK_BOUNDED`` + - 0x0004 + - If set, then this tuner supports the hardware seek functionality + where the seek stops when it reaches the end of the frequency + range. + * - ``V4L2_TUNER_CAP_HWSEEK_WRAP`` + - 0x0008 + - If set, then this tuner supports the hardware seek functionality + where the seek wraps around when it reaches the end of the + frequency range. + * - ``V4L2_TUNER_CAP_STEREO`` + - 0x0010 + - Stereo audio reception is supported. + * - ``V4L2_TUNER_CAP_LANG1`` + - 0x0040 + - Reception of the primary language of a bilingual audio program is + supported. Bilingual audio is a feature of two-channel systems, + transmitting the primary language monaural on the main audio + carrier and a secondary language monaural on a second carrier. + Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability. + * - ``V4L2_TUNER_CAP_LANG2`` + - 0x0020 + - Reception of the secondary language of a bilingual audio program + is supported. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this + capability. + * - ``V4L2_TUNER_CAP_SAP`` + - 0x0020 + - Reception of a secondary audio program is supported. This is a + feature of the BTSC system which accompanies the NTSC video + standard. Two audio carriers are available for mono or stereo + transmissions of a primary language, and an independent third + carrier for a monaural secondary language. Only + ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability. - - .. row 1 + .. note:: - - ``V4L2_TUNER_CAP_LOW`` - - - 0x0001 - - - When set, tuning frequencies are expressed in units of 62.5 Hz - instead of 62.5 kHz. - - - .. row 2 - - - ``V4L2_TUNER_CAP_NORM`` - - - 0x0002 - - - This is a multi-standard tuner; the video standard can or must be - switched. (B/G PAL tuners for example are typically not considered - multi-standard because the video standard is automatically - determined from the frequency band.) The set of supported video - standards is available from the struct - :c:type:`v4l2_input` pointing to this tuner, see the - description of ioctl :ref:`VIDIOC_ENUMINPUT` - for details. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this - capability. - - - .. row 3 - - - ``V4L2_TUNER_CAP_HWSEEK_BOUNDED`` - - - 0x0004 - - - If set, then this tuner supports the hardware seek functionality - where the seek stops when it reaches the end of the frequency - range. - - - .. row 4 - - - ``V4L2_TUNER_CAP_HWSEEK_WRAP`` - - - 0x0008 - - - If set, then this tuner supports the hardware seek functionality - where the seek wraps around when it reaches the end of the - frequency range. - - - .. row 5 - - - ``V4L2_TUNER_CAP_STEREO`` - - - 0x0010 - - - Stereo audio reception is supported. - - - .. row 6 - - - ``V4L2_TUNER_CAP_LANG1`` - - - 0x0040 - - - Reception of the primary language of a bilingual audio program is - supported. Bilingual audio is a feature of two-channel systems, - transmitting the primary language monaural on the main audio - carrier and a secondary language monaural on a second carrier. - Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability. - - - .. row 7 - - - ``V4L2_TUNER_CAP_LANG2`` - - - 0x0020 - - - Reception of the secondary language of a bilingual audio program - is supported. Only ``V4L2_TUNER_ANALOG_TV`` tuners can have this - capability. - - - .. row 8 - - - ``V4L2_TUNER_CAP_SAP`` - - - 0x0020 - - - Reception of a secondary audio program is supported. This is a - feature of the BTSC system which accompanies the NTSC video - standard. Two audio carriers are available for mono or stereo - transmissions of a primary language, and an independent third - carrier for a monaural secondary language. Only - ``V4L2_TUNER_ANALOG_TV`` tuners can have this capability. - - .. note:: - - The ``V4L2_TUNER_CAP_LANG2`` and ``V4L2_TUNER_CAP_SAP`` - flags are synonyms. ``V4L2_TUNER_CAP_SAP`` applies when the tuner - supports the ``V4L2_STD_NTSC_M`` video standard. - - - .. row 9 - - - ``V4L2_TUNER_CAP_RDS`` - - - 0x0080 - - - RDS capture is supported. This capability is only valid for radio - tuners. - - - .. row 10 - - - ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` - - - 0x0100 - - - The RDS data is passed as unparsed RDS blocks. - - - .. row 11 - - - ``V4L2_TUNER_CAP_RDS_CONTROLS`` - - - 0x0200 - - - The RDS data is parsed by the hardware and set via controls. - - - .. row 12 - - - ``V4L2_TUNER_CAP_FREQ_BANDS`` - - - 0x0400 - - - The :ref:`VIDIOC_ENUM_FREQ_BANDS` - ioctl can be used to enumerate the available frequency bands. - - - .. row 13 - - - ``V4L2_TUNER_CAP_HWSEEK_PROG_LIM`` - - - 0x0800 - - - The range to search when using the hardware seek functionality is - programmable, see - :ref:`VIDIOC_S_HW_FREQ_SEEK` for - details. - - - .. row 14 - - - ``V4L2_TUNER_CAP_1HZ`` - - - 0x1000 - - - When set, tuning frequencies are expressed in units of 1 Hz - instead of 62.5 kHz. + The ``V4L2_TUNER_CAP_LANG2`` and ``V4L2_TUNER_CAP_SAP`` + flags are synonyms. ``V4L2_TUNER_CAP_SAP`` applies when the tuner + supports the ``V4L2_STD_NTSC_M`` video standard. + * - ``V4L2_TUNER_CAP_RDS`` + - 0x0080 + - RDS capture is supported. This capability is only valid for radio + tuners. + * - ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` + - 0x0100 + - The RDS data is passed as unparsed RDS blocks. + * - ``V4L2_TUNER_CAP_RDS_CONTROLS`` + - 0x0200 + - The RDS data is parsed by the hardware and set via controls. + * - ``V4L2_TUNER_CAP_FREQ_BANDS`` + - 0x0400 + - The :ref:`VIDIOC_ENUM_FREQ_BANDS` + ioctl can be used to enumerate the available frequency bands. + * - ``V4L2_TUNER_CAP_HWSEEK_PROG_LIM`` + - 0x0800 + - The range to search when using the hardware seek functionality is + programmable, see + :ref:`VIDIOC_S_HW_FREQ_SEEK` for + details. + * - ``V4L2_TUNER_CAP_1HZ`` + - 0x1000 + - When set, tuning frequencies are expressed in units of 1 Hz + instead of 62.5 kHz. @@ -476,63 +308,33 @@ To change the radio frequency the :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_TUNER_SUB_MONO`` + - 0x0001 + - The tuner receives a mono audio signal. + * - ``V4L2_TUNER_SUB_STEREO`` + - 0x0002 + - The tuner receives a stereo audio signal. + * - ``V4L2_TUNER_SUB_LANG1`` + - 0x0008 + - The tuner receives the primary language of a bilingual audio + signal. Drivers must clear this flag when the current video + standard is ``V4L2_STD_NTSC_M``. + * - ``V4L2_TUNER_SUB_LANG2`` + - 0x0004 + - The tuner receives the secondary language of a bilingual audio + signal (or a second audio program). + * - ``V4L2_TUNER_SUB_SAP`` + - 0x0004 + - The tuner receives a Second Audio Program. - - .. row 1 + .. note:: - - ``V4L2_TUNER_SUB_MONO`` - - - 0x0001 - - - The tuner receives a mono audio signal. - - - .. row 2 - - - ``V4L2_TUNER_SUB_STEREO`` - - - 0x0002 - - - The tuner receives a stereo audio signal. - - - .. row 3 - - - ``V4L2_TUNER_SUB_LANG1`` - - - 0x0008 - - - The tuner receives the primary language of a bilingual audio - signal. Drivers must clear this flag when the current video - standard is ``V4L2_STD_NTSC_M``. - - - .. row 4 - - - ``V4L2_TUNER_SUB_LANG2`` - - - 0x0004 - - - The tuner receives the secondary language of a bilingual audio - signal (or a second audio program). - - - .. row 5 - - - ``V4L2_TUNER_SUB_SAP`` - - - 0x0004 - - - The tuner receives a Second Audio Program. - - .. note:: - - The ``V4L2_TUNER_SUB_LANG2`` and ``V4L2_TUNER_SUB_SAP`` - flags are synonyms. The ``V4L2_TUNER_SUB_SAP`` flag applies - when the current video standard is ``V4L2_STD_NTSC_M``. - - - .. row 6 - - - ``V4L2_TUNER_SUB_RDS`` - - - 0x0010 - - - The tuner receives an RDS channel. + The ``V4L2_TUNER_SUB_LANG2`` and ``V4L2_TUNER_SUB_SAP`` + flags are synonyms. The ``V4L2_TUNER_SUB_SAP`` flag applies + when the current video standard is ``V4L2_STD_NTSC_M``. + * - ``V4L2_TUNER_SUB_RDS`` + - 0x0010 + - The tuner receives an RDS channel. @@ -545,78 +347,48 @@ To change the radio frequency the :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_TUNER_MODE_MONO`` + - 0 + - Play mono audio. When the tuner receives a stereo signal this a + down-mix of the left and right channel. When the tuner receives a + bilingual or SAP signal this mode selects the primary language. + * - ``V4L2_TUNER_MODE_STEREO`` + - 1 + - Play stereo audio. When the tuner receives bilingual audio it may + play different languages on the left and right channel or the + primary language is played on both channels. - - .. row 1 + Playing different languages in this mode is deprecated. New + drivers should do this only in ``MODE_LANG1_LANG2``. - - ``V4L2_TUNER_MODE_MONO`` + When the tuner receives no stereo signal or does not support + stereo reception the driver shall fall back to ``MODE_MONO``. + * - ``V4L2_TUNER_MODE_LANG1`` + - 3 + - Play the primary language, mono or stereo. Only + ``V4L2_TUNER_ANALOG_TV`` tuners support this mode. + * - ``V4L2_TUNER_MODE_LANG2`` + - 2 + - Play the secondary language, mono. When the tuner receives no + bilingual audio or SAP, or their reception is not supported the + driver shall fall back to mono or stereo mode. Only + ``V4L2_TUNER_ANALOG_TV`` tuners support this mode. + * - ``V4L2_TUNER_MODE_SAP`` + - 2 + - Play the Second Audio Program. When the tuner receives no + bilingual audio or SAP, or their reception is not supported the + driver shall fall back to mono or stereo mode. Only + ``V4L2_TUNER_ANALOG_TV`` tuners support this mode. - - 0 - - - Play mono audio. When the tuner receives a stereo signal this a - down-mix of the left and right channel. When the tuner receives a - bilingual or SAP signal this mode selects the primary language. - - - .. row 2 - - - ``V4L2_TUNER_MODE_STEREO`` - - - 1 - - - Play stereo audio. When the tuner receives bilingual audio it may - play different languages on the left and right channel or the - primary language is played on both channels. - - Playing different languages in this mode is deprecated. New - drivers should do this only in ``MODE_LANG1_LANG2``. - - When the tuner receives no stereo signal or does not support - stereo reception the driver shall fall back to ``MODE_MONO``. - - - .. row 3 - - - ``V4L2_TUNER_MODE_LANG1`` - - - 3 - - - Play the primary language, mono or stereo. Only - ``V4L2_TUNER_ANALOG_TV`` tuners support this mode. - - - .. row 4 - - - ``V4L2_TUNER_MODE_LANG2`` - - - 2 - - - Play the secondary language, mono. When the tuner receives no - bilingual audio or SAP, or their reception is not supported the - driver shall fall back to mono or stereo mode. Only - ``V4L2_TUNER_ANALOG_TV`` tuners support this mode. - - - .. row 5 - - - ``V4L2_TUNER_MODE_SAP`` - - - 2 - - - Play the Second Audio Program. When the tuner receives no - bilingual audio or SAP, or their reception is not supported the - driver shall fall back to mono or stereo mode. Only - ``V4L2_TUNER_ANALOG_TV`` tuners support this mode. - - .. note:: The ``V4L2_TUNER_MODE_LANG2`` and ``V4L2_TUNER_MODE_SAP`` - are synonyms. - - - .. row 6 - - - ``V4L2_TUNER_MODE_LANG1_LANG2`` - - - 4 - - - Play the primary language on the left channel, the secondary - language on the right channel. When the tuner receives no - bilingual audio or SAP, it shall fall back to ``MODE_LANG1`` or - ``MODE_MONO``. Only ``V4L2_TUNER_ANALOG_TV`` tuners support this - mode. + .. note:: The ``V4L2_TUNER_MODE_LANG2`` and ``V4L2_TUNER_MODE_SAP`` + are synonyms. + * - ``V4L2_TUNER_MODE_LANG1_LANG2`` + - 4 + - Play the primary language on the left channel, the secondary + language on the right channel. When the tuner receives no + bilingual audio or SAP, it shall fall back to ``MODE_LANG1`` or + ``MODE_MONO``. Only ``V4L2_TUNER_ANALOG_TV`` tuners support this + mode. .. raw:: latex @@ -628,95 +400,44 @@ To change the radio frequency the :header-rows: 2 :stub-columns: 0 - - - .. row 1 - - - - - :cspan:`5` Selected ``V4L2_TUNER_MODE_`` - - - .. row 2 - - - Received ``V4L2_TUNER_SUB_`` - - - ``MONO`` - - - ``STEREO`` - - - ``LANG1`` - - - ``LANG2 = SAP`` - - - ``LANG1_LANG2``\ [#f1]_ - - - .. row 3 - - - ``MONO`` - - - Mono - - - Mono/Mono - - - Mono - - - Mono - - - Mono/Mono - - - .. row 4 - - - ``MONO | SAP`` - - - Mono - - - Mono/Mono - - - Mono - - - SAP - - - Mono/SAP (preferred) or Mono/Mono - - - .. row 5 - - - ``STEREO`` - - - L+R - - - L/R - - - Stereo L/R (preferred) or Mono L+R - - - Stereo L/R (preferred) or Mono L+R - - - L/R (preferred) or L+R/L+R - - - .. row 6 - - - ``STEREO | SAP`` - - - L+R - - - L/R - - - Stereo L/R (preferred) or Mono L+R - - - SAP - - - L+R/SAP (preferred) or L/R or L+R/L+R - - - .. row 7 - - - ``LANG1 | LANG2`` - - - Language 1 - - - Lang1/Lang2 (deprecated [#f2]_) or Lang1/Lang1 - - - Language 1 - - - Language 2 - - - Lang1/Lang2 (preferred) or Lang1/Lang1 + * - + - :cspan:`5` Selected ``V4L2_TUNER_MODE_`` + * - Received ``V4L2_TUNER_SUB_`` + - ``MONO`` + - ``STEREO`` + - ``LANG1`` + - ``LANG2 = SAP`` + - ``LANG1_LANG2``\ [#f1]_ + * - ``MONO`` + - Mono + - Mono/Mono + - Mono + - Mono + - Mono/Mono + * - ``MONO | SAP`` + - Mono + - Mono/Mono + - Mono + - SAP + - Mono/SAP (preferred) or Mono/Mono + * - ``STEREO`` + - L+R + - L/R + - Stereo L/R (preferred) or Mono L+R + - Stereo L/R (preferred) or Mono L+R + - L/R (preferred) or L+R/L+R + * - ``STEREO | SAP`` + - L+R + - L/R + - Stereo L/R (preferred) or Mono L+R + - SAP + - L+R/SAP (preferred) or L/R or L+R/L+R + * - ``LANG1 | LANG2`` + - Language 1 + - Lang1/Lang2 (deprecated [#f2]_) or Lang1/Lang1 + - Language 1 + - Language 2 + - Lang1/Lang2 (preferred) or Lang1/Lang1 .. raw:: latex diff --git a/Documentation/media/uapi/v4l/vidioc-querycap.rst b/Documentation/media/uapi/v4l/vidioc-querycap.rst index f2785cad2e57..165d8314327e 100644 --- a/Documentation/media/uapi/v4l/vidioc-querycap.rst +++ b/Documentation/media/uapi/v4l/vidioc-querycap.rst @@ -48,123 +48,86 @@ specification the ioctl returns an ``EINVAL`` error code. :stub-columns: 0 :widths: 3 4 20 - - .. row 1 + * - __u8 + - ``driver``\ [16] + - Name of the driver, a unique NUL-terminated ASCII string. For + example: "bttv". Driver specific applications can use this + information to verify the driver identity. It is also useful to + work around known bugs, or to identify drivers in error reports. - - __u8 + Storing strings in fixed sized arrays is bad practice but + unavoidable here. Drivers and applications should take precautions + to never read or write beyond the end of the array and to make + sure the strings are properly NUL-terminated. + * - __u8 + - ``card``\ [32] + - Name of the device, a NUL-terminated UTF-8 string. For example: + "Yoyodyne TV/FM". One driver may support different brands or + models of video hardware. This information is intended for users, + for example in a menu of available devices. Since multiple TV + cards of the same brand may be installed which are supported by + the same driver, this name should be combined with the character + device file name (e. g. ``/dev/video2``) or the ``bus_info`` + string to avoid ambiguities. + * - __u8 + - ``bus_info``\ [32] + - Location of the device in the system, a NUL-terminated ASCII + string. For example: "PCI:0000:05:06.0". This information is + intended for users, to distinguish multiple identical devices. If + no such information is available the field must simply count the + devices controlled by the driver ("platform:vivi-000"). The + bus_info must start with "PCI:" for PCI boards, "PCIe:" for PCI + Express boards, "usb-" for USB devices, "I2C:" for i2c devices, + "ISA:" for ISA devices, "parport" for parallel port devices and + "platform:" for platform devices. + * - __u32 + - ``version`` + - Version number of the driver. - - ``driver``\ [16] + Starting with kernel 3.1, the version reported is provided by the + V4L2 subsystem following the kernel numbering scheme. However, it + may not always return the same version as the kernel if, for + example, a stable or distribution-modified kernel uses the V4L2 + stack from a newer kernel. - - Name of the driver, a unique NUL-terminated ASCII string. For - example: "bttv". Driver specific applications can use this - information to verify the driver identity. It is also useful to - work around known bugs, or to identify drivers in error reports. + The version number is formatted using the ``KERNEL_VERSION()`` + macro: + * - :cspan:`2` - Storing strings in fixed sized arrays is bad practice but - unavoidable here. Drivers and applications should take precautions - to never read or write beyond the end of the array and to make - sure the strings are properly NUL-terminated. + ``#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))`` - - .. row 2 + ``__u32 version = KERNEL_VERSION(0, 8, 1);`` - - __u8 + ``printf ("Version: %u.%u.%u\\n",`` - - ``card``\ [32] - - - Name of the device, a NUL-terminated UTF-8 string. For example: - "Yoyodyne TV/FM". One driver may support different brands or - models of video hardware. This information is intended for users, - for example in a menu of available devices. Since multiple TV - cards of the same brand may be installed which are supported by - the same driver, this name should be combined with the character - device file name (e. g. ``/dev/video2``) or the ``bus_info`` - string to avoid ambiguities. - - - .. row 3 - - - __u8 - - - ``bus_info``\ [32] - - - Location of the device in the system, a NUL-terminated ASCII - string. For example: "PCI:0000:05:06.0". This information is - intended for users, to distinguish multiple identical devices. If - no such information is available the field must simply count the - devices controlled by the driver ("platform:vivi-000"). The - bus_info must start with "PCI:" for PCI boards, "PCIe:" for PCI - Express boards, "usb-" for USB devices, "I2C:" for i2c devices, - "ISA:" for ISA devices, "parport" for parallel port devices and - "platform:" for platform devices. - - - .. row 4 - - - __u32 - - - ``version`` - - - Version number of the driver. - - Starting with kernel 3.1, the version reported is provided by the - V4L2 subsystem following the kernel numbering scheme. However, it - may not always return the same version as the kernel if, for - example, a stable or distribution-modified kernel uses the V4L2 - stack from a newer kernel. - - The version number is formatted using the ``KERNEL_VERSION()`` - macro: - - - .. row 5 - - - :cspan:`2` - - ``#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))`` - - ``__u32 version = KERNEL_VERSION(0, 8, 1);`` - - ``printf ("Version: %u.%u.%u\\n",`` - - ``(version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);`` - - - .. row 6 - - - __u32 - - - ``capabilities`` - - - Available capabilities of the physical device as a whole, see - :ref:`device-capabilities`. The same physical device can export - multiple devices in /dev (e.g. /dev/videoX, /dev/vbiY and - /dev/radioZ). The ``capabilities`` field should contain a union of - all capabilities available around the several V4L2 devices - exported to userspace. For all those devices the ``capabilities`` - field returns the same set of capabilities. This allows - applications to open just one of the devices (typically the video - device) and discover whether video, vbi and/or radio are also - supported. - - - .. row 7 - - - __u32 - - - ``device_caps`` - - - Device capabilities of the opened device, see - :ref:`device-capabilities`. Should contain the available - capabilities of that specific device node. So, for example, - ``device_caps`` of a radio device will only contain radio related - capabilities and no video or vbi capabilities. This field is only - set if the ``capabilities`` field contains the - ``V4L2_CAP_DEVICE_CAPS`` capability. Only the ``capabilities`` - field can have the ``V4L2_CAP_DEVICE_CAPS`` capability, - ``device_caps`` will never set ``V4L2_CAP_DEVICE_CAPS``. - - - .. row 8 - - - __u32 - - - ``reserved``\ [3] - - - Reserved for future extensions. Drivers must set this array to - zero. + ``(version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);`` + * - __u32 + - ``capabilities`` + - Available capabilities of the physical device as a whole, see + :ref:`device-capabilities`. The same physical device can export + multiple devices in /dev (e.g. /dev/videoX, /dev/vbiY and + /dev/radioZ). The ``capabilities`` field should contain a union of + all capabilities available around the several V4L2 devices + exported to userspace. For all those devices the ``capabilities`` + field returns the same set of capabilities. This allows + applications to open just one of the devices (typically the video + device) and discover whether video, vbi and/or radio are also + supported. + * - __u32 + - ``device_caps`` + - Device capabilities of the opened device, see + :ref:`device-capabilities`. Should contain the available + capabilities of that specific device node. So, for example, + ``device_caps`` of a radio device will only contain radio related + capabilities and no video or vbi capabilities. This field is only + set if the ``capabilities`` field contains the + ``V4L2_CAP_DEVICE_CAPS`` capability. Only the ``capabilities`` + field can have the ``V4L2_CAP_DEVICE_CAPS`` capability, + ``device_caps`` will never set ``V4L2_CAP_DEVICE_CAPS``. + * - __u32 + - ``reserved``\ [3] + - Reserved for future extensions. Drivers must set this array to + zero. @@ -179,252 +142,118 @@ specification the ioctl returns an ``EINVAL`` error code. :stub-columns: 0 :widths: 3 1 4 - - .. row 1 - - - ``V4L2_CAP_VIDEO_CAPTURE`` - - - 0x00000001 - - - The device supports the single-planar API through the - :ref:`Video Capture ` interface. - - - .. row 2 - - - ``V4L2_CAP_VIDEO_CAPTURE_MPLANE`` - - - 0x00001000 - - - The device supports the :ref:`multi-planar API ` - through the :ref:`Video Capture ` interface. - - - .. row 3 - - - ``V4L2_CAP_VIDEO_OUTPUT`` - - - 0x00000002 - - - The device supports the single-planar API through the - :ref:`Video Output ` interface. - - - .. row 4 - - - ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` - - - 0x00002000 - - - The device supports the :ref:`multi-planar API ` - through the :ref:`Video Output ` interface. - - - .. row 5 - - - ``V4L2_CAP_VIDEO_M2M`` - - - 0x00004000 - - - The device supports the single-planar API through the Video - Memory-To-Memory interface. - - - .. row 6 - - - ``V4L2_CAP_VIDEO_M2M_MPLANE`` - - - 0x00008000 - - - The device supports the :ref:`multi-planar API ` - through the Video Memory-To-Memory interface. - - - .. row 7 - - - ``V4L2_CAP_VIDEO_OVERLAY`` - - - 0x00000004 - - - The device supports the :ref:`Video Overlay ` - interface. A video overlay device typically stores captured images - directly in the video memory of a graphics card, with hardware - clipping and scaling. - - - .. row 8 - - - ``V4L2_CAP_VBI_CAPTURE`` - - - 0x00000010 - - - The device supports the :ref:`Raw VBI Capture ` - interface, providing Teletext and Closed Caption data. - - - .. row 9 - - - ``V4L2_CAP_VBI_OUTPUT`` - - - 0x00000020 - - - The device supports the :ref:`Raw VBI Output ` - interface. - - - .. row 10 - - - ``V4L2_CAP_SLICED_VBI_CAPTURE`` - - - 0x00000040 - - - The device supports the :ref:`Sliced VBI Capture ` - interface. - - - .. row 11 - - - ``V4L2_CAP_SLICED_VBI_OUTPUT`` - - - 0x00000080 - - - The device supports the :ref:`Sliced VBI Output ` - interface. - - - .. row 12 - - - ``V4L2_CAP_RDS_CAPTURE`` - - - 0x00000100 - - - The device supports the :ref:`RDS ` capture interface. - - - .. row 13 - - - ``V4L2_CAP_VIDEO_OUTPUT_OVERLAY`` - - - 0x00000200 - - - The device supports the :ref:`Video Output Overlay ` (OSD) - interface. Unlike the *Video Overlay* interface, this is a - secondary function of video output devices and overlays an image - onto an outgoing video signal. When the driver sets this flag, it - must clear the ``V4L2_CAP_VIDEO_OVERLAY`` flag and vice - versa. [#f1]_ - - - .. row 14 - - - ``V4L2_CAP_HW_FREQ_SEEK`` - - - 0x00000400 - - - The device supports the - :ref:`VIDIOC_S_HW_FREQ_SEEK` ioctl - for hardware frequency seeking. - - - .. row 15 - - - ``V4L2_CAP_RDS_OUTPUT`` - - - 0x00000800 - - - The device supports the :ref:`RDS ` output interface. - - - .. row 16 - - - ``V4L2_CAP_TUNER`` - - - 0x00010000 - - - The device has some sort of tuner to receive RF-modulated video - signals. For more information about tuner programming see - :ref:`tuner`. - - - .. row 17 - - - ``V4L2_CAP_AUDIO`` - - - 0x00020000 - - - The device has audio inputs or outputs. It may or may not support - audio recording or playback, in PCM or compressed formats. PCM - audio support must be implemented as ALSA or OSS interface. For - more information on audio inputs and outputs see :ref:`audio`. - - - .. row 18 - - - ``V4L2_CAP_RADIO`` - - - 0x00040000 - - - This is a radio receiver. - - - .. row 19 - - - ``V4L2_CAP_MODULATOR`` - - - 0x00080000 - - - The device has some sort of modulator to emit RF-modulated - video/audio signals. For more information about modulator - programming see :ref:`tuner`. - - - .. row 20 - - - ``V4L2_CAP_SDR_CAPTURE`` - - - 0x00100000 - - - The device supports the :ref:`SDR Capture ` interface. - - - .. row 21 - - - ``V4L2_CAP_EXT_PIX_FORMAT`` - - - 0x00200000 - - - The device supports the struct - :c:type:`v4l2_pix_format` extended fields. - - - .. row 22 - - - ``V4L2_CAP_SDR_OUTPUT`` - - - 0x00400000 - - - The device supports the :ref:`SDR Output ` interface. - - - .. row 23 - - - ``V4L2_CAP_READWRITE`` - - - 0x01000000 - - - The device supports the :ref:`read() ` and/or - :ref:`write() ` I/O methods. - - - .. row 24 - - - ``V4L2_CAP_ASYNCIO`` - - - 0x02000000 - - - The device supports the :ref:`asynchronous ` I/O methods. - - - .. row 25 - - - ``V4L2_CAP_STREAMING`` - - - 0x04000000 - - - The device supports the :ref:`streaming ` I/O method. - - - .. row 26 - - - ``V4L2_CAP_TOUCH`` - - - 0x10000000 - - - This is a touch device. - - - .. row 27 - - - ``V4L2_CAP_DEVICE_CAPS`` - - - 0x80000000 - - - The driver fills the ``device_caps`` field. This capability can - only appear in the ``capabilities`` field and never in the - ``device_caps`` field. + * - ``V4L2_CAP_VIDEO_CAPTURE`` + - 0x00000001 + - The device supports the single-planar API through the + :ref:`Video Capture ` interface. + * - ``V4L2_CAP_VIDEO_CAPTURE_MPLANE`` + - 0x00001000 + - The device supports the :ref:`multi-planar API ` + through the :ref:`Video Capture ` interface. + * - ``V4L2_CAP_VIDEO_OUTPUT`` + - 0x00000002 + - The device supports the single-planar API through the + :ref:`Video Output ` interface. + * - ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` + - 0x00002000 + - The device supports the :ref:`multi-planar API ` + through the :ref:`Video Output ` interface. + * - ``V4L2_CAP_VIDEO_M2M`` + - 0x00004000 + - The device supports the single-planar API through the Video + Memory-To-Memory interface. + * - ``V4L2_CAP_VIDEO_M2M_MPLANE`` + - 0x00008000 + - The device supports the :ref:`multi-planar API ` + through the Video Memory-To-Memory interface. + * - ``V4L2_CAP_VIDEO_OVERLAY`` + - 0x00000004 + - The device supports the :ref:`Video Overlay ` + interface. A video overlay device typically stores captured images + directly in the video memory of a graphics card, with hardware + clipping and scaling. + * - ``V4L2_CAP_VBI_CAPTURE`` + - 0x00000010 + - The device supports the :ref:`Raw VBI Capture ` + interface, providing Teletext and Closed Caption data. + * - ``V4L2_CAP_VBI_OUTPUT`` + - 0x00000020 + - The device supports the :ref:`Raw VBI Output ` + interface. + * - ``V4L2_CAP_SLICED_VBI_CAPTURE`` + - 0x00000040 + - The device supports the :ref:`Sliced VBI Capture ` + interface. + * - ``V4L2_CAP_SLICED_VBI_OUTPUT`` + - 0x00000080 + - The device supports the :ref:`Sliced VBI Output ` + interface. + * - ``V4L2_CAP_RDS_CAPTURE`` + - 0x00000100 + - The device supports the :ref:`RDS ` capture interface. + * - ``V4L2_CAP_VIDEO_OUTPUT_OVERLAY`` + - 0x00000200 + - The device supports the :ref:`Video Output Overlay ` (OSD) + interface. Unlike the *Video Overlay* interface, this is a + secondary function of video output devices and overlays an image + onto an outgoing video signal. When the driver sets this flag, it + must clear the ``V4L2_CAP_VIDEO_OVERLAY`` flag and vice + versa. [#f1]_ + * - ``V4L2_CAP_HW_FREQ_SEEK`` + - 0x00000400 + - The device supports the + :ref:`VIDIOC_S_HW_FREQ_SEEK` ioctl + for hardware frequency seeking. + * - ``V4L2_CAP_RDS_OUTPUT`` + - 0x00000800 + - The device supports the :ref:`RDS ` output interface. + * - ``V4L2_CAP_TUNER`` + - 0x00010000 + - The device has some sort of tuner to receive RF-modulated video + signals. For more information about tuner programming see + :ref:`tuner`. + * - ``V4L2_CAP_AUDIO`` + - 0x00020000 + - The device has audio inputs or outputs. It may or may not support + audio recording or playback, in PCM or compressed formats. PCM + audio support must be implemented as ALSA or OSS interface. For + more information on audio inputs and outputs see :ref:`audio`. + * - ``V4L2_CAP_RADIO`` + - 0x00040000 + - This is a radio receiver. + * - ``V4L2_CAP_MODULATOR`` + - 0x00080000 + - The device has some sort of modulator to emit RF-modulated + video/audio signals. For more information about modulator + programming see :ref:`tuner`. + * - ``V4L2_CAP_SDR_CAPTURE`` + - 0x00100000 + - The device supports the :ref:`SDR Capture ` interface. + * - ``V4L2_CAP_EXT_PIX_FORMAT`` + - 0x00200000 + - The device supports the struct + :c:type:`v4l2_pix_format` extended fields. + * - ``V4L2_CAP_SDR_OUTPUT`` + - 0x00400000 + - The device supports the :ref:`SDR Output ` interface. + * - ``V4L2_CAP_READWRITE`` + - 0x01000000 + - The device supports the :ref:`read() ` and/or + :ref:`write() ` I/O methods. + * - ``V4L2_CAP_ASYNCIO`` + - 0x02000000 + - The device supports the :ref:`asynchronous ` I/O methods. + * - ``V4L2_CAP_STREAMING`` + - 0x04000000 + - The device supports the :ref:`streaming ` I/O method. + * - ``V4L2_CAP_TOUCH`` + - 0x10000000 + - This is a touch device. + * - ``V4L2_CAP_DEVICE_CAPS`` + - 0x80000000 + - The driver fills the ``device_caps`` field. This capability can + only appear in the ``capabilities`` field and never in the + ``device_caps`` field. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-queryctrl.rst b/Documentation/media/uapi/v4l/vidioc-queryctrl.rst index f3ce0ab53bae..82769de801b1 100644 --- a/Documentation/media/uapi/v4l/vidioc-queryctrl.rst +++ b/Documentation/media/uapi/v4l/vidioc-queryctrl.rst @@ -105,116 +105,71 @@ See also the examples in :ref:`control`. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``id`` + - Identifies the control, set by the application. See + :ref:`control-id` for predefined IDs. When the ID is ORed with + V4L2_CTRL_FLAG_NEXT_CTRL the driver clears the flag and + returns the first control with a higher ID. Drivers which do not + support this flag yet always return an ``EINVAL`` error code. + * - __u32 + - ``type`` + - Type of control, see :c:type:`v4l2_ctrl_type`. + * - __u8 + - ``name``\ [32] + - Name of the control, a NUL-terminated ASCII string. This + information is intended for the user. + * - __s32 + - ``minimum`` + - Minimum value, inclusive. This field gives a lower bound for the + control. See enum :c:type:`v4l2_ctrl_type` how + the minimum value is to be used for each possible control type. + Note that this a signed 32-bit value. + * - __s32 + - ``maximum`` + - Maximum value, inclusive. This field gives an upper bound for the + control. See enum :c:type:`v4l2_ctrl_type` how + the maximum value is to be used for each possible control type. + Note that this a signed 32-bit value. + * - __s32 + - ``step`` + - This field gives a step size for the control. See enum + :c:type:`v4l2_ctrl_type` how the step value is + to be used for each possible control type. Note that this an + unsigned 32-bit value. - - .. row 1 + Generally drivers should not scale hardware control values. It may + be necessary for example when the ``name`` or ``id`` imply a + particular unit and the hardware actually accepts only multiples + of said unit. If so, drivers must take care values are properly + rounded when scaling, such that errors will not accumulate on + repeated read-write cycles. - - __u32 + This field gives the smallest change of an integer control + actually affecting hardware. Often the information is needed when + the user can change controls by keyboard or GUI buttons, rather + than a slider. When for example a hardware register accepts values + 0-511 and the driver reports 0-65535, step should be 128. - - ``id`` + Note that although signed, the step value is supposed to be always + positive. + * - __s32 + - ``default_value`` + - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_BOOLEAN``, + ``_BITMASK``, ``_MENU`` or ``_INTEGER_MENU`` control. Not valid + for other types of controls. - - Identifies the control, set by the application. See - :ref:`control-id` for predefined IDs. When the ID is ORed with - V4L2_CTRL_FLAG_NEXT_CTRL the driver clears the flag and - returns the first control with a higher ID. Drivers which do not - support this flag yet always return an ``EINVAL`` error code. + .. note:: - - .. row 2 - - - __u32 - - - ``type`` - - - Type of control, see :c:type:`v4l2_ctrl_type`. - - - .. row 3 - - - __u8 - - - ``name``\ [32] - - - Name of the control, a NUL-terminated ASCII string. This - information is intended for the user. - - - .. row 4 - - - __s32 - - - ``minimum`` - - - Minimum value, inclusive. This field gives a lower bound for the - control. See enum :c:type:`v4l2_ctrl_type` how - the minimum value is to be used for each possible control type. - Note that this a signed 32-bit value. - - - .. row 5 - - - __s32 - - - ``maximum`` - - - Maximum value, inclusive. This field gives an upper bound for the - control. See enum :c:type:`v4l2_ctrl_type` how - the maximum value is to be used for each possible control type. - Note that this a signed 32-bit value. - - - .. row 6 - - - __s32 - - - ``step`` - - - This field gives a step size for the control. See enum - :c:type:`v4l2_ctrl_type` how the step value is - to be used for each possible control type. Note that this an - unsigned 32-bit value. - - Generally drivers should not scale hardware control values. It may - be necessary for example when the ``name`` or ``id`` imply a - particular unit and the hardware actually accepts only multiples - of said unit. If so, drivers must take care values are properly - rounded when scaling, such that errors will not accumulate on - repeated read-write cycles. - - This field gives the smallest change of an integer control - actually affecting hardware. Often the information is needed when - the user can change controls by keyboard or GUI buttons, rather - than a slider. When for example a hardware register accepts values - 0-511 and the driver reports 0-65535, step should be 128. - - Note that although signed, the step value is supposed to be always - positive. - - - .. row 7 - - - __s32 - - - ``default_value`` - - - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_BOOLEAN``, - ``_BITMASK``, ``_MENU`` or ``_INTEGER_MENU`` control. Not valid - for other types of controls. - - .. note:: - - Drivers reset controls to their default value only when - the driver is first loaded, never afterwards. - - - .. row 8 - - - __u32 - - - ``flags`` - - - Control flags, see :ref:`control-flags`. - - - .. row 9 - - - __u32 - - - ``reserved``\ [2] - - - Reserved for future extensions. Drivers must set the array to - zero. + Drivers reset controls to their default value only when + the driver is first loaded, never afterwards. + * - __u32 + - ``flags`` + - Control flags, see :ref:`control-flags`. + * - __u32 + - ``reserved``\ [2] + - Reserved for future extensions. Drivers must set the array to + zero. @@ -229,158 +184,93 @@ See also the examples in :ref:`control`. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``id`` + - Identifies the control, set by the application. See + :ref:`control-id` for predefined IDs. When the ID is ORed with + ``V4L2_CTRL_FLAG_NEXT_CTRL`` the driver clears the flag and + returns the first non-compound control with a higher ID. When the + ID is ORed with ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` the driver clears + the flag and returns the first compound control with a higher ID. + Set both to get the first control (compound or not) with a higher + ID. + * - __u32 + - ``type`` + - Type of control, see :c:type:`v4l2_ctrl_type`. + * - char + - ``name``\ [32] + - Name of the control, a NUL-terminated ASCII string. This + information is intended for the user. + * - __s64 + - ``minimum`` + - Minimum value, inclusive. This field gives a lower bound for the + control. See enum :c:type:`v4l2_ctrl_type` how + the minimum value is to be used for each possible control type. + Note that this a signed 64-bit value. + * - __s64 + - ``maximum`` + - Maximum value, inclusive. This field gives an upper bound for the + control. See enum :c:type:`v4l2_ctrl_type` how + the maximum value is to be used for each possible control type. + Note that this a signed 64-bit value. + * - __u64 + - ``step`` + - This field gives a step size for the control. See enum + :c:type:`v4l2_ctrl_type` how the step value is + to be used for each possible control type. Note that this an + unsigned 64-bit value. - - .. row 1 + Generally drivers should not scale hardware control values. It may + be necessary for example when the ``name`` or ``id`` imply a + particular unit and the hardware actually accepts only multiples + of said unit. If so, drivers must take care values are properly + rounded when scaling, such that errors will not accumulate on + repeated read-write cycles. - - __u32 + This field gives the smallest change of an integer control + actually affecting hardware. Often the information is needed when + the user can change controls by keyboard or GUI buttons, rather + than a slider. When for example a hardware register accepts values + 0-511 and the driver reports 0-65535, step should be 128. + * - __s64 + - ``default_value`` + - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_INTEGER64``, + ``_BOOLEAN``, ``_BITMASK``, ``_MENU``, ``_INTEGER_MENU``, ``_U8`` + or ``_U16`` control. Not valid for other types of controls. - - ``id`` + .. note:: - - Identifies the control, set by the application. See - :ref:`control-id` for predefined IDs. When the ID is ORed with - ``V4L2_CTRL_FLAG_NEXT_CTRL`` the driver clears the flag and - returns the first non-compound control with a higher ID. When the - ID is ORed with ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` the driver clears - the flag and returns the first compound control with a higher ID. - Set both to get the first control (compound or not) with a higher - ID. - - - .. row 2 - - - __u32 - - - ``type`` - - - Type of control, see :c:type:`v4l2_ctrl_type`. - - - .. row 3 - - - char - - - ``name``\ [32] - - - Name of the control, a NUL-terminated ASCII string. This - information is intended for the user. - - - .. row 4 - - - __s64 - - - ``minimum`` - - - Minimum value, inclusive. This field gives a lower bound for the - control. See enum :c:type:`v4l2_ctrl_type` how - the minimum value is to be used for each possible control type. - Note that this a signed 64-bit value. - - - .. row 5 - - - __s64 - - - ``maximum`` - - - Maximum value, inclusive. This field gives an upper bound for the - control. See enum :c:type:`v4l2_ctrl_type` how - the maximum value is to be used for each possible control type. - Note that this a signed 64-bit value. - - - .. row 6 - - - __u64 - - - ``step`` - - - This field gives a step size for the control. See enum - :c:type:`v4l2_ctrl_type` how the step value is - to be used for each possible control type. Note that this an - unsigned 64-bit value. - - Generally drivers should not scale hardware control values. It may - be necessary for example when the ``name`` or ``id`` imply a - particular unit and the hardware actually accepts only multiples - of said unit. If so, drivers must take care values are properly - rounded when scaling, such that errors will not accumulate on - repeated read-write cycles. - - This field gives the smallest change of an integer control - actually affecting hardware. Often the information is needed when - the user can change controls by keyboard or GUI buttons, rather - than a slider. When for example a hardware register accepts values - 0-511 and the driver reports 0-65535, step should be 128. - - - .. row 7 - - - __s64 - - - ``default_value`` - - - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_INTEGER64``, - ``_BOOLEAN``, ``_BITMASK``, ``_MENU``, ``_INTEGER_MENU``, ``_U8`` - or ``_U16`` control. Not valid for other types of controls. - - .. note:: - - Drivers reset controls to their default value only when - the driver is first loaded, never afterwards. - - - .. row 8 - - - __u32 - - - ``flags`` - - - Control flags, see :ref:`control-flags`. - - - .. row 9 - - - __u32 - - - ``elem_size`` - - - The size in bytes of a single element of the array. Given a char - pointer ``p`` to a 3-dimensional array you can find the position - of cell ``(z, y, x)`` as follows: - ``p + ((z * dims[1] + y) * dims[0] + x) * elem_size``. - ``elem_size`` is always valid, also when the control isn't an - array. For string controls ``elem_size`` is equal to - ``maximum + 1``. - - - .. row 10 - - - __u32 - - - ``elems`` - - - The number of elements in the N-dimensional array. If this control - is not an array, then ``elems`` is 1. The ``elems`` field can - never be 0. - - - .. row 11 - - - __u32 - - - ``nr_of_dims`` - - - The number of dimension in the N-dimensional array. If this - control is not an array, then this field is 0. - - - .. row 12 - - - __u32 - - - ``dims[V4L2_CTRL_MAX_DIMS]`` - - - The size of each dimension. The first ``nr_of_dims`` elements of - this array must be non-zero, all remaining elements must be zero. - - - .. row 13 - - - __u32 - - - ``reserved``\ [32] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + Drivers reset controls to their default value only when + the driver is first loaded, never afterwards. + * - __u32 + - ``flags`` + - Control flags, see :ref:`control-flags`. + * - __u32 + - ``elem_size`` + - The size in bytes of a single element of the array. Given a char + pointer ``p`` to a 3-dimensional array you can find the position + of cell ``(z, y, x)`` as follows: + ``p + ((z * dims[1] + y) * dims[0] + x) * elem_size``. + ``elem_size`` is always valid, also when the control isn't an + array. For string controls ``elem_size`` is equal to + ``maximum + 1``. + * - __u32 + - ``elems`` + - The number of elements in the N-dimensional array. If this control + is not an array, then ``elems`` is 1. The ``elems`` field can + never be 0. + * - __u32 + - ``nr_of_dims`` + - The number of dimension in the N-dimensional array. If this + control is not an array, then this field is 0. + * - __u32 + - ``dims[V4L2_CTRL_MAX_DIMS]`` + - The size of each dimension. The first ``nr_of_dims`` elements of + this array must be non-zero, all remaining elements must be zero. + * - __u32 + - ``reserved``\ [32] + - Reserved for future extensions. Applications and drivers must set + the array to zero. @@ -393,64 +283,35 @@ See also the examples in :ref:`control`. :stub-columns: 0 :widths: 1 1 2 1 - - - .. row 1 - - - __u32 - - - - - ``id`` - - - Identifies the control, set by the application from the respective - struct :ref:`v4l2_queryctrl ` ``id``. - - - .. row 2 - - - __u32 - - - - - ``index`` - - - Index of the menu item, starting at zero, set by the application. - - - .. row 3 - - - union - - - - - - - - - - .. row 4 - - - - - __u8 - - - ``name``\ [32] - - - Name of the menu item, a NUL-terminated ASCII string. This - information is intended for the user. This field is valid for - ``V4L2_CTRL_FLAG_MENU`` type controls. - - - .. row 5 - - - - - __s64 - - - ``value`` - - - Value of the integer menu item. This field is valid for - ``V4L2_CTRL_FLAG_INTEGER_MENU`` type controls. - - - .. row 6 - - - __u32 - - - - - ``reserved`` - - - Reserved for future extensions. Drivers must set the array to - zero. + * - __u32 + - + - ``id`` + - Identifies the control, set by the application from the respective + struct :ref:`v4l2_queryctrl ` ``id``. + * - __u32 + - + - ``index`` + - Index of the menu item, starting at zero, set by the application. + * - union + - + - + - + * - + - __u8 + - ``name``\ [32] + - Name of the menu item, a NUL-terminated ASCII string. This + information is intended for the user. This field is valid for + ``V4L2_CTRL_FLAG_MENU`` type controls. + * - + - __s64 + - ``value`` + - Value of the integer menu item. This field is valid for + ``V4L2_CTRL_FLAG_INTEGER_MENU`` type controls. + * - __u32 + - + - ``reserved`` + - Reserved for future extensions. Drivers must set the array to + zero. @@ -465,193 +326,102 @@ See also the examples in :ref:`control`. :stub-columns: 0 :widths: 30 5 5 5 55 - - - .. row 1 - - - Type - - - ``minimum`` - - - ``step`` - - - ``maximum`` - - - Description - - - .. row 2 - - - ``V4L2_CTRL_TYPE_INTEGER`` - - - any - - - any - - - any - - - An integer-valued control ranging from minimum to maximum - inclusive. The step value indicates the increment between values. - - - .. row 3 - - - ``V4L2_CTRL_TYPE_BOOLEAN`` - - - 0 - - - 1 - - - 1 - - - A boolean-valued control. Zero corresponds to "disabled", and one - means "enabled". - - - .. row 4 - - - ``V4L2_CTRL_TYPE_MENU`` - - - ≥ 0 - - - 1 - - - N-1 - - - The control has a menu of N choices. The names of the menu items - can be enumerated with the ``VIDIOC_QUERYMENU`` ioctl. - - - .. row 5 - - - ``V4L2_CTRL_TYPE_INTEGER_MENU`` - - - ≥ 0 - - - 1 - - - N-1 - - - The control has a menu of N choices. The values of the menu items - can be enumerated with the ``VIDIOC_QUERYMENU`` ioctl. This is - similar to ``V4L2_CTRL_TYPE_MENU`` except that instead of strings, - the menu items are signed 64-bit integers. - - - .. row 6 - - - ``V4L2_CTRL_TYPE_BITMASK`` - - - 0 - - - n/a - - - any - - - A bitmask field. The maximum value is the set of bits that can be - used, all other bits are to be 0. The maximum value is interpreted - as a __u32, allowing the use of bit 31 in the bitmask. - - - .. row 7 - - - ``V4L2_CTRL_TYPE_BUTTON`` - - - 0 - - - 0 - - - 0 - - - A control which performs an action when set. Drivers must ignore - the value passed with ``VIDIOC_S_CTRL`` and return an ``EINVAL`` error - code on a ``VIDIOC_G_CTRL`` attempt. - - - .. row 8 - - - ``V4L2_CTRL_TYPE_INTEGER64`` - - - any - - - any - - - any - - - A 64-bit integer valued control. Minimum, maximum and step size - cannot be queried using ``VIDIOC_QUERYCTRL``. Only - ``VIDIOC_QUERY_EXT_CTRL`` can retrieve the 64-bit min/max/step - values, they should be interpreted as n/a when using - ``VIDIOC_QUERYCTRL``. - - - .. row 9 - - - ``V4L2_CTRL_TYPE_STRING`` - - - ≥ 0 - - - ≥ 1 - - - ≥ 0 - - - The minimum and maximum string lengths. The step size means that - the string must be (minimum + N * step) characters long for N ≥ 0. - These lengths do not include the terminating zero, so in order to - pass a string of length 8 to - :ref:`VIDIOC_S_EXT_CTRLS ` you need to - set the ``size`` field of struct - :c:type:`v4l2_ext_control` to 9. For - :ref:`VIDIOC_G_EXT_CTRLS ` you can set - the ``size`` field to ``maximum`` + 1. Which character encoding is - used will depend on the string control itself and should be part - of the control documentation. - - - .. row 10 - - - ``V4L2_CTRL_TYPE_CTRL_CLASS`` - - - n/a - - - n/a - - - n/a - - - This is not a control. When ``VIDIOC_QUERYCTRL`` is called with a - control ID equal to a control class code (see :ref:`ctrl-class`) - + 1, the ioctl returns the name of the control class and this - control type. Older drivers which do not support this feature - return an ``EINVAL`` error code. - - - .. row 11 - - - ``V4L2_CTRL_TYPE_U8`` - - - any - - - any - - - any - - - An unsigned 8-bit valued control ranging from minimum to maximum - inclusive. The step value indicates the increment between values. - - - .. row 12 - - - ``V4L2_CTRL_TYPE_U16`` - - - any - - - any - - - any - - - An unsigned 16-bit valued control ranging from minimum to maximum - inclusive. The step value indicates the increment between values. - - - .. row 13 - - - ``V4L2_CTRL_TYPE_U32`` - - - any - - - any - - - any - - - An unsigned 32-bit valued control ranging from minimum to maximum - inclusive. The step value indicates the increment between values. + * - Type + - ``minimum`` + - ``step`` + - ``maximum`` + - Description + * - ``V4L2_CTRL_TYPE_INTEGER`` + - any + - any + - any + - An integer-valued control ranging from minimum to maximum + inclusive. The step value indicates the increment between values. + * - ``V4L2_CTRL_TYPE_BOOLEAN`` + - 0 + - 1 + - 1 + - A boolean-valued control. Zero corresponds to "disabled", and one + means "enabled". + * - ``V4L2_CTRL_TYPE_MENU`` + - ≥ 0 + - 1 + - N-1 + - The control has a menu of N choices. The names of the menu items + can be enumerated with the ``VIDIOC_QUERYMENU`` ioctl. + * - ``V4L2_CTRL_TYPE_INTEGER_MENU`` + - ≥ 0 + - 1 + - N-1 + - The control has a menu of N choices. The values of the menu items + can be enumerated with the ``VIDIOC_QUERYMENU`` ioctl. This is + similar to ``V4L2_CTRL_TYPE_MENU`` except that instead of strings, + the menu items are signed 64-bit integers. + * - ``V4L2_CTRL_TYPE_BITMASK`` + - 0 + - n/a + - any + - A bitmask field. The maximum value is the set of bits that can be + used, all other bits are to be 0. The maximum value is interpreted + as a __u32, allowing the use of bit 31 in the bitmask. + * - ``V4L2_CTRL_TYPE_BUTTON`` + - 0 + - 0 + - 0 + - A control which performs an action when set. Drivers must ignore + the value passed with ``VIDIOC_S_CTRL`` and return an ``EINVAL`` error + code on a ``VIDIOC_G_CTRL`` attempt. + * - ``V4L2_CTRL_TYPE_INTEGER64`` + - any + - any + - any + - A 64-bit integer valued control. Minimum, maximum and step size + cannot be queried using ``VIDIOC_QUERYCTRL``. Only + ``VIDIOC_QUERY_EXT_CTRL`` can retrieve the 64-bit min/max/step + values, they should be interpreted as n/a when using + ``VIDIOC_QUERYCTRL``. + * - ``V4L2_CTRL_TYPE_STRING`` + - ≥ 0 + - ≥ 1 + - ≥ 0 + - The minimum and maximum string lengths. The step size means that + the string must be (minimum + N * step) characters long for N ≥ 0. + These lengths do not include the terminating zero, so in order to + pass a string of length 8 to + :ref:`VIDIOC_S_EXT_CTRLS ` you need to + set the ``size`` field of struct + :c:type:`v4l2_ext_control` to 9. For + :ref:`VIDIOC_G_EXT_CTRLS ` you can set + the ``size`` field to ``maximum`` + 1. Which character encoding is + used will depend on the string control itself and should be part + of the control documentation. + * - ``V4L2_CTRL_TYPE_CTRL_CLASS`` + - n/a + - n/a + - n/a + - This is not a control. When ``VIDIOC_QUERYCTRL`` is called with a + control ID equal to a control class code (see :ref:`ctrl-class`) + + 1, the ioctl returns the name of the control class and this + control type. Older drivers which do not support this feature + return an ``EINVAL`` error code. + * - ``V4L2_CTRL_TYPE_U8`` + - any + - any + - any + - An unsigned 8-bit valued control ranging from minimum to maximum + inclusive. The step value indicates the increment between values. + * - ``V4L2_CTRL_TYPE_U16`` + - any + - any + - any + - An unsigned 16-bit valued control ranging from minimum to maximum + inclusive. The step value indicates the increment between values. + * - ``V4L2_CTRL_TYPE_U32`` + - any + - any + - any + - An unsigned 32-bit valued control ranging from minimum to maximum + inclusive. The step value indicates the increment between values. @@ -666,126 +436,77 @@ See also the examples in :ref:`control`. :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_CTRL_FLAG_DISABLED`` + - 0x0001 + - This control is permanently disabled and should be ignored by the + application. Any attempt to change the control will result in an + ``EINVAL`` error code. + * - ``V4L2_CTRL_FLAG_GRABBED`` + - 0x0002 + - This control is temporarily unchangeable, for example because + another application took over control of the respective resource. + Such controls may be displayed specially in a user interface. + Attempts to change the control may result in an ``EBUSY`` error code. + * - ``V4L2_CTRL_FLAG_READ_ONLY`` + - 0x0004 + - This control is permanently readable only. Any attempt to change + the control will result in an ``EINVAL`` error code. + * - ``V4L2_CTRL_FLAG_UPDATE`` + - 0x0008 + - A hint that changing this control may affect the value of other + controls within the same control class. Applications should update + their user interface accordingly. + * - ``V4L2_CTRL_FLAG_INACTIVE`` + - 0x0010 + - This control is not applicable to the current configuration and + should be displayed accordingly in a user interface. For example + the flag may be set on a MPEG audio level 2 bitrate control when + MPEG audio encoding level 1 was selected with another control. + * - ``V4L2_CTRL_FLAG_SLIDER`` + - 0x0020 + - A hint that this control is best represented as a slider-like + element in a user interface. + * - ``V4L2_CTRL_FLAG_WRITE_ONLY`` + - 0x0040 + - This control is permanently writable only. Any attempt to read the + control will result in an ``EACCES`` error code error code. This flag + is typically present for relative controls or action controls + where writing a value will cause the device to carry out a given + action (e. g. motor control) but no meaningful value can be + returned. + * - ``V4L2_CTRL_FLAG_VOLATILE`` + - 0x0080 + - This control is volatile, which means that the value of the + control changes continuously. A typical example would be the + current gain value if the device is in auto-gain mode. In such a + case the hardware calculates the gain value based on the lighting + conditions which can change over time. - - .. row 1 + .. note:: - - ``V4L2_CTRL_FLAG_DISABLED`` + Setting a new value for a volatile control will be ignored + unless + :ref:`V4L2_CTRL_FLAG_EXECUTE_ON_WRITE ` + is also set. + Setting a new value for a volatile control will *never* trigger a + :ref:`V4L2_EVENT_CTRL_CH_VALUE ` event. + * - ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` + - 0x0100 + - This control has a pointer type, so its value has to be accessed + using one of the pointer fields of struct + :c:type:`v4l2_ext_control`. This flag is set + for controls that are an array, string, or have a compound type. + In all cases you have to set a pointer to memory containing the + payload of the control. + * .. _FLAG_EXECUTE_ON_WRITE: - - 0x0001 - - - This control is permanently disabled and should be ignored by the - application. Any attempt to change the control will result in an - ``EINVAL`` error code. - - - .. row 2 - - - ``V4L2_CTRL_FLAG_GRABBED`` - - - 0x0002 - - - This control is temporarily unchangeable, for example because - another application took over control of the respective resource. - Such controls may be displayed specially in a user interface. - Attempts to change the control may result in an ``EBUSY`` error code. - - - .. row 3 - - - ``V4L2_CTRL_FLAG_READ_ONLY`` - - - 0x0004 - - - This control is permanently readable only. Any attempt to change - the control will result in an ``EINVAL`` error code. - - - .. row 4 - - - ``V4L2_CTRL_FLAG_UPDATE`` - - - 0x0008 - - - A hint that changing this control may affect the value of other - controls within the same control class. Applications should update - their user interface accordingly. - - - .. row 5 - - - ``V4L2_CTRL_FLAG_INACTIVE`` - - - 0x0010 - - - This control is not applicable to the current configuration and - should be displayed accordingly in a user interface. For example - the flag may be set on a MPEG audio level 2 bitrate control when - MPEG audio encoding level 1 was selected with another control. - - - .. row 6 - - - ``V4L2_CTRL_FLAG_SLIDER`` - - - 0x0020 - - - A hint that this control is best represented as a slider-like - element in a user interface. - - - .. row 7 - - - ``V4L2_CTRL_FLAG_WRITE_ONLY`` - - - 0x0040 - - - This control is permanently writable only. Any attempt to read the - control will result in an ``EACCES`` error code error code. This flag - is typically present for relative controls or action controls - where writing a value will cause the device to carry out a given - action (e. g. motor control) but no meaningful value can be - returned. - - - .. row 8 - - - ``V4L2_CTRL_FLAG_VOLATILE`` - - - 0x0080 - - - This control is volatile, which means that the value of the - control changes continuously. A typical example would be the - current gain value if the device is in auto-gain mode. In such a - case the hardware calculates the gain value based on the lighting - conditions which can change over time. - - .. note:: - - Setting a new value for a volatile control will be ignored - unless - :ref:`V4L2_CTRL_FLAG_EXECUTE_ON_WRITE ` - is also set. - Setting a new value for a volatile control will *never* trigger a - :ref:`V4L2_EVENT_CTRL_CH_VALUE ` event. - - - .. row 9 - - - ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` - - - 0x0100 - - - This control has a pointer type, so its value has to be accessed - using one of the pointer fields of struct - :c:type:`v4l2_ext_control`. This flag is set - for controls that are an array, string, or have a compound type. - In all cases you have to set a pointer to memory containing the - payload of the control. - - - .. row 10 - .. _FLAG_EXECUTE_ON_WRITE: - - - ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE`` - - - 0x0200 - - - The value provided to the control will be propagated to the driver - even if it remains constant. This is required when the control - represents an action on the hardware. For example: clearing an - error flag or triggering the flash. All the controls of the type - ``V4L2_CTRL_TYPE_BUTTON`` have this flag set. + - ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE`` + - 0x0200 + - The value provided to the control will be propagated to the driver + even if it remains constant. This is required when the control + represents an action on the hardware. For example: clearing an + error flag or triggering the flash. All the controls of the type + ``V4L2_CTRL_TYPE_BUTTON`` have this flag set. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-reqbufs.rst b/Documentation/media/uapi/v4l/vidioc-reqbufs.rst index 2c5291b42592..a4180d576ee5 100644 --- a/Documentation/media/uapi/v4l/vidioc-reqbufs.rst +++ b/Documentation/media/uapi/v4l/vidioc-reqbufs.rst @@ -74,43 +74,23 @@ any DMA in progress, an implicit :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``count`` - - - The number of buffers requested or granted. - - - .. row 2 - - - __u32 - - - ``type`` - - - Type of the stream or buffers, this is the same as the struct - :c:type:`v4l2_format` ``type`` field. See - :c:type:`v4l2_buf_type` for valid values. - - - .. row 3 - - - __u32 - - - ``memory`` - - - Applications set this field to ``V4L2_MEMORY_MMAP``, - ``V4L2_MEMORY_DMABUF`` or ``V4L2_MEMORY_USERPTR``. See - :c:type:`v4l2_memory`. - - - .. row 4 - - - __u32 - - - ``reserved``\ [2] - - - A place holder for future extensions. Drivers and applications - must set the array to zero. + * - __u32 + - ``count`` + - The number of buffers requested or granted. + * - __u32 + - ``type`` + - Type of the stream or buffers, this is the same as the struct + :c:type:`v4l2_format` ``type`` field. See + :c:type:`v4l2_buf_type` for valid values. + * - __u32 + - ``memory`` + - Applications set this field to ``V4L2_MEMORY_MMAP``, + ``V4L2_MEMORY_DMABUF`` or ``V4L2_MEMORY_USERPTR``. See + :c:type:`v4l2_memory`. + * - __u32 + - ``reserved``\ [2] + - A place holder for future extensions. Drivers and applications + must set the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst b/Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst index fc5e31c63b95..5672ca48d2bd 100644 --- a/Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst +++ b/Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst @@ -68,92 +68,52 @@ error code is returned and no seek takes place. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``tuner`` - - - The tuner index number. This is the same value as in the struct - :c:type:`v4l2_input` ``tuner`` field and the struct - :c:type:`v4l2_tuner` ``index`` field. - - - .. row 2 - - - __u32 - - - ``type`` - - - The tuner type. This is the same value as in the struct - :c:type:`v4l2_tuner` ``type`` field. See - :c:type:`v4l2_tuner_type` - - - .. row 3 - - - __u32 - - - ``seek_upward`` - - - If non-zero, seek upward from the current frequency, else seek - downward. - - - .. row 4 - - - __u32 - - - ``wrap_around`` - - - If non-zero, wrap around when at the end of the frequency range, - else stop seeking. The struct :c:type:`v4l2_tuner` - ``capability`` field will tell you what the hardware supports. - - - .. row 5 - - - __u32 - - - ``spacing`` - - - If non-zero, defines the hardware seek resolution in Hz. The - driver selects the nearest value that is supported by the device. - If spacing is zero a reasonable default value is used. - - - .. row 6 - - - __u32 - - - ``rangelow`` - - - If non-zero, the lowest tunable frequency of the band to search in - units of 62.5 kHz, or if the struct - :c:type:`v4l2_tuner` ``capability`` field has the - ``V4L2_TUNER_CAP_LOW`` flag set, in units of 62.5 Hz or if the - struct :c:type:`v4l2_tuner` ``capability`` field has - the ``V4L2_TUNER_CAP_1HZ`` flag set, in units of 1 Hz. If - ``rangelow`` is zero a reasonable default value is used. - - - .. row 7 - - - __u32 - - - ``rangehigh`` - - - If non-zero, the highest tunable frequency of the band to search - in units of 62.5 kHz, or if the struct - :c:type:`v4l2_tuner` ``capability`` field has the - ``V4L2_TUNER_CAP_LOW`` flag set, in units of 62.5 Hz or if the - struct :c:type:`v4l2_tuner` ``capability`` field has - the ``V4L2_TUNER_CAP_1HZ`` flag set, in units of 1 Hz. If - ``rangehigh`` is zero a reasonable default value is used. - - - .. row 8 - - - __u32 - - - ``reserved``\ [5] - - - Reserved for future extensions. Applications must set the array to - zero. + * - __u32 + - ``tuner`` + - The tuner index number. This is the same value as in the struct + :c:type:`v4l2_input` ``tuner`` field and the struct + :c:type:`v4l2_tuner` ``index`` field. + * - __u32 + - ``type`` + - The tuner type. This is the same value as in the struct + :c:type:`v4l2_tuner` ``type`` field. See + :c:type:`v4l2_tuner_type` + * - __u32 + - ``seek_upward`` + - If non-zero, seek upward from the current frequency, else seek + downward. + * - __u32 + - ``wrap_around`` + - If non-zero, wrap around when at the end of the frequency range, + else stop seeking. The struct :c:type:`v4l2_tuner` + ``capability`` field will tell you what the hardware supports. + * - __u32 + - ``spacing`` + - If non-zero, defines the hardware seek resolution in Hz. The + driver selects the nearest value that is supported by the device. + If spacing is zero a reasonable default value is used. + * - __u32 + - ``rangelow`` + - If non-zero, the lowest tunable frequency of the band to search in + units of 62.5 kHz, or if the struct + :c:type:`v4l2_tuner` ``capability`` field has the + ``V4L2_TUNER_CAP_LOW`` flag set, in units of 62.5 Hz or if the + struct :c:type:`v4l2_tuner` ``capability`` field has + the ``V4L2_TUNER_CAP_1HZ`` flag set, in units of 1 Hz. If + ``rangelow`` is zero a reasonable default value is used. + * - __u32 + - ``rangehigh`` + - If non-zero, the highest tunable frequency of the band to search + in units of 62.5 kHz, or if the struct + :c:type:`v4l2_tuner` ``capability`` field has the + ``V4L2_TUNER_CAP_LOW`` flag set, in units of 62.5 Hz or if the + struct :c:type:`v4l2_tuner` ``capability`` field has + the ``V4L2_TUNER_CAP_1HZ`` flag set, in units of 1 Hz. If + ``rangehigh`` is zero a reasonable default value is used. + * - __u32 + - ``reserved``\ [5] + - Reserved for future extensions. Applications must set the array to + zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst b/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst index 16f2945b73dc..1a02c935c8b5 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst @@ -68,73 +68,33 @@ multiple pads of the same sub-device is not defined. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - Number of the format in the enumeration, set by the application. - - - .. row 2 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. - - - .. row 3 - - - __u32 - - - ``code`` - - - The media bus format code, as defined in - :ref:`v4l2-mbus-format`. - - - .. row 4 - - - __u32 - - - ``width`` - - - Frame width, in pixels. - - - .. row 5 - - - __u32 - - - ``height`` - - - Frame height, in pixels. - - - .. row 6 - - - struct :c:type:`v4l2_fract` - - - ``interval`` - - - Period, in seconds, between consecutive video frames. - - - .. row 7 - - - __u32 - - - ``which`` - - - Frame intervals to be enumerated, from enum - :ref:`v4l2_subdev_format_whence `. - - - .. row 8 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``index`` + - Number of the format in the enumeration, set by the application. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. + * - __u32 + - ``code`` + - The media bus format code, as defined in + :ref:`v4l2-mbus-format`. + * - __u32 + - ``width`` + - Frame width, in pixels. + * - __u32 + - ``height`` + - Frame height, in pixels. + * - struct :c:type:`v4l2_fract` + - ``interval`` + - Period, in seconds, between consecutive video frames. + * - __u32 + - ``which`` + - Frame intervals to be enumerated, from enum + :ref:`v4l2_subdev_format_whence `. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Applications and drivers must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst b/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst index 972df0f74eae..746c24ed97a0 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst @@ -71,81 +71,36 @@ information about try formats. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``index`` - - - Number of the format in the enumeration, set by the application. - - - .. row 2 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. - - - .. row 3 - - - __u32 - - - ``code`` - - - The media bus format code, as defined in - :ref:`v4l2-mbus-format`. - - - .. row 4 - - - __u32 - - - ``min_width`` - - - Minimum frame width, in pixels. - - - .. row 5 - - - __u32 - - - ``max_width`` - - - Maximum frame width, in pixels. - - - .. row 6 - - - __u32 - - - ``min_height`` - - - Minimum frame height, in pixels. - - - .. row 7 - - - __u32 - - - ``max_height`` - - - Maximum frame height, in pixels. - - - .. row 8 - - - __u32 - - - ``which`` - - - Frame sizes to be enumerated, from enum - :ref:`v4l2_subdev_format_whence `. - - - .. row 9 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``index`` + - Number of the format in the enumeration, set by the application. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. + * - __u32 + - ``code`` + - The media bus format code, as defined in + :ref:`v4l2-mbus-format`. + * - __u32 + - ``min_width`` + - Minimum frame width, in pixels. + * - __u32 + - ``max_width`` + - Maximum frame width, in pixels. + * - __u32 + - ``min_height`` + - Minimum frame height, in pixels. + * - __u32 + - ``max_height`` + - Maximum frame height, in pixels. + * - __u32 + - ``which`` + - Frame sizes to be enumerated, from enum + :ref:`v4l2_subdev_format_whence `. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Applications and drivers must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst b/Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst index b10da0e81268..0dfee3829ee2 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst @@ -56,49 +56,24 @@ information about the try formats. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. - - - .. row 2 - - - __u32 - - - ``index`` - - - Number of the format in the enumeration, set by the application. - - - .. row 3 - - - __u32 - - - ``code`` - - - The media bus format code, as defined in - :ref:`v4l2-mbus-format`. - - - .. row 4 - - - __u32 - - - ``which`` - - - Media bus format codes to be enumerated, from enum - :ref:`v4l2_subdev_format_whence `. - - - .. row 5 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. + * - __u32 + - ``index`` + - Number of the format in the enumeration, set by the application. + * - __u32 + - ``code`` + - The media bus format code, as defined in + :ref:`v4l2-mbus-format`. + * - __u32 + - ``which`` + - Media bus format codes to be enumerated, from enum + :ref:`v4l2_subdev_format_whence `. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Applications and drivers must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst b/Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst index b5fa4ae25415..000e8fcd3f25 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst @@ -80,40 +80,20 @@ modified format should be as close as possible to the original request. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media framework. - - - .. row 2 - - - __u32 - - - ``which`` - - - Crop rectangle to get or set, from enum - :ref:`v4l2_subdev_format_whence `. - - - .. row 3 - - - struct :c:type:`v4l2_rect` - - - ``rect`` - - - Crop rectangle boundaries, in pixels. - - - .. row 4 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``pad`` + - Pad number as reported by the media framework. + * - __u32 + - ``which`` + - Crop rectangle to get or set, from enum + :ref:`v4l2_subdev_format_whence `. + * - struct :c:type:`v4l2_rect` + - ``rect`` + - Crop rectangle boundaries, in pixels. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Applications and drivers must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst b/Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst index 2f7ea274c4c2..b352456dfe2c 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst @@ -85,41 +85,21 @@ should be as close as possible to the original request. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. - - - .. row 2 - - - __u32 - - - ``which`` - - - Format to modified, from enum - :ref:`v4l2_subdev_format_whence `. - - - .. row 3 - - - struct :c:type:`v4l2_mbus_framefmt` - - - ``format`` - - - Definition of an image format, see :c:type:`v4l2_mbus_framefmt` for - details. - - - .. row 4 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. + * - __u32 + - ``which`` + - Format to modified, from enum + :ref:`v4l2_subdev_format_whence `. + * - struct :c:type:`v4l2_mbus_framefmt` + - ``format`` + - Definition of an image format, see :c:type:`v4l2_mbus_framefmt` for + details. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Applications and drivers must set + the array to zero. @@ -132,22 +112,12 @@ should be as close as possible to the original request. :stub-columns: 0 :widths: 3 1 4 - - - .. row 1 - - - V4L2_SUBDEV_FORMAT_TRY - - - 0 - - - Try formats, used for querying device capabilities. - - - .. row 2 - - - V4L2_SUBDEV_FORMAT_ACTIVE - - - 1 - - - Active formats, applied to the hardware. + * - V4L2_SUBDEV_FORMAT_TRY + - 0 + - Try formats, used for querying device capabilities. + * - V4L2_SUBDEV_FORMAT_ACTIVE + - 1 + - Active formats, applied to the hardware. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst b/Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst index 4b150cc82555..46159dcfce30 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst @@ -76,31 +76,16 @@ the same sub-device is not defined. :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media controller API. - - - .. row 2 - - - struct :c:type:`v4l2_fract` - - - ``interval`` - - - Period, in seconds, between consecutive video frames. - - - .. row 3 - - - __u32 - - - ``reserved``\ [9] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``pad`` + - Pad number as reported by the media controller API. + * - struct :c:type:`v4l2_fract` + - ``interval`` + - Period, in seconds, between consecutive video frames. + * - __u32 + - ``reserved``\ [9] + - Reserved for future extensions. Applications and drivers must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst b/Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst index 94789f8f74e3..071d9c033db6 100644 --- a/Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst +++ b/Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst @@ -74,56 +74,26 @@ Selection targets and flags are documented in :stub-columns: 0 :widths: 1 1 2 - - - .. row 1 - - - __u32 - - - ``which`` - - - Active or try selection, from enum - :ref:`v4l2_subdev_format_whence `. - - - .. row 2 - - - __u32 - - - ``pad`` - - - Pad number as reported by the media framework. - - - .. row 3 - - - __u32 - - - ``target`` - - - Target selection rectangle. See :ref:`v4l2-selections-common`. - - - .. row 4 - - - __u32 - - - ``flags`` - - - Flags. See :ref:`v4l2-selection-flags`. - - - .. row 5 - - - struct :c:type:`v4l2_rect` - - - ``r`` - - - Selection rectangle, in pixels. - - - .. row 6 - - - __u32 - - - ``reserved``\ [8] - - - Reserved for future extensions. Applications and drivers must set - the array to zero. + * - __u32 + - ``which`` + - Active or try selection, from enum + :ref:`v4l2_subdev_format_whence `. + * - __u32 + - ``pad`` + - Pad number as reported by the media framework. + * - __u32 + - ``target`` + - Target selection rectangle. See :ref:`v4l2-selections-common`. + * - __u32 + - ``flags`` + - Flags. See :ref:`v4l2-selection-flags`. + * - struct :c:type:`v4l2_rect` + - ``r`` + - Selection rectangle, in pixels. + * - __u32 + - ``reserved``\ [8] + - Reserved for future extensions. Applications and drivers must set + the array to zero. Return Value diff --git a/Documentation/media/uapi/v4l/vidioc-subscribe-event.rst b/Documentation/media/uapi/v4l/vidioc-subscribe-event.rst index 0202a78cbeb0..e4a51431032c 100644 --- a/Documentation/media/uapi/v4l/vidioc-subscribe-event.rst +++ b/Documentation/media/uapi/v4l/vidioc-subscribe-event.rst @@ -48,47 +48,27 @@ using the :ref:`VIDIOC_DQEVENT` ioctl. :stub-columns: 0 :widths: 1 1 2 + * - __u32 + - ``type`` + - Type of the event, see :ref:`event-type`. - - .. row 1 + .. note:: - - __u32 - - - ``type`` - - - Type of the event, see :ref:`event-type`. - - .. note:: - - ``V4L2_EVENT_ALL`` can be used with - :ref:`VIDIOC_UNSUBSCRIBE_EVENT ` for - unsubscribing all events at once. - - - .. row 2 - - - __u32 - - - ``id`` - - - ID of the event source. If there is no ID associated with the - event source, then set this to 0. Whether or not an event needs an - ID depends on the event type. - - - .. row 3 - - - __u32 - - - ``flags`` - - - Event flags, see :ref:`event-flags`. - - - .. row 4 - - - __u32 - - - ``reserved``\ [5] - - - Reserved for future extensions. Drivers and applications must set - the array to zero. + ``V4L2_EVENT_ALL`` can be used with + :ref:`VIDIOC_UNSUBSCRIBE_EVENT ` for + unsubscribing all events at once. + * - __u32 + - ``id`` + - ID of the event source. If there is no ID associated with the + event source, then set this to 0. Whether or not an event needs an + ID depends on the event type. + * - __u32 + - ``flags`` + - Event flags, see :ref:`event-flags`. + * - __u32 + - ``reserved``\ [5] + - Reserved for future extensions. Drivers and applications must set + the array to zero. @@ -101,40 +81,30 @@ using the :ref:`VIDIOC_DQEVENT` ioctl. :stub-columns: 0 :widths: 3 1 4 + * - ``V4L2_EVENT_SUB_FL_SEND_INITIAL`` + - 0x0001 + - When this event is subscribed an initial event will be sent + containing the current status. This only makes sense for events + that are triggered by a status change such as ``V4L2_EVENT_CTRL``. + Other events will ignore this flag. + * - ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK`` + - 0x0002 + - If set, then events directly caused by an ioctl will also be sent + to the filehandle that called that ioctl. For example, changing a + control using :ref:`VIDIOC_S_CTRL ` will cause + a V4L2_EVENT_CTRL to be sent back to that same filehandle. + Normally such events are suppressed to prevent feedback loops + where an application changes a control to a one value and then + another, and then receives an event telling it that that control + has changed to the first value. - - .. row 1 + Since it can't tell whether that event was caused by another + application or by the :ref:`VIDIOC_S_CTRL ` + call it is hard to decide whether to set the control to the value + in the event, or ignore it. - - ``V4L2_EVENT_SUB_FL_SEND_INITIAL`` - - - 0x0001 - - - When this event is subscribed an initial event will be sent - containing the current status. This only makes sense for events - that are triggered by a status change such as ``V4L2_EVENT_CTRL``. - Other events will ignore this flag. - - - .. row 2 - - - ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK`` - - - 0x0002 - - - If set, then events directly caused by an ioctl will also be sent - to the filehandle that called that ioctl. For example, changing a - control using :ref:`VIDIOC_S_CTRL ` will cause - a V4L2_EVENT_CTRL to be sent back to that same filehandle. - Normally such events are suppressed to prevent feedback loops - where an application changes a control to a one value and then - another, and then receives an event telling it that that control - has changed to the first value. - - Since it can't tell whether that event was caused by another - application or by the :ref:`VIDIOC_S_CTRL ` - call it is hard to decide whether to set the control to the value - in the event, or ignore it. - - Think carefully when you set this flag so you won't get into - situations like that. + Think carefully when you set this flag so you won't get into + situations like that. Return Value