^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ******************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Multi-planar format structures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ******************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) The struct :c:type:`v4l2_plane_pix_format` structures define size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) and layout for each of the planes in a multi-planar format. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) struct :c:type:`v4l2_pix_format_mplane` structure contains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) information common to all planes (such as image width and height) and an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) array of struct :c:type:`v4l2_plane_pix_format` structures,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) describing all planes of that format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) .. c:type:: v4l2_plane_pix_format
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) .. flat-table:: struct v4l2_plane_pix_format
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) :widths: 1 1 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - ``sizeimage``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - Maximum size in bytes required for image data in this plane,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) set by the driver. When the image consists of variable length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) compressed data this is the number of bytes required by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) codec to support the worst-case compression scenario.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) The driver will set the value for uncompressed images.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) Clients are allowed to set the sizeimage field for variable length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) compressed data flagged with ``V4L2_FMT_FLAG_COMPRESSED`` at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) :ref:`VIDIOC_ENUM_FMT`, but the driver may ignore it and set the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) value itself, or it may modify the provided value based on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) alignment requirements or minimum/maximum size requirements.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) If the client wants to leave this to the driver, then it should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) set sizeimage to 0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) - ``bytesperline``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) - Distance in bytes between the leftmost pixels in two adjacent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) lines. See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) * - __u16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) - ``reserved[6]``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - Reserved for future extensions. Should be zeroed by drivers and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) applications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) .. raw:: latex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) \small
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) .. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) .. c:type:: v4l2_pix_format_mplane
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) .. flat-table:: struct v4l2_pix_format_mplane
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) :header-rows: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) :stub-columns: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) :widths: 1 1 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) - ``width``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) - Image width in pixels. See struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) - ``height``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) - Image height in pixels. See struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) - ``pixelformat``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - The pixel format. Both single- and multi-planar four character
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) codes can be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) - ``field``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) - Field order, from enum :c:type:`v4l2_field`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) * - __u32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) - ``colorspace``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) - Colorspace encoding, from enum :c:type:`v4l2_colorspace`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) * - struct :c:type:`v4l2_plane_pix_format`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) - ``plane_fmt[VIDEO_MAX_PLANES]``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) - An array of structures describing format of each plane this pixel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) format consists of. The number of valid entries in this array has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) to be put in the ``num_planes`` field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) - ``num_planes``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) - Number of planes (i.e. separate memory buffers) for this format
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) and the number of valid entries in the ``plane_fmt`` array.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) - ``flags``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) - Flags set by the application or driver, see :ref:`format-flags`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) * - union {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) - (anonymous)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) - ``ycbcr_enc``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) - Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) - ``hsv_enc``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) - HSV encoding, from enum :c:type:`v4l2_hsv_encoding`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) * - }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) - ``quantization``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - Quantization range, from enum :c:type:`v4l2_quantization`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) - ``xfer_func``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) - Transfer function, from enum :c:type:`v4l2_xfer_func`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) See struct :c:type:`v4l2_pix_format`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) * - __u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) - ``reserved[7]``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) - Reserved for future extensions. Should be zeroed by drivers and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) applications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) .. raw:: latex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) \normalsize