1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
254f38fcaSMauro Carvalho Chehab
354f38fcaSMauro Carvalho Chehab******************************
454f38fcaSMauro Carvalho ChehabMulti-planar format structures
554f38fcaSMauro Carvalho Chehab******************************
654f38fcaSMauro Carvalho Chehab
754f38fcaSMauro Carvalho ChehabThe struct :c:type:`v4l2_plane_pix_format` structures define size
854f38fcaSMauro Carvalho Chehaband layout for each of the planes in a multi-planar format. The
954f38fcaSMauro Carvalho Chehabstruct :c:type:`v4l2_pix_format_mplane` structure contains
1054f38fcaSMauro Carvalho Chehabinformation common to all planes (such as image width and height) and an
1154f38fcaSMauro Carvalho Chehabarray of struct :c:type:`v4l2_plane_pix_format` structures,
1254f38fcaSMauro Carvalho Chehabdescribing all planes of that format.
1354f38fcaSMauro Carvalho Chehab
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho Chehab
16*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{1.4cm}|p{4.0cm}|p{11.9cm}|
1754f38fcaSMauro Carvalho Chehab
1854f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_plane_pix_format
1954f38fcaSMauro Carvalho Chehab
2054f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_plane_pix_format
2154f38fcaSMauro Carvalho Chehab    :header-rows:  0
2254f38fcaSMauro Carvalho Chehab    :stub-columns: 0
2354f38fcaSMauro Carvalho Chehab    :widths:       1 1 2
2454f38fcaSMauro Carvalho Chehab
2554f38fcaSMauro Carvalho Chehab    * - __u32
2654f38fcaSMauro Carvalho Chehab      - ``sizeimage``
2754f38fcaSMauro Carvalho Chehab      - Maximum size in bytes required for image data in this plane,
2854f38fcaSMauro Carvalho Chehab	set by the driver. When the image consists of variable length
2954f38fcaSMauro Carvalho Chehab	compressed data this is the number of bytes required by the
3054f38fcaSMauro Carvalho Chehab	codec to support the worst-case compression scenario.
3154f38fcaSMauro Carvalho Chehab
3254f38fcaSMauro Carvalho Chehab	The driver will set the value for uncompressed images.
3354f38fcaSMauro Carvalho Chehab
3454f38fcaSMauro Carvalho Chehab	Clients are allowed to set the sizeimage field for variable length
3554f38fcaSMauro Carvalho Chehab	compressed data flagged with ``V4L2_FMT_FLAG_COMPRESSED`` at
3654f38fcaSMauro Carvalho Chehab	:ref:`VIDIOC_ENUM_FMT`, but the driver may ignore it and set the
3754f38fcaSMauro Carvalho Chehab	value itself, or it may modify the provided value based on
3854f38fcaSMauro Carvalho Chehab	alignment requirements or minimum/maximum size requirements.
3954f38fcaSMauro Carvalho Chehab	If the client wants to leave this to the driver, then it should
4054f38fcaSMauro Carvalho Chehab	set sizeimage to 0.
4154f38fcaSMauro Carvalho Chehab    * - __u32
4254f38fcaSMauro Carvalho Chehab      - ``bytesperline``
4354f38fcaSMauro Carvalho Chehab      - Distance in bytes between the leftmost pixels in two adjacent
4454f38fcaSMauro Carvalho Chehab	lines. See struct :c:type:`v4l2_pix_format`.
4554f38fcaSMauro Carvalho Chehab    * - __u16
4654f38fcaSMauro Carvalho Chehab      - ``reserved[6]``
4754f38fcaSMauro Carvalho Chehab      - Reserved for future extensions. Should be zeroed by drivers and
4854f38fcaSMauro Carvalho Chehab	applications.
4954f38fcaSMauro Carvalho Chehab
5054f38fcaSMauro Carvalho Chehab
5154f38fcaSMauro Carvalho Chehab.. raw:: latex
5254f38fcaSMauro Carvalho Chehab
5354f38fcaSMauro Carvalho Chehab    \small
5454f38fcaSMauro Carvalho Chehab
55*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.3cm}|
5654f38fcaSMauro Carvalho Chehab
5754f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_pix_format_mplane
5854f38fcaSMauro Carvalho Chehab
5954f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_pix_format_mplane
6054f38fcaSMauro Carvalho Chehab    :header-rows:  0
6154f38fcaSMauro Carvalho Chehab    :stub-columns: 0
6254f38fcaSMauro Carvalho Chehab    :widths:       1 1 2
6354f38fcaSMauro Carvalho Chehab
6454f38fcaSMauro Carvalho Chehab    * - __u32
6554f38fcaSMauro Carvalho Chehab      - ``width``
6654f38fcaSMauro Carvalho Chehab      - Image width in pixels. See struct
6754f38fcaSMauro Carvalho Chehab	:c:type:`v4l2_pix_format`.
6854f38fcaSMauro Carvalho Chehab    * - __u32
6954f38fcaSMauro Carvalho Chehab      - ``height``
7054f38fcaSMauro Carvalho Chehab      - Image height in pixels. See struct
7154f38fcaSMauro Carvalho Chehab	:c:type:`v4l2_pix_format`.
7254f38fcaSMauro Carvalho Chehab    * - __u32
7354f38fcaSMauro Carvalho Chehab      - ``pixelformat``
7454f38fcaSMauro Carvalho Chehab      - The pixel format. Both single- and multi-planar four character
7554f38fcaSMauro Carvalho Chehab	codes can be used.
7654f38fcaSMauro Carvalho Chehab    * - __u32
7754f38fcaSMauro Carvalho Chehab      - ``field``
7854f38fcaSMauro Carvalho Chehab      - Field order, from enum :c:type:`v4l2_field`.
7954f38fcaSMauro Carvalho Chehab        See struct :c:type:`v4l2_pix_format`.
8054f38fcaSMauro Carvalho Chehab    * - __u32
8154f38fcaSMauro Carvalho Chehab      - ``colorspace``
8254f38fcaSMauro Carvalho Chehab      - Colorspace encoding, from enum :c:type:`v4l2_colorspace`.
8354f38fcaSMauro Carvalho Chehab        See struct :c:type:`v4l2_pix_format`.
8454f38fcaSMauro Carvalho Chehab    * - struct :c:type:`v4l2_plane_pix_format`
8554f38fcaSMauro Carvalho Chehab      - ``plane_fmt[VIDEO_MAX_PLANES]``
8654f38fcaSMauro Carvalho Chehab      - An array of structures describing format of each plane this pixel
8754f38fcaSMauro Carvalho Chehab	format consists of. The number of valid entries in this array has
8854f38fcaSMauro Carvalho Chehab	to be put in the ``num_planes`` field.
8954f38fcaSMauro Carvalho Chehab    * - __u8
9054f38fcaSMauro Carvalho Chehab      - ``num_planes``
9154f38fcaSMauro Carvalho Chehab      - Number of planes (i.e. separate memory buffers) for this format
9254f38fcaSMauro Carvalho Chehab	and the number of valid entries in the ``plane_fmt`` array.
9354f38fcaSMauro Carvalho Chehab    * - __u8
9454f38fcaSMauro Carvalho Chehab      - ``flags``
9554f38fcaSMauro Carvalho Chehab      - Flags set by the application or driver, see :ref:`format-flags`.
9654f38fcaSMauro Carvalho Chehab    * - union {
9754f38fcaSMauro Carvalho Chehab      - (anonymous)
9854f38fcaSMauro Carvalho Chehab    * - __u8
9954f38fcaSMauro Carvalho Chehab      - ``ycbcr_enc``
10054f38fcaSMauro Carvalho Chehab      - Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
101b38c73caSDafna Hirschfeld	See struct :c:type:`v4l2_pix_format`.
10254f38fcaSMauro Carvalho Chehab    * - __u8
10354f38fcaSMauro Carvalho Chehab      - ``hsv_enc``
10454f38fcaSMauro Carvalho Chehab      - HSV encoding, from enum :c:type:`v4l2_hsv_encoding`.
105b38c73caSDafna Hirschfeld	See struct :c:type:`v4l2_pix_format`.
10654f38fcaSMauro Carvalho Chehab    * - }
10754f38fcaSMauro Carvalho Chehab      -
10854f38fcaSMauro Carvalho Chehab    * - __u8
10954f38fcaSMauro Carvalho Chehab      - ``quantization``
11054f38fcaSMauro Carvalho Chehab      - Quantization range, from enum :c:type:`v4l2_quantization`.
111b38c73caSDafna Hirschfeld	See struct :c:type:`v4l2_pix_format`.
11254f38fcaSMauro Carvalho Chehab    * - __u8
11354f38fcaSMauro Carvalho Chehab      - ``xfer_func``
11454f38fcaSMauro Carvalho Chehab      - Transfer function, from enum :c:type:`v4l2_xfer_func`.
115b38c73caSDafna Hirschfeld	See struct :c:type:`v4l2_pix_format`.
11654f38fcaSMauro Carvalho Chehab    * - __u8
11754f38fcaSMauro Carvalho Chehab      - ``reserved[7]``
11854f38fcaSMauro Carvalho Chehab      - Reserved for future extensions. Should be zeroed by drivers and
11954f38fcaSMauro Carvalho Chehab	applications.
12054f38fcaSMauro Carvalho Chehab
12154f38fcaSMauro Carvalho Chehab.. raw:: latex
12254f38fcaSMauro Carvalho Chehab
12354f38fcaSMauro Carvalho Chehab    \normalsize
124